數據什麼時候需要做中心化和標準化處理?

對中心化和標準化的目的和結果不是很了解,請問如果拿到一組數據,需要對所有變數做中心話和標準化的處理嗎?如果不是,什麼時候需要,什麼時候不需要,為什麼?


謝邀。

在回歸問題和一些機器學習演算法中,以及訓練神經網路的過程中,通常需要對原始數據進行中心化(Zero-centered或者Mean-subtraction)處理和標準化(Standardization或Normalization)處理。

  • 目的:通過中心化和標準化處理,得到均值為0,標準差為1的服從標準正態分布的數據。
  • 計算過程由下式表示:x^{
  • 下面解釋一下為什麼需要使用這些數據預處理步驟。

在一些實際問題中,我們得到的樣本數據都是多個維度的,即一個樣本是用多個特徵來表徵的。比如在預測房價的問題中,影響房價y的因素有房子面積x_{1}、卧室數量x_{2}等,我們得到的樣本數據就是(x_{1},x_{2})這樣一些樣本點,這裡的x_{1}x_{2}又被稱為特徵。很顯然,這些特徵的量綱和數值得量級都是不一樣的,在預測房價時,如果直接使用原始的數據值,那麼他們對房價的影響程度將是不一樣的,而通過標準化處理,可以使得不同的特徵具有相同的尺度(Scale)。這樣,在使用梯度下降法學習參數的時候,不同特徵對參數的影響程度就一樣了。

  • 簡言之,當原始數據不同維度上的特徵的尺度(單位)不一致時,需要標準化步驟對數據進行預處理。

  • 下圖中以二維數據為例:左圖表示的是原始數據;中間的是中心化後的數據,數據被移動大原點周圍;右圖將中心化後的數據除以標準差,得到為標準化的數據,可以看出每個維度上的尺度是一致的(紅色線段的長度表示尺度)。

其實,在不同的問題中,中心化和標準化有著不同的意義,

  • 比如在訓練神經網路的過程中,通過將數據標準化,能夠加速權重參數的收斂。
  • 另外,對於主成分分析(PCA)問題,也需要對數據進行中心化和標準化等預處理步驟。


以PCA為例說下中心化的作用。

下面兩幅圖是數據做中心化(centering)前後的對比,可以看到其實就是一個平移的過程,平移後所有數據的中心是(0,0).

在做PCA的時候,我們需要找出矩陣的特徵向量,也就是主成分(PC)。比如說找到的第一個特徵向量是a = [1, 2],a在坐標平面上就是從原點出發到點(1,2)的一個向量。

如果沒有對數據做中心化,那算出來的第一主成分的方向可能就不是一個可以「描述」(或者說「概括」)數據的方向了。還是看圖比較清楚。

黑色線就是第一主成分的方向。只有中心化數據之後,計算得到的方向才能比較好的「概括」原來的數據。

最後, 給題主推薦一個問答論壇cross validated,上面可以找到很多數據分析,機器學習相關領域的問答。


對數據進行中心化預處理,這樣做的目的是要增加基向量的正交性。

對數據標準化的目的是消除特徵之間的差異性。便於對一心一意學習權重。


推薦閱讀:

阿西莫夫的心理史學有可能實現么?
hypothesis testing幾個不同的test類型到底有什麼具體區別?
無跡卡爾曼到底是什麼東西?
在給定可接受的第一、二類錯誤概率的情況下,是否可以互換原假設和備擇假設形成一個新的假設檢驗?

TAG:數據分析 | 機器學習 | 統計 |