python中数据标准化

公式为:(X-mean)/std  计算时对每个属性/每列分别进行。将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是 对于每个属行/每列来说所有数据都聚集在0附近,方差为1。

实现时,有两种不同的方式:

1、sklearn.preprocessing.scale()函数,可以直接将给定数据进行标准化。

from sklearn import preprocessing

import numpy as np

a= np.array([[ 1., -1.,  2.],

               [ 2.,  0.,  0.],

               [ 0.,  1., -1.]])

a_scaled = preprocessing.scale(a)

a_scaled.mean(axis=0)

a_scaled.std(axis=0)

 python中数据标准化

2、使用sklearn.preprocessing.StandardScaler类,使用该类的好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据。

from sklearn import preprocessing

import numpy as np

a= np.array([[ 1., -1.,  2.],

               [ 2.,  0.,  0.],

               [ 0.,  1., -1.]])

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

Scaler

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

scaler.mean_

scaler.std_

scaler.transform(a)

scaler = preprocessing.StandardScaler().fit_transform(a)

 python中数据标准化