1.定义
数据标准化(Normalization),也称作归一化,归一化就是将你需要处理的数据在通过某种算法经过处理后,限制将其限定在你需要的一定的范围内。
数据标准化处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要对数据进行归一化处理,解决数据指标之间的可比性问题。
2.优点
如上面所说,数据归一化的目的就是为了把不同来源的数据统一到同一数量级(一个参考坐标系)下,这样使得比较起来有意义。归一化使得后面数据的处理更为方便,它有两大优点:
- 归一化可以加快梯度下降求最优解的速度
- 归一化有可能提高精度。
(1)归一化提高梯度下降发求解最优解的速度:
如下图,蓝色的圈圈表示特征的等高线。其中左图的两个特征x1和x2区间相差较大,x1[0,2000],x2[1,5],期所形成的等高线在一些区域相距非常远,当使用梯度下降法求解最优解的时候,很可能垂直等高线走“之字型”路线(左图红色路径),从而导致需要迭代很多次才能收敛,也可能不收敛。而右图对两个原始特征进行了归一化处理,其对应的等高线显得很圆,在梯度下降的时候就能很快收敛。因此,如果机器学习使用梯度下降法求解最优解时,归一化往往是非常有必要的。
进行了特征缩放以后,代价函数的轮廓会是“偏圆”的,梯度下降过程更加笔直,收敛更快性能因此也得到提升:
(2)归一化有可能提高精度
一些分类器(如KNN)需要计算样本之间的距离(如欧式距离)。如果一个特征值域范围非常大,那么距离计算就要取决于这个特征,如果这时实际情况是值域范围小的特征更重要,那么归一化就要起作用了。
3.归一化方法
(1)线性归一化,也称min-max标准化、离差标准化;是对原始数据的线性变换,使得结果值映射到[0,1]之间。转换函数如下:
$x’ = \frac{x-min(x)}{max(x)-min(x)} $
2)标准差归一化,也叫Z-score normalization,这种方法给予原始数据的均值(mean,μ)和标准差(standard deviation,σ)进行数据的标准化。经过处理后的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:
$ z=\frac{x_i-\mu}{ \delta}$
其中, μ \mu μ和 δ \delta δ分别为对应特征的均值和标准差。量化后的特征将分布在[-1, 1]区间。