Sklearn数据预处理:scale, StandardScaler, MinMaxScaler, Normalizer

一、标准化

去除均值和方差缩放:通过(X-X_mean)/std计算每个属性(每列),进而使所有数据聚集在0附近,方差为1.

(1)、sklearn.preprocessing.scale() 
直接将给定数据进行标准化

from sklearn import preprocessing
import numpy as np
X = np.array([[ 1., -1.,  2.],[ 2.,  0.,  0.],[ 0.,  1., -1.]])
X_scaled = preprocessing.scale(X)
array([[ 0.        , -1.22474487,  1.33630621],
       [ 1.22474487,  0.        , -0.26726124],
       [-1.22474487,  1.22474487, -1.06904497]])
X_scaled.mean(axis=0)
array([ 0.,  0.,  0.])
X_scaled.std(axis=0)
array([ 1.,  1.,  1.])

(2)、sklearn.preprocessing.StandardScaler() 
可保存训练集中的均值、方差参数,然后直接用于转换测试集数据。

scaler = preprocessing.StandardScaler().fit(X)
scaler.transform(X)  
array([[ 0.        , -1.22474487,  1.33630621],
       [ 1.22474487,  0.        , -0.26726124],
       [-1.22474487,  1.22474487, -1.06904497]])
scaler.mean_
array([ 1.        ,  0.        ,  0.33333333])
scaler.var_
array([ 0.66666667,  0.66666667,  1.55555556])

二、缩放到指定范围

将属性缩放到一个指定的最大和最小值(通常是1-0)之间,这样处理可对方差非常小的属性增强其稳定性,也可维持稀疏矩阵中为0的条目。 
preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True) 
计算公式: 
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0)) 
X_scaled = X_std * (max - min) + min 
其中 
feature_range : tuple (min, max), default=(0, 1)

minmaxscaler = preprocessing.MinMaxScaler().fit(X)
minmaxscaler.transform(X)
array([[ 0.5       ,  0.        ,  1.        ],
       [ 1.        ,  0.5       ,  0.33333333],
       [ 0.        ,  1.        ,  0.        ]])
minmaxscaler.scale_
array([ 0.5       ,  0.5       ,  0.33333333])
 minmaxscaler.min_ 
 array([ 0.        ,  0.5       ,  0.33333333])

也可直接应用fit_transform(X)实现fit和transform功能。

三、正则化

对每个样本计算其p-范数,再对每个元素除以该范数,这使得每个处理后样本的p-范数(l1-norm,l2-norm)等于1。如果后续要使用二次型等方法计算两个样本之间的相似性会有用。 
preprocessing.Normalizer(norm=’l2’, copy=True)

normalizer = preprocessing.Normalizer().fit(X)
normalizer.transform(X)
array([[ 0.40824829, -0.40824829,  0.81649658],
       [ 1.        ,  0.        ,  0.        ],
       [ 0.        ,  0.70710678, -0.70710678]])

几个概念

1-范数:向量各分量绝对值之和 
2-范数:向量长度 
最大范数:向量各分量绝对值的最大值 
p-范数的计算公式:||X||p=(|x1|^p+|x2|^p+…+|xn|^p)^1/p

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值