标准预处理

不同特征的取值范围千差万别,常见的解决方法是对不同的特征进行规范化,使它们的特征值落在相同的值域或从属于某几个确定的类别,比如小、中和大。一旦解决这个问题,不同的特征类型对算法的影响将大大降低,分类正确率就能有大幅提升。

选择具区分度的特征、创建新特征等都属于预处理的范畴。scikit-learn的预处理工具叫作转换器(Transformer),它接受原始数据集,返回转换后的数据集。除了处理数值型特征, 转换器还能用来抽取特征。在这里,我们只看下对数值型特征的预处理方法。

下面用MinMaxScaler类进行基于特征的规范化。

from sklearn.preprocessing import MinMaxScaler

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

接下来,对数据集X进行预处理。我们在预处理器MinMaxScaler上调用转换函数。有些转 换器要求像训练分类器那样先进行训练,但是MinMaxScaler 不需要,直接调用 fit_transform()函数,即可完成训练和转换。

X_transformed = MinMaxScaler().fit_transform(X

X_transformed与X行列数相等,为同型矩阵。然而,前者每列值的值域为0到1。

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

  • sklearn.preprocessing.Normalizer:使每条数据各特征值的和为1

  • 用sklearn.preprocessing.StandardScaler:使各特征的均值为0,方差为1

  • sklearn.preprocessing.Binarizer:将数值型特征的二值化,大于阈值的为 1,反之为0。

参考资料
《Python数据挖掘入门与实践》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Einstellung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值