数据的归一化与标准化

一、归一化与标准化的概念

1.数据归一化和标准化的目的

  归一化/标准化可以去除数据单位对计算带来的影响,也就是所谓的去量纲行为,归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。以三个时间字段为例来说明单位对计算带来的影响,假设一组数据有三个字段均表示3小时,如下表所示:

小时 分钟
3 180 10800

  当时间增加一个小时后,见下表:

小时 分钟
4 240 14400

  对比两个表可以看出,同样是增加一个小时,但是三个字段的波动幅度是秒>分钟>小时,在计算时因为单位的不同,导致波动范围的不同,进而导致对运算结果的影响不同,归一化/标准化就是去除单位对计算带来的影响。

  归一化/标准化的去量纲作用能够带来以下两个好处:
  [1] 提升模型的精度。一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
  [2] 提高收敛速度。对于线性模型来说,数据归一化/标准化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。如下图所示:

数据的归一化与标准化

  比较这两个图,前者是没有经过归一化/标准化的,在梯度下降的过程中,走的路径更加的曲折,而第二个图明显路径更加平缓,收敛速度更快。

2. 归一化的概念

  归一化是指将原始数据通过线性变化转换为范围在[0, 1]或[-1, 1]之间的数。

  范围在[0,1 ]变换公式如下:
x=xminmaxmin x = \frac{x-min}{max-min}
  其中,min为最小值,max为最大值。

  范围在[-1, 1]之间的变换公式如下:
x=xμmaxmin x = \frac{x-μ}{max-min}
  其中,μ为最均值,max为最大值。

3.标准化的概念(Z-Score

  标准化也叫Z-Score标准化,是指将原始数据转化为均值为0,标准差为1的数据集,经过标准化处理的数据符合标准的正态分布,变换公式如下:
x=xμδ x = \frac{x-μ}{δ}
  其中μ为数据集的平均值,δ为数据集的标准差。

二、归一化的特点及适用场景

1.归一化的缺点

  归一化的问题是数据的添加和减少会引起min和max的变化,进而会导致整个变换后的结果的变化,其次数据中如果存在异常值,而异常值恰好是max或min的话也会对整个转换后的结果产生很大的影响。

2.归一化适用场景

  [1] 比较适用在数值比较集中的情况。

  [2] 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用该方法。

三、标准化的特点及适用场景

1.标准化的缺点

  对于数据的分布有一定的要求,正态分布是最有利于Z-Score标准化计算。-Score消除了数据具有的实际意义,Z-Score的结果只能用于比较数据间的结果,数据的真实意义还需要还原原值。

2.标准化的适用场景

  原始数据(近似)高斯分布。否则归一化后的效果会很差。

四、什么时候用标准化什么时候用归一化?

引自知乎的回答:
数据的归一化与标准化

五、参考文献

【1】https://blog.csdn.net/reticent_man/article/details/82632271

【2】https://blog.csdn.net/weixin_38313518/article/details/79950654

【3】http://www.cnblogs.com/bjwu/p/8977141.html

【4】https://blog.csdn.net/u012101561/article/details/72506273/

【5】https://blog.csdn.net/Orange_Spotty_Cat/article/details/80312154

【6】https://www.jianshu.com/p/95a8f035c86c

【7】https://www.zhihu.com/question/20455227/answer/370658612