预处理:对数据的一种简单的按特征的缩放和移动。
不同类型的预处理

这是一个有两个特征(x/y)的二分类数据集,四种预处理方法:
- StandardScaler:确保每个特征的平均值为0,方差为1。
- RobustScaler:使用中位数和四分位数(四分之一),确保每个特征的统计属性都位于同一范围。
- MinMaxScalar:移动数据,使所有特征都刚好位于0-1之间。
- Normalizer:对每个数据点进行缩放,使得特征向量的欧式长度等于1。
一、数据标准化 / 归一化的作用
- 提升模型精度:标准化 / 归一化使不同维度的特征在数值上更具比较性,提高分类器的准确性。
- 提升收敛速度:对于线性模型,数据归一化使梯度下降过程更加平缓,更易正确的收敛到最优解。
二、标准差标准化 StandardScaler
使用均值与方差,对服从正态分布的数据处理,得到符合标准正态分布的数据
处理方法:标准化数据减去均值,然后除以标准差,经过处理后数据符合标准正态分布,即均值为0,标准差为1;
转化函数:x = (x-mean) / std;
**适用性:适用于本身服从正态分布的数据;
**Outlier 的影响:基本可用于有outlier的情况,但在计算方差和均值时outliers仍然会影响计算。
三、极差标准化 / 归一化 MinMaxScaler
区间缩放,基于最大最小值,将数据转换到0,1区间上的
处理方法:将特征缩放到给定的最小值和最大值之间,也可以将每个特征的最大绝对值转换至单位大小。这种方法是对原始数据的线性变换,将数据归一到[0,1]中间;
转换函数:x = (x-min) / (max-min);
适用性:适用于分布范围较稳定的数据,当新数据的加入导致max/min变化,则需重新定义;
Outlier 的影响:因为outlier会影响最大值或最小值,因此对outlier非常敏感。
四、稳健标准化 RobustScaler
使用具有鲁棒性的统计量缩放带有异常值(离群值)的数据
处理方法:该缩放器删除中位数,并根据百分位数范围(默认值为IQR:四分位间距)缩放数据;
IQR:是第1个四分位数(25%)和第3个四分位数(75%)之间的范围;
适用性:适用于包含许多异常值的数据;
Outlier 的影响:RobustScaler 利用IQR进行缩放来弱化 outlier 的影响
五、总结
在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,StandardScaler表现更好(避免不同量纲对方差、协方差计算的影响);
在不涉及距离度量、协方差、数据不符合正态分布、异常值较少的时候,可使用MinMaxScaler。(eg:图像处理中,将RGB图像转换为灰度图像后将其值限定在 [0, 255] 的范围);
在带有的离群值较多的数据时,推荐使用RobustScaler。
参考文章:
1. 数据标准化/归一化normalization
2. 机器学习中数据预处理——标准化/归一化方法(scaler)
3. 缩放有离群值的数据 sklearn.preprocessing.RobustScaler
4. 标准化数据-StandardScaler
六、向量的尺度变化


