Scikit-learn:preprocessing.scale() 与 preprocessing.StandardScalar()

问题描述 投票:0回答:3

我理解缩放意味着将平均值居中(平均值= 0)并制作单位方差(方差= 1)。

但是,scikit-learn 中的

preprocessing.scale(x)
preprocessing.StandardScalar()
有什么区别?

python scikit-learn scale
3个回答
34
投票

那些做的完全一样,但是:

  • preprocessing.scale(x)
    只是一个函数,它转换一些数据
  • preprocessing.StandardScaler()
    是支持Transformer API
  • 的类

我总是会使用后者,即使我不需要

inverse_transform
和co。
StandardScaler()
支持。

摘自文档

函数scale提供了一种快速、简单的方法来在单个类似数组的数据集上执行此操作

预处理模块还提供了一个实用类StandardScaler,它实现了Transformer API来计算训练集上的平均值和标准差,以便以后能够在测试集上重新应用相同的转换。因此,此类适合在 sklearn.pipeline.Pipeline

的早期步骤中使用

0
投票

scale(x)
是一个更简单的函数,用于基本缩放,无需转换器功能。

StandardScaler()
是一个更通用的类,允许您拟合、变换以及可能反转缩放过程。


-1
投票

我的理解是scale会在数据的最小-最大范围内转换数据,而standardscaler会在[-1, 1]范围内转换数据。

© www.soinside.com 2019 - 2024. All rights reserved.