sklearn.preprocessing的部分用法

来源:互联网 发布:淘宝网刷流量 编辑:程序博客网 时间:2024/05/02 00:19

类:sklearn.preprocessing.StandardScaler(copy=Truewith_mean=Truewith_std=True)

通过减去均值并缩放到单位变量来标准化特征。


公式:(x-mean)/std,mean为均值,std为方差,计算时对每个属性/每列分别进行。结果是对于每个属性/每列的数据服从均值为0,方差为1的分布。

实现方式有两种:

(1)使用sklearn.preprocessing.StandardScaler()类,使用该类可以保存训练数据集的参数(scale_,mean_,var_),然后直接使用其对象转换测试数据集

>>>import numpy as np

>>>import sklearn.preprocessing as preprocessing

>>>scaler=preprocessing.StandardScaler()

>>>iiii=np.array([[1.,-1.,2.],[2.,0.,0.],[0,1,-1]])

>>>jjjj=scaler.fit(iiii)

>>>jjjj

StandardScaler(copy=True, with_mean=True, with_std=True)

>>>jjjj.mean_

array([1. , 0. , 0.33333333])

>>>jjjj.scale_

array([0.81649658, 0.81649658, 1.24721913])

>>>jjjj.var_

array([0.6666667, 0.66666667, 1.55555556])


(2)使用sklearn.preprocessing.scale()函数,可以直接给定数据进行标准化。

>>>from sklearn import preprocessing

>>>import numpy as np

>>>x=np.array([[1., -1., 2.],[2., 0., 0.],[0., 1., -1.]])

>>>x_scaled=preprocessing.scale(x)

>>>x_scaled

array([[0., -1.22..., 1.33...],

           [1.22..., 0., -0.26...],

           [-1.22..., 1.22..., -1.06...]])

#处理后,数据的均值和方差分别为0和1

>>>x_scaled.mean(axis=0)

array([0., 0., 0.])

>>>x_scaled.std(axis=0)

array([1., 1., 1.])




 
原创粉丝点击