机器学习:使用OpenCV、Python和scikit-learn进行智能图像处理(原书第2版)
上QQ阅读APP看书,第一时间看更新

4.2 理解特征工程

不管你是否相信,一个机器学习系统的学习效果都主要取决于训练数据的质量。尽管每种学习算法都有其优点和缺点,但是性能的差异往往取决于数据准备或者数据表示的方式。因此,可以把特征工程理解为数据表示的一种工具。机器学习算法试图从样本数据中学习问题的解决方案,而特征工程会问:用于学习问题的解决方案的样本数据的最佳表示是什么?

是否还记得,在前面我们讨论过一个完整的机器学习管道。在那里我们提及过特征提取,但是还有没有真正讨论其究竟是什么。让我们来看看特征提取是如何融入机器学习管道的,见图4-1。

图4-1 特征提取与机器学习过程

简单提示一下,我们已经讨论过,特征工程可以分为两个阶段:

  • 特征选择(Feature selection):这是识别数据中重要属性(或者特征)的过程。一张图像的特征可能是边缘、角点或脊的位置。在这一章,我们将研究OpenCV提供的一些更高级的特征描述符,例如二值鲁棒独立基本特征(Binary Robust Independent Elementary Feature,BRIEF)以及面向FAST和可旋转的BRIEF(Oriented FAST and Rotated BRIEF,ORB)。
  • 特征提取(Feature extraction):这实际上是将原始数据变换到期望特征空间以满足机器学习算法的过程,如图4-1所示。例如Harris操作符,它允许我们提取一张图像中的角点(即一个选择的特征)。

剩下要做的就是逐步介绍这些过程,并讨论一些最常见的数据预处理技术。