您的位置:首页 > 编程语言 > Python开发

Python数据挖掘入门与实践(二)——scikit-learn数据的预处理转换器以及流水线

2017-09-30 22:59 661 查看
选择最具区分度的特征、创建新特征等都属于预处理的范畴。

scikit-learn的预处理工具叫作转换器,它接受原始数据集,返回转换后的数据集。

除了处理数值型特征,转换器还能用来抽取特征。

标准预处理

from sklearn.preprocessing import MinMaxScaler

这个类可以把每个特征的值域规范化为0到1之间。最小值用0代替,最大值用1代替,其余值介于两者之间。

我们在预处理器MinMaxScaler上调用转换函数。有些转换器要求像训练分类器那样先进行训练,但是MinMaxScaler不需要,

直接调用fit_transform()函数,即可完成训练和转换。

还有很多其他类似的规范方法,对于其他类型的应用和特征类型会很有用。

1、为使每条数据各特征值得和为1,使用sklearn.preprocessing.Normalizer。

2、为使各特征的均值为0,方差为1,使用sklearn.preprocessing.StandardScaler,常用作规范化的基准。

3、为将数值特征为二值化,使用sklearn.preprocessing.Binarizer,大于阈值为1,反之为零。

流水线

from sklearn.pipline import Pipline

流水线的输入为一连串的数据挖掘步骤,其中最后一步必须是估计器,前几步是转换器。输入的数据集经过转换器的处理后,

输出的结果作为下一步的输入。最后,用位于流水线最后一步的估计器对数据进行分类。

流水线分为两大步:

a)用MinMaxScaler将特征取值范围规范到0~1。

b)指定KNeighborsClassfier分类器。

每一步都用元组(‘名称’,步骤)来表示。现在来创建流水线。

scaling_pipeline=Pipeline([('scale',MinMaxScaler()),('predict',KNeighborsClassfier())])

scores=cross_val_score(scaling_pipeline,X_broken,y,scoring='accuracy')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: