长期以来一直没有清楚的弄明白标准化和归一化的问题,都当作同一件事情对待。知道是数据特征在进行模型运算之前去量纲、转换到小区间的一种Feature scaling(特征缩放)方法。
本文将更进一步了解归一化、标准化,解答以下问题:
- 标准化和归一化的差异
- 为什么要归一化/标准化
- 归一化和标准化的处理公式分别是什么
- 什么场景使用哪种归一化方法
- 什么时候用标准化?什么时候用归一化
- 不是所有模型都要求输入数据经过标准化/归一化处理
一、标准化和归一化的差异
大的层面而言,归一化和标准化是差不多的,都是模型运算器对数据进行处理,从而使数值都落入到统一的数值范围,从而在建模过程中,各个特征量没差别对待。
但归一化和标准化并不是同一个东西,存在以下差异:
(1)转换区间
归一化(Normalization):把数据转换到(0,1)或者(-1,1)区间的数据映射方式
标准化(Standardization):把数据转换到均值为0,标准差为1的数据映射方式
(2)数据分布
归一化:对数据的数值范围进行特定缩放,但不改变其数据分布的一种特征变换。
标准化:对数据的分布的进行转换,使其符合某种分布(比如正态分布)的一种特征变换。
(3)处理方式
归一化的缩放是“拍扁”统一到区间(仅由极值决定);
而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系[3]。
二、为什么要归一化/标准化?
(1)梯度下降的需要,加速算法收敛速度
在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。
所以像之前提到的线性回归、逻辑回归、神经网络等使用梯度下降法求解最优参数的算法,输入数据需要做归一化/标准化处理,提升模型收敛速度。
(2)距离计算的需要,保障算法准确度
一些算法需要计算样本之间的距离(如欧氏距离),例如KNN、kmeans等聚类算法。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖。
(3)消除量纲和数量级影响
各个指标之间由于计量单位和数量级不尽相同,从而使得各指标间不具有综合性,不能直接进行综合分析,这时就必须采用某种方法对各指标数值进行无量纲化处理,解决各指标数值不可综合性问题。
什么是量纲?
物理量按照其属性分为两类:
1.物理量的大小与度量所选用的单位有关,称为有量纲量
2.物理量的大小与度量所选的单位无关,称为无量纲量
去量纲指的的去除数据单位之间的不统一,将数据统一变换为无单位(统一单位)的数据集。
三、归一化和标准化的处理公式
(1)常见的归一化方法
rescaling(极值归一化)
mean normalization(平均归一化)
线性比例缩放法
对数函数转换
处理后数据范围为[0,1]
sigmoid法
(2) 标准化方法
standardization(Z-score规范化/标准差标准化)
四、什么场景使用哪种归一化方法?
在阅读《基于神经网络的个人信用评分模型研究》一文的时候发现文章对定性指标使用极值归一化方法,对定量指标使用线性比例缩放法。因此提出问题:什么场景使用哪种归一化方法?毕竟我们有那么多种归一化的方法。
目前没找到解答该疑问的相关资料(暂放)
五、什么时候用标准化?什么时候用归一化?
(1)一般建议优先使用标准化,在机器学习中,标准化是更常用的手段,归一化的应用场景是有限的。
(2)如果数据不为稳定,存在极端的最大最小值,不要用归一化。
(3)在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化(Z-score standardization)表现更好[6]。
(4)在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围[6]。
标准化的隐含假设是数据符合正态分布的
六、不是所有模型都要求输入数据经过标准化/归一化处理
不是所有的模型都需要做归一的,比如模型算法里面有没关于对距离的衡量,没有关于对变量间标准差的衡量。
(1)比如decision tree 决策树,他采用算法里面没有涉及到任何和距离等有关的,所以在做决策树模型时,通常是不需要将变量做标准化的[7]。
(2)概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。
参考资料
写本文是为了解答一些疑问,参考并整理了各种资料,感谢各种简友、知友、博主的分享。
[1] 归一化、标准化和中心化/零均值化:https://www.jianshu.com/p/95a8f035c86c
[2] 知乎-标准化和归一化的差别:https://www.zhihu.com/question/20467170
[3] https://www.zhihu.com/question/20455227/answer/370658612
[4] https://maristie.com/blog/differences-between-normalization-standardization-and-regularization/
[5] 如何理解Normalization,Regularization 和 standardization?https://www.zhihu.com/question/59939602
[6] 归一化方法总结:https://blog.csdn.net/young951023/article/details/78389445
[7] https://blog.csdn.net/u010947534/article/details/86632819