sklearn.preprocessing(数据预处理方法及选择)

预处理—sklearn.preprocessing

参考:
https://www.cnblogs.com/zhuyuanhao/p/5387839.html
http://sklearn.apachecn.org/cn/0.19.0/modules/preprocessing.html#preprocessing


##1.Standardization标准化
####Note:标准化是针对每一列而言的
概念:Standardization标准化是将特征数据的分布调整成标准正太分布,也叫高斯分布,也就是使得数据的均值维0,方差为1.

原因: 如果有些特征的方差过大,则会主导目标函数从而使参数估计器无法正确地去学习其他特征。

过程为两步:去均值的中心化(均值变为0);方差的规模化(方差变为1)。

####1.1 sklearn.preprocessing.scale()方法
在sklearn.preprocessing中提供了一个scale的方法,可以实现以上功能。

from sklearn import preprocessing
import numpy as np

# 创建一组特征数据,每一行表示一个样本,每一列表示一个特征
x = np.array([[1., -1., 2.],
              [2., 0., 0.],
              [0., 1., -1.]])

# 将每一列特征标准化为标准正太分布,注意,标准化是针对每一列而言的
x_scale = preprocessing.scale(x)

x_scale
# axis=1表示对每一行去做这个操作,axis=0表示对每一列做相同的这个操作
x_scale.mean(axis=0)
x_scale.std(axis=0)

1.2 sklearn.preprocessing.StandarScaler()类
preprocessing这个模块还提供了一个实用类StandarScaler,它可以在训练数据集上做了标准转换操作之后,把相同的转换应用到测试训练集中。
这是相当好的一个功能。可以对训练数据,测试数据应用相同的转换,以后有新的数据进来也可以直接调用,不用再重新把数据放在一起再计算一次了。

你可能感兴趣的:(机器学习_sklearn)