数据预处理
from sklearn.preprocessing import scale
import numpy as np
x = np.array([[1., -1., 2.],
[2., 0., 0.],
[0., 1., -1.]])
# 将每一列特征标准化为标准正太分布,注意,标准化是针对每一列而言的
x_scale = scale(x)
x_scale.mean(axis=0)
x_scale.mean(axis=1)
x_scale.std(axis=0)
preprocessing这个模块还提供了一个实用类StandarScaler,它可以在训练数据集上做了标准转换操作之后,把相同的转换应用到测试训练集中。
from sklearn.preprocessing import StandardScaler
# 调用fit方法,根据已有的训练数据创建一个标准化的转换器
scaler = StandardScaler().fit(x)
# 使用上面这个转换器去转换训练数据x,调用transform方法
scaler.transform(x)
# 规模化特征到一定的范围内
from sklearn.preprocessing import MinMaxScaler
min_max_scaler = MinMaxScaler()
x_minmax = min_max_scaler.fit_transform(x)
# MaxAbsScaler
原理与上面的很像,只是数据会被规模化到[-1,1]之间。 也就是特征中,所有数据都会除以最大值。这个方法对那些已经中心化均值为0或者稀疏的数据有意义。
from sklearn.preprocessing import MaxAbsScaler
max_abs_scaler = MaxAbsScaler()
x_train_maxsbs = max_abs_scaler.fit_transform(x)
# 正则化Normalization
正则化是将样本在向量空间模型上的一个转换,经常被使用在分类与聚类中。函数normalize
提供了一个快速简单的方式在一个单向量上来实现正则化的功能
from sklearn.preprocessing import normalize
x_normalized = normalize(x, norm='l2')
from sklearn.preprocessing import Normalizer
# 根据训练数据创建一个正则器
normalizer = Normalizer().fit(x)
# 对训练数据进行正则
normalizer.transform(x)
# 二值化–特征的二值化
from sklearn.preprocessing import Binarizer
binarizer = Binarizer().fit(x)
binarizer.transform(x)
网友评论