人工智能的发展,让我们将那些需要手动操作才能处理的问题,让计算机也可以解决。例如,自然语言处理、人脸识别和图片分类等。因此,我们需要借助机器学习的知识来构建一个AI系统,从用户那里读取到原始数据,让计算机来帮助我们达到识别的目的。为了解决某个问题,需要收集大量的数据,这些数据都是在实际的情况中自然形成的,往往有杂乱或者不完整的情况。因此,我们需要对原始数据做处理。这就是所谓的特征工程。在日常的工作中80%的时间都用在捕获、清洗和组织数据上,20%的时间用在构造机器学习流水线上。下图展示了不同工作时间的比例。

特征工程 窗口 java 特征工程入门与实践_特征工程

  • 设置训练集:3%
  • 清洗和组织数据:60%
  • 收集数据集:19%
  • 挖掘数据模式:9%
  • 调整算法:4%

        准备数据包括捕获数据、存储数据、清洗数据。清洗数据的意思是将数据转换为云系统和数据库可以轻松识别的形式。组织数据是将数据集的格式转换为更干净的格式。我们主要专注于特征工程,着眼于清洗和组织数据的过程,为机器学习流水线所服务。因此,所谓特征工程就是将数据转换为能更好的表示潜在问题的特征,而最终的目的是提高机器学习的性能。下面我们就要了解几个相关的概念。

  1. 特征:特征是对机器学习算法有意义的属性,对应表格数据,一列就是一个特征。
  2. 响应(标签):响应也是属性的一个,但是这个属性是我们有希望进行预测的。
  3. 监督学习:利用有标签的数据,通过机器学习方法进行预测或者分类的学习过程。
  4. 无监督学习:利用无标签数据,通过机器学习算法进行预测或者分类的学习过程。

        我们要做的就是通过特征工程,将杂乱、有问题的数据转化为干净、整洁的数据。这样我们就可以通过机器学习的算法来解决相应的问题。特征工程能提高机器学习的性能。评价一个特征工程的好坏的步骤为:
(1)在应用任何特征工程之前,得到机器学习模型的基准性能。
(2)应用一种或多种特征工程。
(3)对于每种特征工程获取一个性能指标,并与基准性能进行对比。
(4)如果性能增量大于某个阈值,则认为这种特征工程是有益的,可以应用在机器学习流水线上。
        接下来我们将学习以下几部分内容,来深入理解特征工程都在做什么:

  • 特征理解
  • 特征增强
  • 特征选择
  • 特征构建
  • 特征转换
  • 特征学习

        最后,说一下我自己是怎么开始认识到特征工程的重要,在我们的学习中,都是使用一些被处理好的数据来实现我们的模型。并且大多数人都将学习重点放在了模型上。这也造成了很多人都不关心特征工程这部分。直到最近参加了数学建模,选了一道需要特征工程相关知识的题,才感觉到自己对这方面知识的欠缺。最后买了这本书《特征工程入门与实践》。希望学完这本书,可以增加自己对特征工程的了解。

注:本文的内容与图片来源于《特征工程入门与实践》。如有您也想学习相关知识,建议买一本来看。