scikit-learn Preprocessing学习笔记(三)

Preprocessing是Python scikit learn第六个模块,主要介绍了如何对于数据集的预处理。

以下内容包含了一些个人观点和理解,如有疏漏或错误,欢迎补充和指出。

这篇主要是自主学习Preprocessing的Python代码,并做相应的记录。微笑

按照教程的书写习惯,数据矩阵,每一行代表一个样本,列代表随机变量。

标准化preprocessing.scale方法,直接实现0均值,1标准差。

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)
print(X_scaled)
############
[[ 0.         -1.22474487  1.33630621]
 [ 1.22474487  0.         -0.26726124]
 [-1.22474487  1.22474487 -1.06904497]]
可以查看X_scaled的均值和标准差,axis=0表示第一个坐标轴

print(X_scaled.mean(axis = 0))
print(X_scaled.std(axis = 0))
#######################
[ 0.  0.  0.]
[ 1.  1.  1.]
preprocessing.StandardScaler类可以用来计算数据矩阵的均值和标准差,而且这个类用起来更方便
<pre name="code" class="python">from sklearn import preprocessing
import numpy as np
X = np.array([[1., -1., 2.], [2., 0., 0.], [0., 1., -1.]])
scaler = preprocessing.StandardScaler().fit(X)
print(scaler.mean_)
print(scaler.std_)
print(scaler.transform(X))
###################
[ 1.          0.          0.33333333]
[ 0.81649658  0.81649658  1.24721913]
[[ 0.         -1.22474487  1.33630621]
 [ 1.22474487  0.         -0.26726124]
 [-1.22474487  1.22474487 -1.06904497]]

scaler接下来可以用来对test数据集进行同样的标准化。

 
print(scaler.transform(np.array([[-1., 1., 0.]])))
######################
[[-2.44948974  1.22474487 -0.26726124]]
可以设定with_mean=False,with_std=False在StandardScaler的构造函数里得到不对均值或者标准差处理的版本。

scaler = preprocessing.StandardScaler(with_mean = True, with_std = False).fit(X)
print(scaler.mean_)
print(scaler.std_)
print(scaler.transform(X))
scalernew = preprocessing.StandardScaler(with_mean = False, with_std = True).fit(X)
print(scalernew.mean_)
print(scalernew.std_)
print(scalernew.transform(X))
##############################
[ 1.          0.          0.33333333]
None
[[ 0.         -1.          1.66666667]
 [ 1.          0.         -0.33333333]
 [-1.          1.         -1.33333333]]
None
[ 0.81649658  0.81649658  1.24721913]
[[ 1.22474487 -1.22474487  1.60356745]
 [ 2.44948974  0.          0.        ]
 [ 0.          1.22474487 -0.80178373]]

值得注意的是,如果设置了,with_mean=False,或with_std=False,scaler.mean_ = None scalernew.std_ = None

preprocessing.MinMaxScaler类可以把数据集映射到一个区间上

min_max_scaler = preprocessing.MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(X_train)
print(X_train_minmax)
#############
[[ 0.5         0.          1.        ]
 [ 1.          0.5         0.33333333]
 [ 0.          1.          0.        ]]







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值