sklearn preprocessing (預處理)


預處理的幾種方法:標准化、數據最大最小縮放處理、正則化、特征二值化和數據缺失值處理。

知識回顧:

p-范數:先算絕對值的p次方,再求和,再開p次方。

數據標准化:盡量將數據轉化為均值為0,方差為1的數據,形如標准正態分布(高斯分布)。

標准化(Standardization)

公式為:(X-X_mean)/X_std 計算時對每個屬性/每列分別進行。

將數據按其屬性(按列進行)減去其均值,然后除以其方差。最后得到的結果是,對每個屬性/每列來說所有數據都聚集在0附近,方差值為1。

sklearn中preprocessing庫里面的scale函數使用方法:

sklearn.preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True)

根據參數不同,可以沿任意軸標准化數據集。

參數:

  • X:數組或者矩陣
  • axis:int類型,初始值為0,axis用來計算均值和標准方差。如果是0,則單獨的標准化每個特征(列),如果是1,則標准化每個觀測樣本(行)。
  • with_mean:boolean類型,默認為True,表示將數據均值規范到0。
  • with_std:boolean類型,默認為True,表示將數據方差規范到1。

范例:假設現在構造一個數據集X,然后想要將其標准化。

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

方法說明:

  • X.mean(axis=0)用來計算數據X每個特征的均值;
  • X.std(axis=0)用來計算數據X每個特征的方差;
  • preprocessing.scale(X)直接標准化數據X。

方法二:sklearn.preprocessing.StandardScaler類

sklearn.preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True)

scaler = preprocessing.StandardScaler()
X_scaled = scaler.fit_transform(X)

 scaler = preprocessing.StandardScaler().fit(X)
X_scaled = scaler.transform(X)

 上面兩段代碼等價。

 

轉換器(Transformer)主要有三個方法:

fit():訓練算法,擬合數據

transform():標准化數據

fit_transform():先擬合數據,再標准化。

 


免責聲明!

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



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