Standard scaler 和 MinMaxScaler 之间的区别

新手上路,请多包涵

MinMaxScaler()StandardScaler() 之间有什么区别。

mms = MinMaxScaler(feature_range = (0, 1)) (用于机器学习模型)

sc = StandardScaler() (在另一个机器学习模型中,他们使用标准缩放器而不是最小最大缩放器)

原文由 Chakra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

来自 ScikitLearn 网站

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

因此,StandardScaler 不能保证在异常值存在的情况下平衡特征尺度。

MinMaxScaler 数据集,使所有特征值都在 [0, 1] 范围内,如下面右侧面板所示。但是,对于转换后的家庭数量,此缩放比例会压缩窄范围 [0, 0.005] 内的所有异常值。

原文由 Simas Joneliunas 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

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

补充说明:如果在train_test_split之前使用scaler,会发生数据泄露。在 train_test_split 之后使用缩放器

原文由 perpetualstudent 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题