利用sklearn對數據預處理:標准化,歸一化,正則化


一、標准化Standardization(z-score方法):

利用公式:( x-mean(x) ) / std(x) 對具有S相同屬性的數據(即一列)做標准化處理,使數據服從零均值標准差的高斯分布。這種方法一般要求原數據的分布近似高斯分布。

涉及距離度量、協方差計算時可以應用這種方法。將有量綱數據化為無量綱數據,使數據能在同一數量級上進行比較。

 

from sklearn import preprocessing
import pandas as pd
import numpy as np
mean=[4,3]
cov=[[2.0,5.],[1.,1.]]
x=np.random.multivariate_normal(mean,cov,7)
data=pd.DataFrame(x)

scaler = preprocessing.StandardScaler().fit(data.T) #對行做標准化處理
data_T_scale = scaler.transform(data.T)
data_scale = data_T_scale.transpose()

 

二、歸一化Normalization(min-max scaling)

利用公式 :( x-min ) / ( max-min ) 將原數據等比例縮放到[0,1]范圍內。

涉及距離度量、協方差計算時不能應用這種方法,因為這種線性等比例縮放無法消除量綱對方差、協方差的影響。

 

min_max_scaler = preprocessing.MinMaxScaler()
data_T_minmax = min_max_scaler.fit_transform(data.T)
data_minmax = data_T_minmax.T

 

三、正則化

利用公式:x / || x ||p , 其中|| x ||p= ( x1p+...+xnp )1/p.

處理結果是使同屬性的樣本的p范數為1.

normalizer = preprocessing.Normalizer(copy=True, norm='l2').fit(data.T)
data_T_normalize=normalizer.transform(data.T) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM