背景

在机器学习领域中,不同评价指标(即特征向量中的不同特征就是所述的不同评价指标)往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。一般涉及到梯度下降和距离的计算需要进行标准化或正则化。

  • 数据的标准化(Standardization)是将数据按比例缩放,使之落入一个小的特定区间。因而标准化的数据可正可负。

  • 归一化(Normalization)其实就是标准化的一种方式,只不过归一化是将数据映射到了[0,1]这个区间中。

归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]),从而消除奇异样本数据导致的不良影响。

方法

线性归一化

最大最小值归一化(min-max normalization)适合数值比较集中的情况,缺陷就是如果max和min不稳定,很容易使得归一化结果不稳定,使得后续的效果不稳定。

x=xmin(x)max(x)min(x)x^{\prime}=\frac{x-\min (x)}{\max (x)-\min (x)}

在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用这种归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0,255]的范围。

标准差标准化

Z-score(Z-Score Standardization)处理后数据符合正态分布,

x=xμδx^{\prime}=\frac{x-\mu}{\delta}

在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好。

非线性归一化

这种归一化方法经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射,该方法包括 对数,正切等,需要根据数据分布的情况,决定非线性函数的曲线。

  • log 函数:

x=log(x)log(max)x^{\prime}=\frac{\log(x)}{\log(max)}

  • 反正切函数:

x=arctan(x)×2πx^{\prime}=\frac{arctan(x)\times 2}{\pi}

  • sigmoid 函数:

x=11+exx^{\prime}=\frac{1}{1+e^{-x}}

总结

归一化可能具有以下好处:

  • 加快梯度下降的求解速度,即提升模型的收敛速度;
  • 有可能提高模型的精度

归一化是为了消除不同数据之间的量纲,方便数据比较和共同处理,比如在神经网络中,归一化可以加快训练网络的收敛性;标准化是为了方便数据的下一步处理,而进行的数据缩放等变换,并不是为了方便与其他数据一同处理或比较,比如数据经过零-均值标准化后,更利于使用标准正态分布的性质,进行处理;正则化而是利用先验知识,在处理过程中引入正则化因子(regulator),增加引导约束的作用,比如在逻辑回归中使用正则化,可有效降低过拟合的现象。

联系作者