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

  • 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)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • https://blog.csdn.net/pipisorry/article/details/52247679 ...
    dopami阅读 1,792评论 0 1
  • 通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题: 不属于同一量纲:即特征的规格不一样,不能够放在...
    城市中迷途小书童阅读 579评论 0 1
  • 一.标准化的原因 通常情况下是为了消除量纲的影响。譬如一个百分制的变量与一个5分值的变量在一起怎么比较?只有通过数...
    readilen阅读 1,598评论 0 0
  • 行书 字体如行云流水,轻松自如,对抒发灵性,培养人的灵活性和应变能力很有帮助,适合于忧郁症、有强烈自卑感、手足麻痹...
    子木儒医阅读 223评论 0 0
  • 一颗心的颤抖 撕扯开一片夜空 泡在酒精里的玫瑰 已开始枯萎 泪水淹没了誓言 不知是否曾走进过你的内心 痴痴等待的十...
    良舍公社阅读 3,214评论 45 79

友情链接更多精彩内容