為什麼要資料歸一化和歸一化方法

2021-08-08 14:47:21 字數 2063 閱讀 3160

**:

在餵給機器學習模型的資料中,對資料要進行歸一化的處理。

為什麼要進行歸一化處理,下面從尋找最優解這個角度給出自己的看法。

假定為**房價的例子,自變數為面積,房間數兩個,因變數為房價。

那麼可以得到的公式為:

其中代表房間數,代表變數前面的係數。

其中代表面積,代表變數前面的係數。

首先我們祭出兩張圖代表資料是否均一化的最優解尋解過程。

未歸一化:

歸一化之後

為什麼會出現上述兩個圖,並且它們分別代表什麼意思。

我們在尋找最優解的過程也就是在使得損失函式值最小的theta1,theta2。

上述兩幅圖**的是損失函式的等高線。

我們很容易看出,當資料沒有歸一化的時候,面積數的範圍可以從0~1000,房間數的範圍一般為0~10,可以看出面積數的取值範圍遠大於房間數。

這樣造成的影響就是在畫損失函式的時候,

資料沒有歸一化的表示式,可以為:

造成影象的等高線為類似橢圓形狀,最優解的尋優過程就是像下圖所示:

而資料歸一化之後,損失函式的表示式可以表示為:

其中變數的前面係數幾乎一樣,則影象的等高線為類似圓形形狀,最優解的尋優過程像下圖所示:

從上可以看出,資料歸一化後,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。

這也是資料為什麼要歸一化的乙個原因。

作用:對於不同的特徵向量,比如年齡、購買量、購買額,在數值的量綱上相差十倍或者百千倍。如果不歸一化處理,就不容易進行比較、求距離,模型引數和正確度精確度就會受影響,甚至得不出正確的結果。

舉個例子:用梯度下降法求解最優解時,下圖展示沒有歸一化和歸一化處理兩種情況下的求解過程。

左圖表示沒有歸一化的求解過程;右圖表示有歸一化的處理過程。

x1、x2表示特徵向量,數值區間分別為[0,2000],[1,5].

圖中藍線為等高線,紅色為梯度下降求解線,中心紅點為最優解。

左圖的z字形為未歸一化處理的梯度下降求解過程。

右圖的1字形為歸一化處理後的梯度下降求解過程。

對比可知,歸一化處理後,等高線更圓,求解得到的梯度方向更能直指圓心,收斂速度更快,效率更高。

如果不歸一化,不但收斂速度慢,很可能找不到最優解。

歸一化除了能夠提高求解速度,還可能提高計算精度。

比如:計算樣本距離時,如果特徵向量取值範圍相差很大,如果不進行歸一化處理,則值範圍更大的特徵向量對距離的影響更大,實際情況是,取值範圍更小的特徵向量對距離影響更大,這樣的話,精度就會收到影響。

歸一化常用方法

1、線性歸一化函式(min-max scaling)

x』 = (x-min(x))/(max(x)-min(x))

把原始資料取值轉換到[0,1]之間。

實際使用時,不同樣本集得到的max/min可能不同,造成歸一化結果不穩定,從而使模型後續使用也不穩定。

可以經驗值來代替max/min,比如人的年齡,max=100,min=0。避免不同樣本集max/min的不同造成的模型偏差。

2、0均值標準化(z-score standardization)

x』 = (x-u)/theta.

u為樣本均值,theta為樣本方差。

轉換後的數值服從均值為0,方差為1的高斯正態分佈。

應用場景:原始資料(近似)高斯分布。否則歸一化後的效果會很差。

3、非線性歸一化(nonlinear scaling)

包括對數log,指數e,正切等。

應用場景:資料分化比較大,有些很大,有些很小,可能用此方法將數值對映到乙個比較小的範圍進行處理。log(v,2),log(v,10).

小結:

1、對於需要求距離的分類、聚類、相似度、協方差等,資料符合或者近似符合高斯正態分佈時,pca降維時,常用0均值標準化,可以得到較好的效果。

2、對於其他情況,如果資料分化不是很大,可以用線性歸一化處理。

3、如果資料分化很大,可以用非線性歸一化處理。

參考文章

1、2、

為什麼要資料歸一化和歸一化方法

轉 2017年09月22日 08 59 58 wuxiaosi808 標籤 機器學習 更多 個人分類 機器學習 在餵給機器學習模型的資料中,對資料要進行歸一化的處理。為什麼要進行歸一化處理,下面從尋找最優解這個角度給出自己的看法。假定為 房價的例子,自變數為面積,房間數兩個,因變數為房價。那麼可以得...

歸一化強度代表什麼 為什麼對資料進行歸一化處理

在機器學習中,經常需要對資料進行歸一化處理。那麼,為什麼需要進行歸一化處理呢,本文從尋找最優解這個角度解析。例子假定為 房價的例子,自變數為面積,房間數兩個,因變數為房價。那麼可以得到的公式為 其中代表房間數,代表變數 前面的係數。其中代表面積,代表變數 前面的係數。首先,我們用兩張圖代表資料是否均...

神經網路為什麼要歸一化

神經網路為什麼要歸一化 1.數值問題。無容置疑,歸一化的確可以避免一些不必要的數值問題。輸入變數的數量級未致於會引起數值問題吧,但其實要引起也並不是那麼困難。因為tansig的非線性區間大約在 1.7,1.7 意味著要使神經元有效,tansig w1 x1 w2 x2 b 裡的 w1 x1 w2 x...