數據預處理(一):標准化,中心化,正態化


定義

標准化(Standardization):將數據按照比例進行縮放,不改變數據的原始分布,使得不同的變量經過標准化處理后可以有平等分析和比較的基礎。縮放后的數據均值為0,方差為1。但並不是標准正態分布。

 

 

 

歸一化(Normalization):中心化和標准化基本一樣,都是要把數據縮放到某個范圍里。歸一化通常有兩種做法:

min-max 歸一化的公式為:

[公式]

mean 歸一化(有的地方也叫中心化)的公式為:

[公式]

正態化:改變數據的原始分布,使其服從正態分布。通常采用的方法有取對數,開平方根,取倒數,開平方,取指數等等,使得不對稱分布的數據(偏態數據)呈現(或近似)正態分布。要這么做的原因在於:有些機器學習方法,比如線性回歸模型就默認數據是正態分布。

https://blog.csdn.net/lcmssd/article/details/80179102?utm_source=blogxgwz0

https://blog.csdn.net/weixin_36604953/article/details/102652160

 

關於到底是先標准化/歸一化還是先划分數據集(前者歸一化的時候同時考慮了測試集和訓練集,如均值就與測試集有關;后者划分過后均值只和訓練集有關),個人認為應該先划分數據集,對划分出來的訓練集標准化后,再用相同的標准化公式(其中均值方差來自於訓練集)對測試集進行標准化,保證測試集在維度上與訓練集保持一致。代碼如下:

from sklearn import preprocessing
scaler = preprocessing.StandardScaler().fit(X_train)#通過訓練集獲得歸一化公式
X_train_transformed = scaler.transform(X_train)#對訓練集進行歸一化
X_test_transformed = scaler.transform(X_test)#對測試集進行歸一化

 


免責聲明!

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



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