机器学习中常见数据的归一化(normalization)和标准化(standardization),其实这二者的作用和处理方法都很相似,本文作简单介绍。
两者的基本作用是消除不同变量之间量纲的影响,方便数据处理。在机器学习中的作用是:
1. 提高模型的收敛速度
假设某一模型包含两个特征x1,x2x1,x2,x1x1数值很大,而 x2x2数值很小,两者的取值在平面上呈现一个狭长的椭圆形,这使得在梯度下降时,梯度的方向因为垂直等高线而走“之”字形路线,这会使迭代很慢。相反若两个变量取值对称性较好,构成圆形,则每一次迭代时梯度都会朝着正确的方向下降,避免走弯路,加快了收敛速度。
2.提高模型精度
在涉及到度量计算时,显然变量的数值量级差异会产生很大影响。例如:若x1x1取值范围较小,对于度量计算的结果显然比x2x2小,这就会造成精度的损失。因此归一化和标准化会让各个特征在对应权重相同时,自身的单位数值对结果做出的贡献相同。
下面简述归一化和标准化在处理方法上的差异。
归一化
做法:将原始数据映射到[0,1]区间。
常用方法:
1.min-max归一化
该方法是线性映射,最为直观快捷,但新增数据时可能需要更新最大值或最小值,而且受极端样本影响大,鲁棒性差,适合对小样本分析。
2.对数函数转换
3.反正切函数转换
4.L2-norm归一化
标准化
做法:将原始数据映射到一个较小的特定的范围内,映射后的数据均值为0,标准差为1。
常用方法:
1.z-score标准化
最常用的标准化方法,该方法要求原始数据的分布近似为高斯分布,否标标准化的效果较差。样本数越多效果越稳定,比较适合对大数据分析。也常用在对数据降维操作(PCA等)之前。
2.Decimal scaling小数定标标准化
其中,10j10j为大于样本最大值绝对值的最小满足条件的值。
该方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于样本最大值的绝对值。
3.Logistic\softmax变换
这也就是sigmoid函数,两极分化的分布便于做数据的二分类。当然若要实现多分类,也可用softmax函数做标准化变换: