三、数据标准化、正则化

3.1. 数据标准化

  1. 数据标准化是将样本的属性取值缩放到某个指定的范围。

  2. 数据标准化的两个原因:

    • 某些算法要求样本数据的属性取值具有零均值和单位方差。

    • 样本不同属性具有不同量级时,消除数量级的影响。如下图所示为两个属性的目标函数的等高线。

      • 数量级的差异将导致量级较大的属性占据主导地位。

        从图中看到:如果样本的某个属性的量级特别巨大,将原本为椭圆的等高线压缩成直线,从而使得目标函数值仅依赖于该属性。

      • 数量级的差异将导致迭代收敛速度减慢。

        原始的特征进行梯度下降时,每一步梯度的方向会偏离最小值(等高线中心点)的方向,迭代次数较多,且学习率必须非常小,否则非常容易引起宽幅震荡。

      标准化后进行梯度下降时,每一步梯度的方向都几乎指向最小值(等高线中心点)的方向,迭代次数较少。

      • 所有依赖于样本距离的算法对于数据的数量级都非常敏感。

        三、数据标准化、正则化 - 图1 近邻算法需要计算距离当前样本最近的 三、数据标准化、正则化 - 图2 个样本。当属性的量级不同时,选取的最近的 三、数据标准化、正则化 - 图3 个样本也会不同。

      standardization

  3. 设数据集 三、数据标准化、正则化 - 图5 。常用的标准化算法有:

    • min-max标准化:对于属性 三、数据标准化、正则化 - 图6,设所有样本在属性 三、数据标准化、正则化 - 图7 上的最大值为 三、数据标准化、正则化 - 图8 ,最小值为 三、数据标准化、正则化 - 图9 。则标准化后的属性值为:

      三、数据标准化、正则化 - 图10

      标准化之后,所有样本在属性 三、数据标准化、正则化 - 图11 上的取值都在 [0,1] 之间。

    • z-score标准化:对于属性 三、数据标准化、正则化 - 图12,设所有样本在属性 三、数据标准化、正则化 - 图13 上的均值为 三、数据标准化、正则化 - 图14 ,方差为 三、数据标准化、正则化 - 图15 。则标准化后的属性值为:

      三、数据标准化、正则化 - 图16

      标准化之后,样本集的所有属性的均值都为 0,标准差均为 1。

  4. 注意:如果数据集分为训练集、验证集和测试集,则:训练集、验证集、测试集使用相同标准化参数,该参数的值都是从训练集中得到。

    • 如果使用min-max 标准化,则属性 三、数据标准化、正则化 - 图17 的标准化参数 三、数据标准化、正则化 - 图18 都是从训练集中计算得到。
    • 如果使用z-score 标准化,则属性 三、数据标准化、正则化 - 图19 的标准化参数 三、数据标准化、正则化 - 图20 都是从训练集中计算得到。

3.2. 数据正则化

  1. 数据正则化是将样本的某个范数(如 三、数据标准化、正则化 - 图21 范数)缩放到单位1。

    设数据集 三、数据标准化、正则化 - 图22。 则样本 三、数据标准化、正则化 - 图23 正则化后的结果为:

    三、数据标准化、正则化 - 图24

    其中 三、数据标准化、正则化 - 图25 为范数:三、数据标准化、正则化 - 图26

  2. 正则化的过程是针对单个样本的,对每个样本将它缩放到单位范数。

    标准化是针对单个属性的,需要用到所有样本在该属性上的值。

  3. 通常如果使用二次型(如点积)或者其他核方法计算两个样本之间的相似性时,该方法会很有用。