機器學習中,為何經常要對資料歸一化?

2021-08-18 08:19:33 字數 1537 閱讀 4566

機器學習中,為何經常要對資料歸一化?原因有二:(1)歸一化後加快了梯度下降求最優解的速度;(2)歸一化有可能提高精度。

為什麼歸一化能提高梯度下降法求解最優解的速度?

假定為**房價的例子,自變數為面積大小和房間數,因變數為房價。那麼可以得到的公式為: y=

θ1x1

+θ2x

2 y=θ

1x1+

θ2x2

其中,x1

x

1代表房間數,θ1

θ

1代表x

1 x1

變數前面的係數;x2

x

2代表面積,θ2

θ

2代表x

2 x2

變數前面的係數。

下面兩張圖(損失函式的等高線)代表資料是否歸一化的最優解尋解過程:

未歸一化:

歸一化之後:

在尋找最優解的過程也就是在使得損失函式值最小的 θ1

,θ2 θ1,

θ2。當資料沒有歸一化的時候,面積數的範圍可以從0~1000,房間數的範圍一般為0~10,可以看出面積數的取值範圍遠大於房間數。也就導致了等高面為長橢圓形,非常尖,因為變數前的係數大小相差很大,當使用梯度下降法尋求最優解時,很有可能走「之字型」路線(垂直等高線走)。而資料歸一化後,損失函式變數前面的係數差距已不大,影象的等高面近似圓形,在梯度下降進行求解時能較快的收斂。

因此如果機器學習模型使用梯度下降法求最優解時,歸一化往往非常有必要,否則很難收斂甚至不能收斂。

歸一化有可能提高精度

一些機器學習演算法需要計算樣本之間的距離(如歐氏距離),例如 knn、k-means 等。如果乙個特徵值域範圍非常大,那麼距離計算就主要取決於這個特徵,從而與實際情況相悖(比如這時實際情況是值域範圍小的特徵更重要)。

歸一化與標準化的區別

歸一化:把數變為(0,1)之間的小數;

標準化:將資料按比例縮放,使之落入乙個小的特定區間。

常用的歸一化方法

線性轉換 y=

x−mi

nval

uema

xval

ue−m

inva

lue y=x

−min

valu

emax

valu

e−mi

nval

ue對數函式轉換 y=

log10

x y=l

og10x

反餘切函式轉換 y=

atan

(x)∗2πy

=ata

n(x)

∗2π線性與對數函式結合

常用的資料標準化方法。

為什麼一些機器學習模型需要對資料進行歸一化?

針對這個問題參考了wiki的解釋 歸一化後有兩個好處 1 歸一化後加快了梯度下降求最優解的速度 2 歸一化有可能提高精度 1 歸一化為什麼能提高梯度下降法求解最優解的速度?如下圖所示,藍色的圈圈圖代表的是兩個特徵的等高線。其中左圖兩個特徵x1和x2的區間相差非常大,x1區間是 0,2000 x2區間...

為什麼一些機器學習模型需要對資料進行歸一化?

本文 機器學習模型被網際網路行業廣泛應用,如排序 參見 排序學習實踐 推薦 反作弊 定位 參見 基於樸素貝葉斯的定位演算法 等。一般做機器學習應用的時候大部分時間是花費在特徵處理上,其中很關鍵的一步就是對特徵資料進行歸一化,為什麼要歸一化呢?很多同學並未搞清楚,維基百科給出的解釋 1 歸一化後加快了...

為什麼一些機器學習模型需要對資料進行歸一化?

機器學習模型被網際網路行業廣泛應用,如排序 參見 排序學習實踐 推薦 反作弊 定位 參見 基於樸素貝葉斯的定位演算法 等。一般做機器學習應用的時候大部分時間是花費在特徵處理上,其中很關鍵的一步就是對特徵資料進行歸一化,為什麼要歸一化呢?很多同學並未搞清楚,維基百科給出的解釋 1 歸一化後加快了梯度下...