预处理与缩放

一些算法,比如神经网络和SVM,对数据缩放非常敏感。需要对数据进行一种简单的按特征的缩放和移动。

1、不同类型的预处理

  • 一个简单的二分类例子

📣

  • 库:sklearn.preprocessing

  • StandardScaler:确保每个特征的平均值为0,方差为1。

  • RobustScaler:使用中位数和四分位数(四分之一),确保每个特征的统计属性都位于同一范围。

  • MinMaxScalar:移动数据,使所有特征都刚好位于0-1之间。

  • Normalizer:对每个数据点进行缩放,使得特征向量的欧式长度等于1。

举一个例子,使用MinMaxScaler

  • 对测试集进行缩放的结果

📣

  • 可以发现,对测试集进行缩放后的最大值不在[0,1]之间
    • 这是因为,transform方法总是减去训练集的最小值,然后除以训练集的范围。

2、应用数据变换

  • 将核SVM(svc)应用在cancer数据集上

3、一些注意事项

  • 1、一定要对训练数据和测试数据进行相同的缩放

    • 比如,使用MinMaxScaler缩放,需要调用fit对训练集进行拟合,然后调用transform对训练集和数据集进行变换。
  • 2、预处理要先划分数据集,再通过对训练集的预处理模型,应用到测试集上

4、参考文献

《Pyhon机器学习基础教程》P100-P106

posted @ 2022-04-26 23:13  朝南烟  阅读(80)  评论(0)    收藏  举报
body { color: #000; background-color: #e6e6e6; font-family: "Helvetica Neue",Helvetica,Verdana,Arial,sans-serif; font-size: 12px; min-height: 101%; background: url(https://images.cnblogs.com/cnblogs_com/caolanying/1841633/o_2009041…ly1geq8oc9owbj21hc0u0th5.jpg) fixed; } #home { margin: 0 auto; opacity: 0.8; width: 65%; min-width: 1080px; background-color: #fff; padding: 30px; margin-top: 50px; margin-bottom: 50px; box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3); }