庖丁解牛-特征归一化/标准化

为什么要对特征做归一化/标准化?

统一量纲,对于距离敏感性模型能够提升精度(如K-means、KNN、PCA、SVM),对基于梯度下降的模型能加快收敛(如线性回归、逻辑回归、神经网络)。

为什么对于基于距离的模型能够提升精度?

不同的特征的数量级不同,如果不使用标准化/归一化,原始数量级大的特征可能会对模型输出造成较大影响,而数量级小的特征可能对于模型输出影响较小。也即模型要学习到:在特征同等重要的情况下,对数量级大的特征分配一个小的权重,对数量级小的特征分配一个大的权重。归一化之后可以优化这一过程,降低了模型的学习难度,让模型只需要学习到对重要特征赋予更大的权重,而对于不重要的特征赋予较小的权重即可,因此基于距离的模型能够在归一化之后提升模型精度。

为什么基于梯度下降的模型能加快收敛?

原始特征下,因尺度差异,这就导致了很可能不同特征需要学习的权重差别也会很大,其损失函数的等高线图就可能是椭圆形,梯度方向垂直于等高线,下降会走之字形路线,而不是指向local minimum。通过对特征进行zero-mean and unit-variance变换后,其损失函数的等高线图更接近圆形,梯度下降的方向震荡更小,收敛更快。

对于树模型是否需要做归一化,为什么?

不需要,因为数值缩放不影响分裂点位置,对树模型的结构不造成影响。

常用的归一化方法如下:
min-max normalization x ′ = x − min ⁡ ( x ) max ⁡ ( x ) − min ⁡ ( x ) x^{\prime}=\frac{x-\min (x)}{\max (x)-\min (x)} x=max(x)min(x)xmin(x)

Mean normalization x ′ = x − x ˉ max ⁡ ( x ) − min ⁡ ( x ) x^{\prime}=\frac{x-\bar{x}}{\max (x)-\min (x)} x=max(x)min(x)xxˉ

Standardization (Z-score Normalization) x ′ = x − x ˉ σ x^{\prime}=\frac{x-\bar{x}}{\sigma} x=σxxˉ

Scaling to unit length x ′ = x ∥ x ∥ x^{\prime}=\frac{x}{\|x\|} x=xx

上述4种方式,前3种为逐行操作,最后1种为逐列操作。

留个问题:假设我们要基于特征(x1,x2,…xn)来预测y,我们已知y=x1+x2+…+xn,且x1,x2,xn之间数量级差别很大,现在我们要建立一个模型来通过x预测y,你觉得是否应该进行归一化?
参考:https://www.cnblogs.com/shine-lee/p/11779514.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值