美文网首页
预处理与缩放(归一化/标准化/正则化)

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

作者: dreampai | 来源:发表于2019-01-14 16:17 被阅读0次
  • StandardScaler 确保每个特征的平均值为 0、方差为 1,使所有特征都位于同一量级。
  • MinMaxScaler 移动数据,使所有特征都刚好位于 0 和 1 之间。
  • Normalizer 它对每个数据点进行缩放,使得特征向量的欧式长度等于 1 。

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、将属性缩放到一个指定范围

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

  • 对于方差非常小的属性可以增强其稳定性。
  • 维持稀疏矩阵中为0的条目。

在构造类对象的时候也可以直接指定最大最小值的范围: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)

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/xjqjdqtx.html