sklearnpreprocessing中scale和standardscaler的区别是什么

前言: 想要给一组特征集进行标准化处理的时候,发现以下两者都可以。

import sklearn.preprocessing
preprocessing.scale(X)  # X是特征集合
from sklearn.processing import StandardScaler
StandardScaler().fit_transform(X)

看了某篇文章知道:
两者都是标准化特征处理的方法,都是使特征集合每一个元素=(自己-该列的均值)/该列的标准差
也就是下面手算的代码:

X_mean = np.mean(X,axis= 0)
X_std = np.std(X,axis= 0)
result = (X-X_mean)/X_std

但是: 在进行数据标准化时,我们通常有两种方法

  • 将测试集和训练集的特征集放在一起,用整体的均值和标准差来进行标准化处理
  • 先算训练集的均值和标准差,然后用它们来分别对训练集和测试集进行标准化处理

在实际应用场景中,第二种情况比较常见,所以要先得到训练集的均值和标准差
故,可以先通过:

Scaler = StandardScaler().fit(X_train) 

得到训练集的均值和标准差
再通过:

Scaler.transform(X_train)
Scaler.transform(X_test)

来分别对训练集和测试集进行标准化处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值