参考url:
https://jakevdp.github.io/PythonDataScienceHandbook/05.04-feature-engineering.html
特征工程(feature engineering)———找到与问题有关的任何信息,把它们转换成特征矩阵的数值
1、分类特征
一种常见的非数值类型是分类数据。
在Scikit-Learn程序包中所有模块都有一个基本假设,即数值特征可以反应代数量(algebraic quantities)。
独热编码,可以有效增加额外的列,让0和1出现在对应的列分别表示每个分类值有或无。
2、文本特征
另一种常见的特征工程需求是将文本转换成一组数组。
例如,绝大多数社交媒体数据的自动化采集,都是依靠将文本编码成数字的技术手段。
3、图像特征
机器学习还有一种常见需求,那就是对图像进行编码。
手写数字图像时使用的方法,是最简单的图像编码方法:用像素表示图像。
可以在Scikit-Image项目中找到许多标准方法的高品质实现。
4、衍生特征
还有一种有用的特征是输入特征经过数学变换衍生出来的新特征。
从输入数据中构造多项式特征时,就是这类特征。
将一个线性回归转换成多项式回归时,并不是通过改变模型来实现,而是通过改变输入数据,这种处理方式有时被称为基函数回归(bsis function regression)。
这种不通过改变模型,而是通过变换输入来改善模型效果的理念,正是许多更强大的机器学习方法的基础。
5、缺失值填充
特征工程中还有一种常见需求是处理缺失值。
当将一个普通的机器学习模型应用到这份数据时,首先需要用适当的值替换这些确实数据,这个操作被称为缺失值填充,相应的策略很多,有的简单(例如用列均值替换缺失值),有的复杂(例如用矩阵填充或其他模型来处理缺失值)
6、特征管道
特征管道将所有对象操作串联起来,避免重复输入。
比如将(1)用均值填充缺失值(2)将衍生特征转换为二次方(3)拟合线性回归模型,这三个步骤实现管道处理过程。