Sklearn之数据预处理——StandardScaler
StandardScaler原理作用:去均值和方差归一化。且是针对每一个特征维度来做的,而不是针对样本。标准差标准化(standardScale)使得经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:其中μ为所有样本数据的均值,σ为所有样本数据的标准差。使用sklearn提供的StandardScaler方法from sklearn.preprocessing import S
StandardScaler原理
作用:去均值和方差归一化。且是针对每一个特征维度来做的,而不是针对样本。
标准差标准化(standardScale)使得经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:
其中μ为所有样本数据的均值,σ为所有样本数据的标准差。
使用sklearn提供的StandardScaler方法
from sklearn.preprocessing import StandardScaler # 标准化工具
import numpy as np
x_np = np.array([[1.5, -1., 2.],
[2., 0., 0.]])
scaler = StandardScaler()
x_train = scaler.fit_transform(x_np)
print('矩阵初值为:{}'.format(x_np))
print('该矩阵的均值为:{}\n 该矩阵的标准差为:{}'.format(scaler.mean_,np.sqrt(scaler.var_)))
print('标准差标准化的矩阵为:{}'.format(x_train))
矩阵初值为:[[ 1.5 -1. 2. ]
[ 2. 0. 0. ]]
该矩阵的均值为: [ 1.75 -0.5 1. ]
该矩阵的标准差为:[0.25 0.5 1. ]
标准差标准化的矩阵为:[[-1. -1. 1.]
[ 1. 1. -1.]]
有关StandardScaler的transform和fit_transform方法
StandardScaler类是一个用来讲数据进行归一化和标准化的类。
所谓归一化和标准化,即应用下列公式:
使得新的X数据集方差为1,均值为0
问题一:
StandardScaler类中transform和fit_transform方法有什么区别?
答:fit_transform方法是fit和transform的结合,fit_transform(X_train) 意思是找出X_train的和,并应用在X_train上。
这时对于X_test,我们就可以直接使用transform方法。因为此时StandardScaler已经保存了X_train的
和。
问题二:
为什么可以用训练集的和 来transform 测试集的数据X_test?
答:“机器学习中有很多假设,这里假设了训练集的样本采样足够充分”。
参考资料:
Sklearn之数据预处理——StandardScaler_小白一直白-CSDN博客_standardscaler
有关StandardScaler的transform和fit_transform方法 - 简书 (jianshu.com)
更多推荐
所有评论(0)