sklearn.preprocessing.scale

sklearn.preprcoessing包下有很多数据预处理的方法,preprocessing模块中的scale函数,可以用于数组的标准化

标准化是怎么进行的呢?

根据官方的说明文档,沿任意轴(默认是列)标准化数据集,以均值为中心,按分量比例缩放至单位方差。

简单来说呢,就是把数组的每一列单独拿出来,对于任意一列,分别求其均值(X_mean)和方差(X_std ),让这一列的每个数(X)减去X_mean后除以X_std,再放回原来的位置就可以啦。

公式是 X_new = (X - X_mean) / X_std 

经过处理之后的数组,它每一列的均值为0,方差为1。

sklearn.preprocessing.scale的使用方法:

sklearn.preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True)

可以看到,scale函数中有X、axis、with_mean、with_std、copy五个参数,其中后四个都是有默认值的。通常我们只需要输入X就可以了。

几个参数:

X,表示需要进行标准化操作的数组或者矩阵。

axis,int类型,可以取值0或1,表示处理哪个维度上的数据,默认为0。0表示单独的标准化每个特征(列),1表示标准化每个观测样本(行)。

with_mean,布尔类型,默认为True,表示处理后的数据均值为0。

with_std,布尔类型,默认为True,表示处理后的数据方差为1。

copy,布尔类型,默认为True,当设置其为 False 时,执行就地行的标准化,避免复制(如果输入已经是 numpy 数组或 scipy.sparse CSC 矩阵并且axis为 1)。

代码:

from sklearn import preprocessing
import numpy as np
#待处理的数组
x_train = np.array([[ 1.0,-1.0,2.0],[ 2.0,0.0,2.0],[ 0.0,1.0 ,-1.0]])
#标准化,返回值赋值给x_scaled
x_scaled = preprocessing.scale(x_train)

x_scaled数组:

sklearn.preprocessing.scale_第1张图片

 我们也可以验证一下x_scaled的均值和方差:

sklearn.preprocessing.scale_第2张图片

It's all over!

你可能感兴趣的:(sklearn,sklearn,python,机器学习)