我理解缩放意味着将平均值居中(平均值= 0)并制作单位方差(方差= 1)。
但是,scikit-learn 中的
preprocessing.scale(x)
和 preprocessing.StandardScalar()
有什么区别?
那些做的完全一样,但是:
preprocessing.scale(x)
只是一个函数,它转换一些数据preprocessing.StandardScaler()
是支持Transformer API我总是会使用后者,即使我不需要
inverse_transform
和co。 StandardScaler()
支持。
摘自文档:
函数scale提供了一种快速、简单的方法来在单个类似数组的数据集上执行此操作
预处理模块还提供了一个实用类StandardScaler,它实现了Transformer API来计算训练集上的平均值和标准差,以便以后能够在测试集上重新应用相同的转换。因此,此类适合在 sklearn.pipeline.Pipeline
的早期步骤中使用
scale(x)
是一个更简单的函数,用于基本缩放,无需转换器功能。
StandardScaler()
是一个更通用的类,允许您拟合、变换以及可能反转缩放过程。
我的理解是scale会在数据的最小-最大范围内转换数据,而standardscaler会在[-1, 1]范围内转换数据。