轉
2023年09月22日 08:59:58
wuxiaosi808
標籤:
機器學習
更多 個人分類:
機器學習
**:
在餵給機器學習模型的資料中,對資料要進行歸一化的處理。
為什麼要進行歸一化處理,下面從尋找最優解這個角度給出自己的看法。
假定為**房價的例子,自變數為面積,房間數兩個,因變數為房價。
那麼可以得到的公式為:
其中代表房間數,代表變數前面的係數。
其中代表面積,代表變數前面的係數。
首先我們祭出兩張圖代表資料是否均一化的最優解尋解過程。
未歸一化:
歸一化之後
為什麼會出現上述兩個圖,並且它們分別代表什麼意思。
我們在尋找最優解的過程也就是在使得損失函式值最小的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、
為什麼要資料歸一化和歸一化方法
在餵給機器學習模型的資料中,對資料要進行歸一化的處理。為什麼要進行歸一化處理,下面從尋找最優解這個角度給出自己的看法。假定為 房價的例子,自變數為面積,房間數兩個,因變數為房價。那麼可以得到的公式為 其中代表房間數,代表變數前面的係數。其中代表面積,代表變數前面的係數。首先我們祭出兩張圖代表資料是否...
歸一化強度代表什麼 為什麼對資料進行歸一化處理
在機器學習中,經常需要對資料進行歸一化處理。那麼,為什麼需要進行歸一化處理呢,本文從尋找最優解這個角度解析。例子假定為 房價的例子,自變數為面積,房間數兩個,因變數為房價。那麼可以得到的公式為 其中代表房間數,代表變數 前面的係數。其中代表面積,代表變數 前面的係數。首先,我們用兩張圖代表資料是否均...
神經網路為什麼要歸一化
神經網路為什麼要歸一化 1.數值問題。無容置疑,歸一化的確可以避免一些不必要的數值問題。輸入變數的數量級未致於會引起數值問題吧,但其實要引起也並不是那麼困難。因為tansig的非線性區間大約在 1.7,1.7 意味著要使神經元有效,tansig w1 x1 w2 x2 b 裡的 w1 x1 w2 x...