(1)最大最小值歸一化(min-max normalization):將數值範圍縮放到 [0, 1] 區間裏html
(2)均值歸一化(mean normalization):將數值範圍縮放到 [-1, 1] 區間裏,且數據的均值變爲0算法
(3)標準化 / z值歸一化(standardization / z-score normalization):將數值縮放到0附近,且數據的分佈變爲均值爲0,標準差爲1的標準正態分佈(先減去均值來對特徵進行 中心化 mean centering 處理,再除以標準差進行縮放)網絡
(4)最大絕對值歸一化(max abs normalization ):也就是將數值變爲單位長度(scaling to unit length),將數值範圍縮放到 [-1, 1] 區間裏dom
(5)穩鍵標準化(robust standardization):先減去中位數,再除以四分位間距(interquartile range),由於不涉及極值,所以在數據裏有異常值的狀況下表現比較穩健機器學習
* 有一些時候,只對數據進行中心化和縮放是不夠的,還需對數據進行白化(whitening)處理來消除特徵間的線性相關性。學習
歸一化(normalization):歸一化是將樣本的特徵值轉換到同一量綱下,把數據映射到[0,1]或者[-1, 1]區間內。優化
標準化(standardization):標準化是將樣本的特徵值轉換爲標準值(z值),每一個樣本點都對標準化產生影響。spa
1. 統一特徵的權重&提高模型準確性rest
若是某個特徵的取值範圍比其餘特徵大不少,那麼數值計算(好比說計算歐式距離)就受該特徵的主要支配。但實際上並不必定是這個特徵最重要,一般須要把每一個特徵當作同等重要。歸一化/標準化數據可使不一樣維度的特徵放在一塊兒進行比較,能夠大大提升模型的準確性。orm
2. 提高梯度降低法的收斂速度
在使用梯度降低法求解最優化問題時, 歸一化/標準化數據後能夠加快梯度降低的求解速度。
在須要使用距離來度量類似性的算法中,或者使用PCA技術進行降維的時候,一般使用標準化(standardization)或均值歸一化(mean normalization)比較好,但若是數據分佈不是正態分佈或者標準差很是小,以及須要把數據固定在 [0, 1] 範圍內,那麼使用最大最小值歸一化(min-max normalization)比較好(min-max 經常使用於歸一化圖像的灰度值)。可是min-max比較容易受異常值的影響,若是數據集包含較多的異常值,能夠考慮使用穩鍵歸一化(robust normalization)。對於已經中心化的數據或稀疏數據的縮放,比較推薦使用最大絕對值歸一化(max abs normalization ),由於它會保住數據中的0元素,不會破壞數據的稀疏性(sparsity)。
經過梯度降低法求解的模型須要進行特徵縮放,這包括線性迴歸(Linear Regression)、邏輯迴歸(Logistic Regression)、感知機(Perceptron)、支持向量機(SVM)、神經網絡(Neural Network)等模型。此外,近鄰法(KNN),K均值聚類(K-Means)等須要根據數據間的距離來劃分數據的算法也須要進行特徵縮放。主成分分析(PCA),線性判別分析(LDA)等須要計算特徵的方差的算法也會受到特徵縮放的影響。
決策樹(Decision Tree),隨機森林(Random Forest)等基於樹的模型不須要進行特徵縮放,由於特徵縮放不會改變樣本在特徵上的信息增益。
參考:http://sklearn.lzjqsdd.com/modules/preprocessing.html
https://sebastianraschka.com/Articles/2014_about_feature_scaling.html
https://scikit-learn.org/stable/modules/preprocessing.html#preprocessing-scaler