四、Sklearn特征工程

参考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)拟合线性回归模型,这三个步骤实现管道处理过程。


版权声明:本文为Norni原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。