外观
特征缩放与标准化的真正目的
The True Purpose of Feature Scaling and Standardization
特征缩放和标准化(standardization)是改变特征取值范围的两种常见方式。例如:
- MinMaxScaler 把特征的范围变为 [0,1]:
- 标准化则使特征的均值为零、标准差为一:
- 你可能已经知道,这些操作之所以必要,是因为:
- 它们能避免某个特征对模型输出产生过强的影响。
- 它们能确保模型对数据中较大的波动更加稳健。


例如,在下图中,“收入”的量纲可能会对整体预测产生巨大影响。

对数据进行缩放(或标准化)可以缓解这一问题,并提升模型性能。我们在特征缩放那一章也学过这一点:

如上图所示,特征缩放对许多机器学习模型的更好性能是必要的。所以,尽管特征缩放和标准化的重要性十分清楚、也广为人知,我却见过许多人把它们误当成消除偏度的技术。但与这种常见看法相反,特征缩放和标准化永远不会改变底层的分布,它们只是改变了取值的范围。因此,在缩放(或标准化)之后:
- 正态分布 → 仍是正态分布
- 均匀分布 → 仍是均匀分布
- 偏态分布 → 仍是偏态分布
- 以此类推……
我们也可以从下面两幅图中验证这一点:


很明显,缩放和标准化对底层分布没有任何影响。因此,请始终记住:如果你的目的是消除偏度,缩放/标准化永远帮不上忙,请改用特征变换。特征变换有很多种,但最常用的几种是:
- 对数变换(log transform)
- 平方根变换(sqrt transform)
- Box-cox 变换
它们的有效性从下图中可以清楚看出:

如这幅图所示,应用这些操作能把偏态数据变换成(某种程度上的)正态分布变量。在结束之前,请注意:虽然对数变换常被用来消除数据偏度,但它并不总是理想的解决方案。