美文网首页机器学习
不要把归一化和标准化混为一谈

不要把归一化和标准化混为一谈

作者: 巴拉巴拉_9515 | 来源:发表于2019-09-26 16:50 被阅读0次

    长期以来一直没有清楚的弄明白标准化和归一化的问题,都当作同一件事情对待。知道是数据特征在进行模型运算之前去量纲、转换到小区间的一种Feature scaling(特征缩放)方法。

    本文将更进一步了解归一化、标准化,解答以下问题:

    • 标准化和归一化的差异
    • 为什么要归一化/标准化
    • 归一化和标准化的处理公式分别是什么
    • 什么场景使用哪种归一化方法
    • 什么时候用标准化?什么时候用归一化
    • 不是所有模型都要求输入数据经过标准化/归一化处理

    一、标准化和归一化的差异

    大的层面而言,归一化和标准化是差不多的,都是模型运算器对数据进行处理,从而使数值都落入到统一的数值范围,从而在建模过程中,各个特征量没差别对待。

    但归一化和标准化并不是同一个东西,存在以下差异:

    (1)转换区间

    归一化(Normalization):把数据转换到(0,1)或者(-1,1)区间的数据映射方式
    标准化(Standardization):把数据转换到均值为0,标准差为1的数据映射方式

    (2)数据分布

    归一化:对数据的数值范围进行特定缩放,但不改变其数据分布的一种特征变换。



    标准化:对数据的分布的进行转换,使其符合某种分布(比如正态分布)的一种特征变换。


    (3)处理方式

    归一化的缩放是“拍扁”统一到区间(仅由极值决定);
    而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系[3]

    二、为什么要归一化/标准化?

    (1)梯度下降的需要,加速算法收敛速度

    在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。

    所以像之前提到的线性回归、逻辑回归、神经网络等使用梯度下降法求解最优参数的算法,输入数据需要做归一化/标准化处理,提升模型收敛速度。

    (2)距离计算的需要,保障算法准确度

    一些算法需要计算样本之间的距离(如欧氏距离),例如KNN、kmeans等聚类算法。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖。

    (3)消除量纲和数量级影响

    各个指标之间由于计量单位和数量级不尽相同,从而使得各指标间不具有综合性,不能直接进行综合分析,这时就必须采用某种方法对各指标数值进行无量纲化处理,解决各指标数值不可综合性问题。

    什么是量纲?

    物理量按照其属性分为两类:
    1.物理量的大小与度量所选用的单位有关,称为有量纲量
    2.物理量的大小与度量所选的单位无关,称为无量纲量

    去量纲指的的去除数据单位之间的不统一,将数据统一变换为无单位(统一单位)的数据集。

    三、归一化和标准化的处理公式

    (1)常见的归一化方法

    rescaling(极值归一化)

    x' = \frac{x-min(x)}{max(x)-min(x)}

    mean normalization(平均归一化)

    x' = \frac{x-mean(x)}{max(x)-min(x)}

    线性比例缩放法

    x' = \frac{x_i}{max(x)}

    对数函数转换

    x'=\frac{log_{10}(x)}{log_{10}(xmax)}
    处理后数据范围为[0,1]

    sigmoid法

    x' = \frac{1}{1 +e^{-x}}

    (2) 标准化方法

    standardization(Z-score规范化/标准差标准化)

    x' = \frac{x-E(x)}{\sigma}

    四、什么场景使用哪种归一化方法?

    在阅读《基于神经网络的个人信用评分模型研究》一文的时候发现文章对定性指标使用极值归一化方法,对定量指标使用线性比例缩放法。因此提出问题:什么场景使用哪种归一化方法?毕竟我们有那么多种归一化的方法。

    目前没找到解答该疑问的相关资料(暂放)

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

    (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

    相关文章

      网友评论

        本文标题:不要把归一化和标准化混为一谈

        本文链接:https://www.haomeiwen.com/subject/hbtnuctx.html