【Scikit-learn Preprocessing 预处理】

均值:              

方差:s才是方差,s^2是标准差

概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度     

标准化

方法一:使用sklearn.preprocessing.scale()函数

方法说明:

  • X.mean(axis=0)用来计算数据X每个特征的均值;
  • X.std(axis=0)用来计算数据X每个特征的方差;
  • preprocessing.scale(X)直接标准化数据X。

from sklearn import preprocessing

import numpy as np

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

              [ 2.,  0.,  0.],

              [ 0.,  1., -1.]])

# calculate mean

print(X)

#求第一列的均值

X_mean = X.mean(axis=0)

print(X_mean)

# calculate variance

#求第一列的方差

X_std = X.std(axis=0)

print(X_std)

#标准化处理

# standardize X

X1 = (X-X_mean)/X_std

print(X1)

# use function preprocessing.scale to standardize X

X_scale = preprocessing.scale(X)

print(X_scale)

-----------------------------------------------执行结果-------------------------------

方法二:sklearn.preprocessing.StandardScaler类

from sklearn import preprocessing

import numpy as np

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

              [ 2.,  0.,  0.],

              [ 0.,  1., -1.]])

scaler = preprocessing.StandardScaler()

X_scaled = scaler.fit_transform(X)

X_scaled

----------------------------------执行结果------------------------------------

 

最大值小化

公式:X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0)) ; 

     X_scaler = X_std/ (max - min) + min

Maxmin分别是[1, 0 ]

from sklearn import preprocessing

import numpy as np

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

              [ 2.,  0.,  0.],

              [ 0.,  1., -1.],

              [ -3.,  -2., -1.]

             ])

min_max_scaler = preprocessing.MinMaxScaler()

X_minMax = min_max_scaler.fit_transform(X)

print(X_minMax)

----------------------------执行结果------------------------

使用这种标准化方法的原因是,有时数据集的标准差非常非常小,有时数据中有很多很多零(稀疏数据)需要保存住0元素

 

以同样的方式对test数据进行处理:

>>> X_test = np.array([[ -3., -1.,  4.]])

>>> X_test_minmax = min_max_scaler.transform(X_test)

>>> X_test_minmax

array([[-1.5       ,  0.        ,  1.66666667]])

 

然后他下面还有很多的属性:

min_max_scaler.data_min_:找出每一列中的最小值

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值