预处理与缩放(归一化/标准化/正则化)

2019-01-14  本文已影响0人  dreampai

1、归一化(StandardScaler )

公式为: (X-mean)/std 计算时对每个属性/每列分别进行。

将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。

from sklearn.preprocessing import StandardScaler
import numpy as np

X = np.array([[ 1., -1.,  2.],
               [ 2.,  0.,  0.],
               [ 0.,  1., -1.]])

scaler=StandardScaler()
scaler.fit(X)
print(scaler.mean_)
print(scaler.var_)
print(scaler.transform(X))

2、将属性缩放到一个指定范围

使用这种方法的目的包括:

在构造类对象的时候也可以直接指定最大最小值的范围:feature_range=(min, max),此时应用的公式变为:

X_std=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
X_scaled=X_std/(max-min)+min

from sklearn.preprocessing import MinMaxScaler
import numpy as np

X = np.array([[ 1., -1.,  2.],
               [ 2.,  0.,  0.],
               [ 0.,  1., -1.]])

scaler=MinMaxScaler()
X_train_minmax=scaler.fit_transform(X)
print(X_train_minmax)

3、正则化

from sklearn.preprocessing import Normalizer
import numpy as np

X = np.array([[ 1., -1.,  2.],
               [ 2.,  0.,  0.],
               [ 0.,  1., -1.]])

scaler=Normalizer(norm='l2')
X=scaler.fit_transform(X)
print(X)
上一篇下一篇

猜你喜欢

热点阅读