一、标准化与归一化
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。
在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。
二、标准化方法及适用场景
最常见的有这两种:
1. Min-max 标准化
比如把最大值归一化成1,最小值归一化成-1;或把最大值归一化成1,最小值归一化成0。
适用于本来就分布在有限范围内的数据。
2. Z-score 标准化
一般是把均值归一化成0,方差归一化成1。
适用于分布没有明显边界的情况,受outlier影响也较小。
1、在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。
2、在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。
3. 其他
4. logistic函数和softmax函数
二分类和多分类的概率输出值。同样是映射到(0,1)可以看作归一化
三、为什么一些机器学习模型需要对数据进行归一化?
参考文献:http://www.cnblogs.com/LBSer/p/4440590.html
1归一化后加快了梯度下降求最优解的速度
如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是[1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;
而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。
因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。
2 归一化有可能提高精度
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
四、哪些机器学习模型需要归一化
概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。像svm、线性回归之类的最优化问题就需要归一化。树模型属于概率模型。