数据预处理_数据标准化

minmax标准化离差

公式:按列看,(x-min)/(max-min)

X_train = np.array([[1,-1,2],
                   [2,0,0],
                   [0,1,-1]])
min_max_scaler = preprocessing.MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(X_train)
print(X_train_minmax)


#缩放因子等属性
print(min_max_scaler.scale_)
print(min_max_scaler.min_)

在构造对象时也可以直接指定最大最小值的范围:feature_range=(min,max),此时公式变为:
X_std=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
X_std=X_std/(max-min)+min

 

绝对值最大化标准化:将每个属性除以该属性的绝对值中最大值

from sklearn.preprocessing import MaxAbsScaler
def test_MaxAbsScaler():
    X=[[1,5,1,2,10],
      [2,6,3,2,7],
      [3,7,5,6,4],
      [4,8,7,8,1]]
    print('before transform:',X)
    scaler=MaxAbsScaler()
    scaler.fit(X)
    print('scale_ is :',scaler.scale_)#每个属性的缩放倍数的倒数,也是每个所熟悉的绝对值的最大值
    print('max_abs_ is:',scaler.max_abs_)#给出每个属性的绝对值的最大值
    print('after transform:',scaler.transform(X))
#标准化后,每个值的绝对值在【0,1】间
test_MaxAbsScaler()

运行结果:

before transform: [[1, 5, 1, 2, 10], [2, 6, 3, 2, 7], [3, 7, 5, 6, 4], [4, 8, 7, 8, 1]]
scale_ is : [ 4.  8.  7.  8. 10.]
max_abs_ is: [ 4.  8.  7.  8. 10.]
after transform: [[0.25       0.625      0.14285714 0.25       1.        ]
 [0.5        0.75       0.42857143 0.25       0.7       ]
 [0.75       0.875      0.71428571 0.75       0.4       ]
 [1.         1.         1.         1.         0.1       ]]

z_score标准化

1.采用preprocessing.StandardScaler(类
使用该类的好处在于可以保存训练集中的参数(均值,方差)直接使用其的对象转换成测试集数据

而且还能把数据还原mm.fit_transform(data)

from sklearn import preprocessing
import numpy as np
x=np.array([[1,-1,2],
           [2,0,0],
           [0,1,-1]])

#1.采用preprocessing.StandardScaler(类
#使用该类的好处在于可以保存训练集中的参数(均值,方差)直接使用其的对象转换成测试集数据
scaler=preprocessing.StandardScaler().fit(x)#将缩放后的数据在经过 StandardScaler复原
print(scaler.mean_ )
print(scaler.var_ )
print(scaler.transform(x))

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WJWFighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值