Sklearn中常用的标准化的方法及适用条件

进行数据标准化时,经常纠结于用哪一种好,今天对sklearn库中的标准化方法的原理和适用的数据分布情况进行总结。

Sklearn中标准化的方法及适用条件

sklearn的preprocessing提供了可以满足需求的归一化方法
进行标准化的方式有三种

1 StandardScaler

标准化数据通过减去均值然后除以方差(或标准差),这种数据标准化方法经过处理后数据符合标准正态分布,即均值为0,标准差为1,转化函数为:
x =(x - )/
适用于:如果数据的分布本身就服从正态分布,就可以用这个方法。
通常这种方法基本可用于有outlier的情况,但是,在计算方差和均值的时候outliers仍然会影响计算。所以,在出现outliers的情况下可能会出现转换后的数的不同feature分布完全不同的情况。

如下图,经过StandardScaler之后,横坐标与纵坐标的分布出现了很大的差异,这可能是outliers造成的。

Sklearn中常用的标准化的方法及适用条件_第1张图片

2 MinMaxScaler

将特征缩放至特定区间,将特征缩放到给定的最小值和最大值之间,或者也可以将每个特征的最大绝对值转换至单位大小。这种方法是对原始数据的线性变换,将数据归一到[0,1]中间。转换函数为:
x = (x-min)/(max-min)

这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。
敲黑板,这种方法对于outlier非常敏感,因为outlier影响了max或min值,所以这种方法只适用于数据在一个范围内分布的情况

3 RobustScaler

如果你的数据包含许多异常值,使用均值和方差缩放可能并不是一个很好的选择。这种情况下,你可以使用 robust_scale 以及 RobustScaler 作为替代品。它们对你的数据的中心和范围使用更有鲁棒性的估计。使用四分位距进行标准化,也就可以在一定程度上避免异常值的影响。

This Scaler removes the median(中位数) and scales the data according to the quantile range(四分位距离,也就是说排除了outliers)

你可能感兴趣的:(数据分析经验笔记)