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

选择最具区分度的特征、创建新特征等都属于预处理的范畴。

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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值