Skip to content

特征缩放与标准化的真正目的

The True Purpose of Feature Scaling and Standardization

特征缩放和标准化(standardization)是改变特征取值范围的两种常见方式。例如:

  • MinMaxScaler 把特征的范围变为 [0,1]:
  • 标准化则使特征的均值为零、标准差为一:
  • 你可能已经知道,这些操作之所以必要,是因为:
  • 它们能避免某个特征对模型输出产生过强的影响。
  • 它们能确保模型对数据中较大的波动更加稳健。

ds p404 1

ds p404 2

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

ds p404 3

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

ds p405 1

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

  • 正态分布 → 仍是正态分布
  • 均匀分布 → 仍是均匀分布
  • 偏态分布 → 仍是偏态分布
  • 以此类推……

我们也可以从下面两幅图中验证这一点:

ds p406 1

ds p406 2

很明显,缩放和标准化对底层分布没有任何影响。因此,请始终记住:如果你的目的是消除偏度,缩放/标准化永远帮不上忙,请改用特征变换。特征变换有很多种,但最常用的几种是:

  • 对数变换(log transform)
  • 平方根变换(sqrt transform)
  • Box-cox 变换

它们的有效性从下图中可以清楚看出:

ds p406 3

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

本站内容仅供学习交流,版权归原作者所有。