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))