python 数据标准化

2023-12-13 8:59:49 网络知识 匿名

标准化:在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高纬度的,资料标准化后会使得每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均),标准差变为1,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机,逻辑回归和类神经网络)。

StandardScaler计算训练集的平均值和标准差,以便测试数据及使用相同的变换。

变换后各维特征有0均值,单位方差,也叫z-score规范化(零均值规范化),计算方式是将特征值减去均值,除以标准差。

fit

用于计算训练数据的均值和方差,后面就会用均值和方差来转换训练数据

fit_transform

不仅计算训练数据的均值和方差,还会基于计算出来的均值和方差来转换训练数据,从而把数据转化成标准的正态分布。

transform

很显然,它只是进行转换,只是把训练数据转换成标准的正态分布。(一般会把train和test集放在一起做标准化,或者在train集上做标准化后,用同样的标准化器去标准化test集,此时可以使用scaler)。

data=[[0,0],[0,0],[1,1],[1,1]]

#1.基于mean和std的标准化

scaler=preprocessing.StandardScaler().fit(train_data)

scaler.transform(train_data)

scaler.transform(test_data)

一般来说先使用fit:

1scaler=preocessing.StandardScaler().fit(X)

这一步可以计算得到scaler,scaler里面存的有计算出来的均值和方差。

再使用transform

1scaler.transform(X)

这一步再用scaler中的均值和方差来转换X,使X标准化。

最后,在预测的时候,也要对数据做同样的标准化处理,即也要用上面的scaler中的均值和方差来对预测时候的特征进行标准化。

注意:测试数据和预测数据的标准化的方式要和训练数据标准化的方式一样,必须使用同一个scaler来进行transform

以上内容为大家介绍了python数据标准化,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:瀚银百科。

发表评论: