原博客作者:http://www.cnblogs.com/jasonfreak/p/5448385.html
使用sklearn做单机特征工程
导入鸢尾花数据库,包含四个变量(sepal length、sepal width、petal length、petal width)学习目的是对鸢尾花进行分类,可以看到这里已经设定好了是4个特征,遇到具体问题的时候怎么设定更好的特征决定了结果的上限
from sklearn.datasets import load_iris
#导入IRIS数据集
iris = load_iris()
#特征矩阵
iris.data
#目标向量
iris.target
数据预处理
提取的特征可能存在的问题:
刚刚提取出来的特征,可能有冗余、量纲不同
可能定性特征、处理方法:
- 一个定性特征可以赋值1,2,3,4但是这对调参来说很不友好
- 更好的方法是,把这一个定性特征的各种值态认为是多个特征,当这一个定性特征取第i种值态时,就光给这个值态赋值 1 ,其他的赋值为0,实际上是把定性特征用哑变量编码了,对于线性模型,这种哑变量赋值可以达到非线性的效果。
可能数据缺失
缺失值需要补充
信息利用率低
刚才的哑变量编码的方式可以使得线性模型变得非线性,定量特征多项式话也可以达到非线性的效果。
sklearn 的preprocessing库来做数据处理,可以覆盖以上问题的解决方案
无量纲化
常见的是标准化和区间缩放法,标准化前提是特征服从正态分布(正态检验),标准化之后特征转化成了标准正态分布,
网友评论