在深度学习里,好像不太关注特征工程,导致对它的重要性没有很好的概念,这里再强调一下,记录一下学习思考的过程,重点参考了scikit-learn的文档和别人的博客。
包含内容有:
- 特征工程的定义
- 数据预处理
- 特征选择
- 降维
下面分别展开.
特征工程的定义
这是一项工程活动,目的是最大限度地从原始数据中提取特征供算法和模型使用。
特征处理是特征工程的核心。
from sklearn.datasets import load_iris
iris = load_iris()
# 特征矩阵
print(iris.data)
# 目标向量
print(iris.target)
数据的预处理
在上面通过iris.data
直接拿到的是原始数据特征,这还不能直接用在模型中,因为会存在着一些问题:
不属于同一量纲:这会导致特征无法在一起比较。
信息冗余
定性特征转定量特征
存在缺失值
信息利用率低
我们使用sklearn
提供的preprocessing
库可以进行数据的预处理,能过解决上面这些问题。
无量纲化
无量纲化是进行特征选择之前的必经步骤。只有经过无量纲化的操作,才能赋予不同属性的特征以可比较性。
进行数据的预处理,必须有全局意识,否则,很难把握每个步骤在做的事情的意义所在。
To Be Continued.
参考:
https://scikit-learn.org/stable/modules/preprocessing.html#preprocessing
http://www.cnblogs.com/jasonfreak/p/5448385.html
https://blog.csdn.net/onthewaygogoing/article/details/79871559