数据的归一化与标准化
一、归一化与标准化的概念
1.数据归一化和标准化的目的
归一化/标准化可以去除数据单位对计算带来的影响,也就是所谓的去量纲行为,归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。以三个时间字段为例来说明单位对计算带来的影响,假设一组数据有三个字段均表示3小时,如下表所示:
小时 | 分钟 | 秒 |
---|---|---|
3 | 180 | 10800 |
当时间增加一个小时后,见下表:
小时 | 分钟 | 秒 |
---|---|---|
4 | 240 | 14400 |
对比两个表可以看出,同样是增加一个小时,但是三个字段的波动幅度是秒>分钟>小时,在计算时因为单位的不同,导致波动范围的不同,进而导致对运算结果的影响不同,归一化/标准化就是去除单位对计算带来的影响。
归一化/标准化的去量纲作用能够带来以下两个好处:
[1] 提升模型的精度。一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
[2] 提高收敛速度。对于线性模型来说,数据归一化/标准化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。如下图所示:
比较这两个图,前者是没有经过归一化/标准化的,在梯度下降的过程中,走的路径更加的曲折,而第二个图明显路径更加平缓,收敛速度更快。
2. 归一化的概念
归一化是指将原始数据通过线性变化转换为范围在[0, 1]或[-1, 1]之间的数。
范围在[0,1 ]变换公式如下:
其中,min为最小值,max为最大值。
范围在[-1, 1]之间的变换公式如下:
其中,μ为最均值,max为最大值。
3.标准化的概念(Z-Score)
标准化也叫Z-Score标准化,是指将原始数据转化为均值为0,标准差为1的数据集,经过标准化处理的数据符合标准的正态分布,变换公式如下:
其中μ为数据集的平均值,δ为数据集的标准差。
二、归一化的特点及适用场景
1.归一化的缺点
归一化的问题是数据的添加和减少会引起min和max的变化,进而会导致整个变换后的结果的变化,其次数据中如果存在异常值,而异常值恰好是max或min的话也会对整个转换后的结果产生很大的影响。
2.归一化适用场景
[1] 比较适用在数值比较集中的情况。
[2] 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用该方法。
三、标准化的特点及适用场景
1.标准化的缺点
对于数据的分布有一定的要求,正态分布是最有利于Z-Score标准化计算。-Score消除了数据具有的实际意义,Z-Score的结果只能用于比较数据间的结果,数据的真实意义还需要还原原值。
2.标准化的适用场景
原始数据(近似)高斯分布。否则归一化后的效果会很差。
四、什么时候用标准化什么时候用归一化?
引自知乎的回答:
五、参考文献
【1】https://blog.****.net/reticent_man/article/details/82632271
【2】https://blog.****.net/weixin_38313518/article/details/79950654
【3】http://www.cnblogs.com/bjwu/p/8977141.html
【4】https://blog.****.net/u012101561/article/details/72506273/
【5】https://blog.****.net/Orange_Spotty_Cat/article/details/80312154