1. 程式人生 > >機器學習中常見的幾種歸一化方法以及原因

機器學習中常見的幾種歸一化方法以及原因

在機器學習中,資料歸一化是非常重要,它可能會導致模型壞掉或者訓練出一個很奇怪的模型,為了讓機器學習的模型更加適合實際情況,需要對資料進行歸一化處理。

1.機器學習中常用的歸一化方法:


2. 不同歸一化方法分析:

2.1 線性變換和極差法(線性歸一化)

將原始資料線性化的方法轉換到[0 1]的範圍,該方法實現對原始資料的等比例縮放。通過利用變數取值的最大值和最小值(或者最大值)將原始資料轉換為界於某一特定範圍的資料,從而消除量綱和數量級影響,改變變數在分析中的權重來解決不同度量的問題。由於極值化方法在對變數無量綱化過程中僅僅與該變數的最大值和最小值這兩個極端值有關,而與其他取值無關,這使得該方法在改變各變數權重時過分依賴兩個極端取值。

2.2 標準化方法

即每一變數值與其平均值之差除以該變數的標準差。雖然該方法在無量綱化過程中利用了所有的資料資訊,但是該方法在無量綱化後不僅使得轉換後的各變數均值相同,且標準差也相同,即無量綱化的同時還消除了各變數在變異程度上的差異,從而轉換後的各變數在聚類分析中的重要性程度是同等看待的。而實際分析中,經常根據各變數在不同單位間取值的差異程度大小來決定其在分析中的重要性程度,差異程度大的其分析權重也相對較大。

2.3 分析

每個維度都是去量綱化的,避免了不同量綱的選取對距離計算產生的巨大影響。在分類、聚類演算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維的時候,第二種方法(Z-score standardization)表現更好。在不涉及距離度量、協方差計算、資料不符合正太分佈的時候,可以使用第一種方法或其他歸一化方法。比如影象處理中,將RGB影象轉換為灰度影象後將其值限定在[0 255]的範圍。

2.4 機器學習中哪些演算法可以不做歸一化

概率模型不需要歸一化,因為它們不關心變數的值,而是關心變數的分佈和變數之間的條件概率。像svm、線性迴歸之類的最優化問題就需要歸一化。決策樹屬於前者。歸一化也是提升演算法應用能力的必備能力之一。

3. 歸一化對梯度下降的影響

歸一化後加快了梯度下降求最優解的速度和有可能提高精度。如下圖所示,藍色的圈圈圖代表的是兩個特徵的等高線。其中左圖兩個特徵X1和X2的區間相差非常大,X1區間是[0,2000],X2區間是[1,5],其所形成的等高線非常尖。當使用梯度下降法尋求最優解時,很有可能走“之字型”路線(垂直等高線走),從而導致需要迭代很多次才能收斂;而右圖對兩個原始特徵進行了歸一化,其對應的等高線顯得很圓,在梯度下降進行求解時能較快的收斂。因此如果機器學習模型使用梯度下降法求最優解時,歸一化往往非常有必要,否則很難收斂甚至不能收斂。


參考:

1. http://blog.csdn.net/zbc1090549839/article/details/44103801

2. http://www.gooseeker.com/cn/node/Fuller/2010122001

3. http://blog.csdn.net/sinat_29508201/article/details/53056843