对标准化与最大最小归一化的理解

对标准化与最大最小归一化的理解,第1张

标准化与最大最小归一化 1.介绍

在时间序列预测中,经常要做数据的归一化,防止梯度下降时走之字形路线以加快收敛,梯度爆炸等问题。


2.实现
def standard_scaler(data,mean,std):
    return (data-mean)/std

def minmax_scaler(data,min,max):
    return (data-min)/(max-min)
3.异同点

同:对数据进行缩放,中心化
异:压缩后的均值不同。



从2可以看出,min,max会决定最大最小归一化后的数值大小, 最大最小归一化对异常值敏感,有较大的异常值,则原来较小的值会被压得很密,不便于区分特征,最大最小归一化后值的范围为[0,1];

标准化对异常值整体不敏感,受影响程度取决于数据集的大小和异常值的数量;标准化后的值范围[a,b],其中a可能小于0, b-a可能大于1, 标准化后的范围取决于特征数值的均值,以及特征数值的波动情况,即标准差。


4.例子

(1)原始数据,范围为[0,205]

(2)插入异常值
向数据中的14和18这两个点插入个两个异常值1050和1000;最大最小归一化的范围为[0,1]; 标准化的最小值小于0;



看不出来啥区别

(3)极端异常值
我们再向数据中x=14和x=28加入两个极端的极大值,分别是10500和10000,并把最大最小归一化和标准化后的数值都放置[-1,1]的范围下观察。






可以发现,在极端极大值情况下,最大最小化的值以及被压缩的很密,而标准化对原始距离做了缩放,保留了数据间数值的差异。


5.结论

(1)是否需要归一化
KNN,SVM,LR,GBDT等基于距离的要做归一化;决策树、贝叶斯,XGBoost, RF等与特征数值范围无关的模型不用做归一化;
(2)什么时候用标准化?什么时候用最大最小归一化?
一般优先标准化,数据中有异常值用标准化;数值波动情况不大的情况可以用最大最小归一化,对输出值范围有要求的用最大最小归一化。


参考

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/577900.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存