归一化、标准化都是对数据分布进行调整的方式,将原始的一列数据转换到某个范围,或者某种形态。
归一化,可以分为两种类型或者说两个作用:
归一化的计算公式(常见的Min-Max归一化):
$$ 1.\space Normalization = \frac{X_i - X_{\min}}{X_{\max} - X_{\min}} $$
$$ 2.\space Normalization =a+ \frac{X_i - X_{\min}}{X_{\max} - X_{\min}}(b-a) $$
由上述公式1可知:归一化的输出范围是[0,1],这是最常见的。
公式2 是将范围限制在[a,b]之间,公式1是更常见的,是公式2的一个特例。
该方法对原始数据进行了缩放,实际上是缩小了。利用特征中最大值和最小值的差异来做分母,说明该方法的缩放程度仅仅与数据中的极值有关(所以说该方法对异常值也比较敏感),与其他值是无关的。所以,归一化不改变数据之间的相对顺序(如大小关系),因为所有的特征都是除以相同的分母。但是改变了数据的分布形状上的表现,例如,数据[1, 2, 3]和[100, 200, 300]归一化后都变成[0, 0.5, 1],丢失了它们在原始尺度上的分布差异(绝对值差异),同时也改变了数据点之间的绝对距离,点间距离由100变为0.5,但是距离之间的比例关系数保留的。原始数据的绝对数值范围和分布的统计特性(如标准差、偏态等)被抹平,仅保留了相对位置信息。
再来细说一下归一化的作用:
统一量纲:不同的特征存在不同的单位和数值范围,或者不同的特征数量级的变化也是不一样的,归一化将他们映射到同一个范围内,消除了量纲影响(改变变量在分析中的权重来解决不同度量的问题),使不同特征之间具有可比性。
归一化可以提高最优解的求解速度
还是以上面房屋选择的案例来分析:
假设房价只与自变量距离 $x_1$和房间个数 $x_2$ 有关,那么房价的公式以及损失函数(目标函数):
$$ y = \theta_1 x_1+\theta_2x_2 $$
$$ J = (\theta_1 x_1+\theta_2x_2 -y_{label})^2 $$
在未进行归一化的时候,距离变化范围是[0,5000],个数的范围[0,10],那么最优解的求解过程为:

因为距离和个数的数量级差距很大,所以等高线是一个椭圆,寻优过程中方向就是梯度的方向,也就是垂直于等高线的方向,上图蓝色就是求解过程。