4.2 特征的标准化
问题描述
对一个特征进行转换,使其平均值为0、标准差为1。
解决方案
scikit-learn的StandardScaler能同时执行这两个转换:

讨论
4.1节中讨论的min-max缩放有一个常见的替代方案,就是将特征缩放为大致符合标准正态分布的。为了实现这样的缩放,我们使用标准化(standardization)方法来转换数据,这样数据就能有一个等于0的平均值 x 和一个等于1的标准差σ。也就是说,特征中的每个元素都会被转换,使得:

xi'是xi标准化后的形式。转换后的特征表示原始值距离平均值多少个标准差(在统计学中也称为z分数)。
标准化方法是机器学习数据预处理中的常用缩放方法,从我的经验来看,它比min-max缩放用得更多,但这也要看你所使用的机器学习算法。例如,在主成分分析中标准化方法更有用,而在神经网络中则更推荐使用min-max缩放(在本书的后面会详细讨论这两个算法)。一般来说,如果没有特殊原因,我推荐使用标准化方法进行缩放。
查看解决方案中最后输出的平均值和标准差,我们就能知道标准化的效果:

如果数据中存在很大的异常值,可能会影响特征的平均值和方差,也会对标准化的效果造成不良影响。在这种情况下,使用中位数和四分位数间距进行缩放会更有效。在scikit-learn中,具体的做法就是调用RobustScaler:




本书评论