数据什么时候需要做中心化和标准化处理?

理由
举报 取消

对中心化和标准化的目的和结果不是很了解,请问如果拿到一组数据,需要对所有变量做中心话和标准化的处理吗?如果不是,什么时候需要,什么时候不需要,为什么?

2017年8月21日 3 条回复 1154 次浏览

发起人:安东尼奥 初入职场

欢迎欢迎,热烈欢迎。

回复 ( 3 )

  1. Spark
    理由
    举报 取消

    谢邀。

    在回归问题和一些机器学习算法中,以及训练神经网络的过程中,通常需要对原始数据进行中心化(Zero-centered或者Mean-subtraction)处理和标准化(Standardization或Normalization)处理。

    • 目的:通过中心化和标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。
    • 计算过程由下式表示:x^{'}=\frac{x-\mu }{\sigma }
    • 下面解释一下为什么需要使用这些数据预处理步骤。

    在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价y的因素有房子面积x_{1}、卧室数量x_{2}等,我们得到的样本数据就是(x_{1},x_{2})这样一些样本点,这里的x_{1}x_{2}又被称为特征。很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。

    • 简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。
    • 下图中以二维数据为例:左图表示的是原始数据;中间的是中心化后的数据,数据被移动大原点周围;右图将中心化后的数据除以标准差,得到为标准化的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度)。

    其实,在不同的问题中,中心化和标准化有着不同的意义,

    • 比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。
    • 另外,对于主成分分析(PCA)问题,也需要对数据进行中心化和标准化等预处理步骤。
  2. jkyu
    理由
    举报 取消

    以PCA为例说下中心化的作用。

    下面两幅图是数据做中心化(centering)前后的对比,可以看到其实就是一个平移的过程,平移后所有数据的中心是(0,0).

    在做PCA的时候,我们需要找出矩阵的特征向量,也就是主成分(PC)。比如说找到的第一个特征向量是a = [1, 2],a在坐标平面上就是从原点出发到点(1,2)的一个向量。

    如果没有对数据做中心化,那算出来的第一主成分的方向可能就不是一个可以“描述”(或者说“概括”)数据的方向了。还是看图比较清楚。

    黑色线就是第一主成分的方向。只有中心化数据之后,计算得到的方向才能比较好的“概括”原来的数据。

    最后, 给题主推荐一个问答论坛cross validated,上面可以找到很多数据分析,机器学习相关领域的问答。

  3. 南淑离
    理由
    举报 取消

    对数据进行中心化预处理,这样做的目的是要增加基向量的正交性。

    对数据标准化的目的是消除特征之间的差异性。便于对一心一意学习权重。

我来回答

Captcha 点击图片更换验证码