数据标准化(normalization)
简介
特征缩放(Feature scaling [1] )也称为数据的标准化(normalization),是将数据按比例缩放,使之落入一个特定区间。不同数据往往具有不同的量纲,会影响到数据分析的结果,为了消除数据之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。
数据标准化优点 [2]
数据标准化到同一空间后有两个好处:
1. 加快了梯度下降求最优解的速度;
2. 有可能提高精度
数据标准化为什么能提高梯度下降法求解最优解的速度?
斯坦福机器学习视频做了很好的解释:
如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是 [1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;
而右图对两个原始特征进行了特征缩放,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。
因此如果机器学习模型使用梯度下降法求最优解时,特征缩放往往非常有必要,否则很难收敛甚至不能收敛。
数据标准化为什么有可能提高精度?
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
常见数据标准化类型 [2][3][4]
线性标准化(Min-Max Normalization)
也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下: