1. 程式人生 > >機器學習資料標準和歸一化

機器學習資料標準和歸一化

很多時候我們需要對資料集裡面的資料進行標準化和歸一化處理。

例如:
X={年齡(年),體重(kg)} 和 X={年齡(年),體重(g)},雖然邏輯上表達的同樣的含義,但是反應在資料上兩個分量卻是相差特別大。這個時候我們往往希望兩個分量的值不會因為量綱不同而差異太大,使得各的分量對模型的影響都差不多。這個時候我們就會使用標準化和歸一化技術。另外,使用標準化和歸一化技術還可以加速模型的收斂。這是因為試想,在一個特徵向量的有兩個分量xixj因為量綱的原因導致數值上相差巨大,即xi>>xj那麼在訓練的過程中,模型為了xixj都對結果有同等重要的影響,訓練到一定長的時間後,必然會有x

j的引數遠遠的大於xi;然而這個時間一般特別長。而當資料都進行了標準化,各個分量都差不了好多,頂天也就差一個數量級,此時各個分量的引數調整幅度也就不會相差的太大了,於是就可以加速收斂。

標準化

標準化的方法是隻用大數定理將資料轉化為一個標準正態分佈,標準化公式為:

xi^=xiμiδi
其中xi是輸入向量X的第i個特徵,μi是所有xi的平均值,δi是這個特徵的標準差。

我們注意看公式,可以發現經過標準化處理後,xi將不帶量綱,這樣就可以解決不同特徵向量的不同特徵因為量綱不同而導致諸多不合理的問題。
另外,使用標準化也特別合理,根據大數定理,當樣本量達到一定數目後都可以把他們看做是正態分佈了。而很多網路模型對標準正態的資料是及其敏感的,所以標準化後的資料十分利於訓練。

注意 標準化後的結果,各個分量的值域是R

歸一化

歸一化的目標是找到某種對映關係,將原資料對映到[a,b]區間上。一般a,b會取[-1,1],[0,1]這些組合。

一般歸一化的方法有:

mean-max歸一化:對映到[-1,1]

xi^=xiμixmaxxmin

min-max 歸一化:對映到 [0,1]

xi^=xixminxmaxxmin