機器學習中,為何經常要對資料歸一化?原因有二:(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 歸一化後加快了梯度下...