特征工程之特征值的预处理

特征工程之特征值的预处理

1. 概述

  • 对数值型数据进行处理
  • 预处理就是用来实现无量钢化的方式
  • 无量钢化:
    • 在机器学习算法实践中,我们往往有着将不同规格的数据转换到同一规格,或不同分布的数据转换到某个特定分布的需求,这种需求统称为将数据"无量纲化"
  • 例如:
    • 梯度和矩阵为核心的算法中;逻辑回归,支持向量机,神经网络中无量钢化可以加快求解速度;
    • 在距离类模型,譬如K近邻,K-Means聚类中,无量钢化可以帮我们提升模型精度,避免某一个取值范围特别大的特征对距离计算造成的影响
    • 决策树和树的集成算法,对决策树不需要无量钢化,决策树可以把任意数据都处理的很好

2. 数据处理

  • 含义:特征抽取后我们就可以获取对应的数值型的样本数据,然后进行数据处理
  • 概念:通过特定的统计方式(数学方法),将算法转换成算法要求的数据
  • 方式
    • 归一化
    • 标准化
    • 如果认为每一个特征具有同等大小的权重都同等重要,则必须要对其进行归一化处理

2.1归一化

  • 归一化后的数据服从正态分布
    在这里插入图片描述
from sklearn.preprocessing import MinMaxScaler
参数:feature_range表示缩放范围,通常使用(0,1)
作用:使得某一个特征对最终结果不会造成很大的影响
from sklearn.preprocessing import MinMaxScaler
mm=MinMaxScaler(feature_range=(0,1))  #每个特征缩放的范围
data=[[90,2,10,40],[60,5,15,45],[73,3,13,45]]
data=mm.fit_transform(data)#data需要归一化的特征
print(data)
# [[1.         0.         0.         0.        ]
#  [0.         1.         1.         1.        ]
#  [0.43333333 0.33333333 0.6        1.        ]]
  • 如果数据中存在的异常值比较多,会有什么影响?

    • 结合归一化公式,异常值对原始特征中的最大值和最小值的影响很大,因此也会影响对归一化的值,这个也是归一化的一个弊端,无法很好的处理异常值
    • 在特定场景下最大值和最小值是变化的,另外最大最小值很容易受到异常值的影响,所以这种归一化的方式具有一定的局限性。

2.2标准化

  • 当数据按均值中心化后,再按标准差缩放,数据就会服从为均值为0,方差为1的正态分布(即标准正态分布),而这个过程,就叫做数据标准化(Standardization,又称Z-score normalization),公式如下

  • 在这里插入图片描述

  • 标准化公式对异常值对均值和标准差的影响不大

  • API

    • 处理后,每列所有的数据都聚集在均值为0,标准差为1范围附近

    • 标准化API:

      from sklearn.preprocessing import StandardScaler
      fit_transform(X) #对X标准化
      mean_#均值
      var_ #方差
      
    • 示例

      from sklearn.preprocessing import StandardScaler
      ss=StandardScaler()
      data=[[90,2,10,40],[60,5,15,45],[73,3,13,45]]
      ss.fit_transform(data)
      # array([[ 1.27540458, -1.06904497, -1.29777137, -1.41421356],
      #        [-1.16685951,  1.33630621,  1.13554995,  0.70710678],
      #        [-0.10854507, -0.26726124,  0.16222142,  0.70710678]])
      ss.mean_   #array([74.33333333,  3.33333333, 12.66666667, 43.33333333])
      ss.var_   #array([150.88888889,   1.55555556,   4.22222222,   5.55555556])
      

3.归一化和标准化总结

  • 归一化,如果出现了异常值则会影响特征的最大值最小值,那么最终结果会受到比较大影响
  • 标准化,如果出现异常点,由于具有一定的数据量,少量的异常点对于平均值的影响并不大,从而标准差改变比较少

选择:StandardScalerMinMaxSclaer选哪个?

  • 大多数机器学习算法中,会选择StandardSclaer来进行特征缩放,因为MinMaxSclaer对异常值非常敏感。
  • 在CPA,聚类,逻辑回归,支持向量机,神经网络这些算法中,StandardSclaer往往是最好的选择。
  • MinMaxScaler在不涉及距离度量,梯度,协方差计算以及数据需要被压缩到特定区间时,使用广泛,比如数字图像处理中量化像素强度时,都会使用MinMaxScaler将数据压缩于[0,1]区间之中
  • 建议先用StandardScaler,效果不好换MinMaxScaler
  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

荼靡~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值