特征缩放
原因:
- 数量级的差异将导致量级较大的属性占据主导地位
- 数量级的差异将导致迭代收敛速度减慢
- 依赖于样本距离的算法对于数据的数量级非常敏感
好处:
- 提升模型的精度:在机器学习算法的目标函数中使用的许多元素(例如支持向量机的 RBF 内核或线性模型的 l1 和 l2 正则化),都是假设所有的特征都是零均值并且具有同一阶级上的方差。如果某个特征的方差比其他特征大几个数量级,那么它就会在学习算法中占据主导位置,导致学习器并不能像我们期望的那样,从其他特征中学习
- 提升收敛速度:对于线性模型来说,数据归一化后,寻找最优解的过程明显会变得平缓,更容易正确地收敛到最优解
Standardization (Z-score normalization)
通过减去均值然后除以标准差,将数据按比例缩放,使之落入一个小的特定区间,处理后的数据均值为0,标准差为1
x ′ = x − m e a n ( x ) s t d ( x ) x^{\prime} = { {x - mean(x)} \over std(x)} x′=std(x)x−mean(x)
适用范围:
- 数据本身的分布就服从正太分布
- 最大值和最小值未知的情况,或有超出取值范围的离群数据的情况
- 在分类、聚类算法中需要使用距离来度量相似性、或者使用PCA(协方差分析)技术进行降维时,使用该方法表现更好
Rescaling (min-max normalization)
将原始数据线性变换到用户指定的最大-最小值之间,处理后的数据会被压缩到 [0,1] 区间上
x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x^{\prime} = { {x - min(x)} \over {max(x) - min(x)}} x′=max(x)−min(x)x−min(x)
适用范围:
- 对输出范围有要求
- 数据较为稳定,不存在极端的最大最小值
- 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用该方法
Mean normalization
x ′ = x − m e a n ( x ) m a x ( x ) − m i n ( x ) x^{\prime} = { {x - mean(x)} \over {max(x) - min(x)}} x′=max(x)−min(x)x−mea