标准缩放器和MinMaxScaler之间的区别

Cha*_*kra 3 python data-science

MinMaxScaler和标准缩放器之间有什么区别.

MMS= MinMaxScaler(feature_range = (0, 1)) (用于Program1)

sc = StandardScaler() (在另一个程序中,他们使用标准缩放器而不是minMaxScaler)

Bla*_*ven 54

MinMaxScaler(feature_range = (0, 1))将在 [0,1] 范围内按比例转换列中的每个值。将此用作转换特征的第一个缩放器选择,因为它将保留数据集的形状(无失真)。

StandardScaler()将把列中的每个值变换到均值 0 和标准差 1 左右的范围内,即每个值将通过减去均值并除以标准差来归一化。如果您知道数据分布是正常的,请使用 StandardScaler。

如果有异常值,请使用RobustScaler()。或者,您可以删除异常值并使用上述 2 个定标器中的任何一个(选择取决于数据是否呈正态分布)

附加说明:如果在 train_test_split 之前使用 scaler,则会发生数据泄漏。在 train_test_split 后使用缩放器

  • 刚刚找到一篇很好的文章解释了这些缩放器 https://towardsdatascience.com/scale-standardize-or-normalize-with-scikit-learn-6ccc7d176a02 (2认同)

Sim*_*nas 7

来自ScikitLearn网站:

StandardScaler删除均值并将数据缩放到单位差异.然而,异常值在计算经验均值和标准偏差时会产生影响,这会缩小特征值的范围,如下图左图所示.特别要注意的是,因为每个特征上的异常值具有不同的大小,所以每个特征上的变换数据的扩展是非常不同的:大多数数据位于转换的中值收入特征的[-2,4]范围内,同时相同对于转换后的家庭数量,数据被挤压在较小的[-0.2,0.2]范围内.

因此,StandardScaler无法在存在异常值的情况下保证平衡的特征尺度.

MinMaxScaler重新调整数据集,使所有要素值都在[0,1]范围内,如右下图所示.然而,对于转换后的家庭数量,这种缩放压缩了窄范围[0,0.005]内的所有内点.


小智 5

当数值输入变量缩放到标准范围时,许多机器学习算法的性能会更好。缩放数据意味着它有助于在特定范围内规范化数据。

当使用 MinMaxScaler 时,它也被称为归一化,它转换 (0 到 1) 之间范围内的所有值,公式为 x = [(value - min)/(Max- Min)]

StandardScaler 属于标准化,其值范围在 (-3 到 +3) 之间,公式为 z = [(x - x.mean)/Std_deviation]