Python:sklearn中StandardScaler和scale的区别

StandardScaler和scale均为Z-score标准化,即减去均值µ除以标准差σ

而在进行数据标准化的时候,通常有两种方式:

1)将训练集和测试集统一进行标准化处理,此时均值和方差为整个数据的均值和方差

2)得到训练集的均值和标准差,用测试集的数据减去训练集的均值除以训练集的标准差。

在结果上来看,两种方法区别不大,不过第二种更偏向与实际应用场合。

StandardScaler可以预先生成规则,即生成训练集的均值与标准差,然后利用训练集的均值和标准差去分别标准化训练集和测试集!

有点像概率论里的,用训练集均值代替期望的感觉!

from sklearn.preprocessing import StandardScaler 
zscore=StandardScaler().fit(raw_train_data)  # 按原始训练集生成规则,即训练的均值和标准差
train_data=zscore.transform(raw_train_data)  # 讲规则应用到训练集
test_data=zscore.transform(raw_test_data)  # 将规则应用到测试集

相关推荐