一、标准化/归一化的作用
1.1 提升模型精度
对于某些需要计算距离的模型(如KNN),标准化后可将不同维度的特征用于比较。
1.2 提升收敛速度
标准化后,在线性模型梯度下降求最优解时更容易收敛。
二、常用的方法
2.1 StandardScaler
标准化数据通过减去均值然后除以方差(或标准差),转化后的数据服从均值为0,标准差为1的分布,转化函数为:
(
x
−
μ
)
σ
\frac{(x-\mu) }{\sigma}
σ(x−μ)。
注意:标准化并不改变原始数据的分布形式,只是对数据进行了线性的变换。
2.2 MinMaxScaler
通过公式 x − m i n m a x − m i n \frac{x-min}{max-min} max−minx−min将数据转化为 [ 0 , 1 ] [0,1] [0,1]区间,或者通过公式 x − m e a n m a x − m i n \frac{x-mean}{max-min} max−minx−mean将数据转化为 [ − 1 , 1 ] [-1,1] [−1,1]区间。
三、适用条件
- 在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,StandardScaler表现更好。
- 在不涉及距离度量、协方差计算、数据不符合正态分布的时候,可以使用MinMaxScaler。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在 [ 0 , 255 ] [0, 255] [0,255]的范围。