我理解缩放(scaling)是指将平均值居中(mean=0),使方差为单位方差(variance=1)。
但是,在scikit-learn中,preprocessing.scale(x)和preprocessing.StandardScaler()有什么区别呢?
但是,在scikit-learn中,preprocessing.scale(x)和preprocessing.StandardScaler()有什么区别呢?
这两个方法的作用是相同的,但:
preprocessing.scale(x)
是一个函数,用于转换数据preprocessing.StandardScaler()
是支持Transformer API的类即使我不需要使用StandardScaler()
提供的inverse_transform
等功能,我仍然会选择使用后者。
摘自文档:
函数
scale
为单个类似数组的数据集提供了一个快速简便的操作方式。预处理模块还提供了一个实用程序类
StandardScaler
,该类实现了Transformer API,以计算训练集上的均值和标准差,以便稍后在测试集上重新应用相同的转换。 因此,此类适用于sklearn.pipeline.Pipeline的早期步骤
我的理解是,scale会将数据转换为数据的最小-最大范围,而standardscaler会将数据转换为[-1,1]范围内的数据。