数据预处理

1. 标准化: 去均值的中心化(均值变为0);方差的规模化(方差变为1)

注:标准化是针对每一列而言的,将每一列特征标准化为标准正态分布
参数:with_mean,with_std.这两个都是布尔型的参数,默认情况下都是true,但也可以自定义成false.即不要均值中心化或者不要方差规模化为1.

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,但是不保存
print(x_scale,x_scale.mean(axis=0),x_scale.std(axis=0))

scaler = preprocessing.StandardScaler().fit_transform(x) #标准化X,但是保存,可以按此均值,方差,训练测试集
scaler.transform(test_x)

2.归一化: MinMaxScaler 或者 MaxAbsScaler

使得特征的分布是在一个给定最小值和最大值的范围内的。一般情况下是在[0,1]之间(MinMaxScaler),或者是特征中绝对值最大的那个数为1,其他数以此维标准分布在[[-1,1]之间(MaxAbsScaler)

min_max_scaler = preprocessing.MinMaxScaler()
x_minmax = min_max_scaler.fit_transform(x)
x_minmax
max_abs_scaler = preprocessing.MaxAbsScaler()
x_train_maxsbs = max_abs_scaler.fit_transform(x)
x_train_maxsbs

3. 归一化有异常的数据

RobustScaler: 和标准化一样,区别在于,它会根据中位数或者四分位数去中心化数据。

4. 正则化

正则化是将样本在向量空间模型上的一个转换,经常被使用在分类与聚类中。

from sklearn import preprocessing
import numpy as np
x = np.array([[1., -1., 2.],
              [2., 3., 1],
              [0., 1., -1.]])
normalizer = preprocessing.Normalizer().fit(x)
normalizer.transform(x)

特征的二值化是指将数值型的特征数据转换成布尔类型的值。可以使用实用类Binarizer。
默认是根据0来二值化,大于0的都标记为1,小于等于0的都标记为0。当然也可以自己设置这个阀值,只需传出参数threshold即可。

binarizer = preprocessing.Binarizer(threshold=1.5).fit(x)
binarizer.transform(x)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值