什么时候应该使用 StandardScaler,什么时候应该使用 MinMaxScaler?

数据挖掘 神经网络 特征选择 特征缩放 分类器
2021-09-20 03:22:00

我有一个具有 One-Hot-Encoded 特征和连续特征的特征向量。

我现在如何决定,哪些数据应该使用 StandardScaler 进行扩展,哪些数据使用 MinMaxScaler 进行扩展?我认为无论如何我都不必缩放 one-hot-encoded,因为它们已经在 0 和 1 之间。

(我之后使用 MLPClassifier)

2个回答

在处理连续数值数据时,StandardScaler 和 MinMaxScaler 更为常见。

OneHotEncoding 缩放的一种可能的预处理方法是通过将softb(0) = 0.1, softb(1) = 0.9. 根据我在前馈神经网络方面的经验,这被发现非常有用,因此我希望它对您的 MLPClassifier 也有帮助。

StandardScaler对于遵循正态分布的特征很有用。下图(来源)清楚地说明了这一点

在此处输入图像描述

当上边界和下边界从领域知识中众所周知(例如,在 RGB 颜色范围内从 0 到 255 的像素强度)时,可以使用MinMaxScaler 。

Raschka的“Python 机器学习”中,作者在第 111 页提供了一些指导,何时规范化(最小-最大尺度)以及何时规范化数据:

尽管通过最小-最大缩放进行标准化是一种常用技术,当我们需要有界区间内的值时很有用,但标准化对于许多机器学习算法来说更实用。原因是许多线性模型,例如逻辑回归和 SVM,[...] 将权重初始化为 0 或接近 0 的小随机值。使用标准化,我们将特征列的中心设置为均值 0,标准差为 1,因此特征列采用正态分布的形式,这使得学习权重更容易。此外,标准化保留了关于异常值的有用信息,并使算法对它们不那么敏感,这与最小-最大缩放相比,后者将数据缩放到有限的值范围。