數據什麼時候需要做中心化和標準化處理?
01-21
對中心化和標準化的目的和結果不是很了解,請問如果拿到一組數據,需要對所有變數做中心話和標準化的處理嗎?如果不是,什麼時候需要,什麼時候不需要,為什麼?
謝邀。在回歸問題和一些機器學習演算法中,以及訓練神經網路的過程中,通常需要對原始數據進行中心化(Zero-centered或者Mean-subtraction)處理和標準化(Standardization或Normalization)處理。
- 目的:通過中心化和標準化處理,得到均值為0,標準差為1的服從標準正態分布的數據。
- 計算過程由下式表示:
- 下面解釋一下為什麼需要使用這些數據預處理步驟。
在一些實際問題中,我們得到的樣本數據都是多個維度的,即一個樣本是用多個特徵來表徵的。比如在預測房價的問題中,影響房價的因素有房子面積、卧室數量等,我們得到的樣本數據就是這樣一些樣本點,這裡的、又被稱為特徵。很顯然,這些特徵的量綱和數值得量級都是不一樣的,在預測房價時,如果直接使用原始的數據值,那麼他們對房價的影響程度將是不一樣的,而通過標準化處理,可以使得不同的特徵具有相同的尺度(Scale)。這樣,在使用梯度下降法學習參數的時候,不同特徵對參數的影響程度就一樣了。
- 簡言之,當原始數據不同維度上的特徵的尺度(單位)不一致時,需要標準化步驟對數據進行預處理。
- 下圖中以二維數據為例:左圖表示的是原始數據;中間的是中心化後的數據,數據被移動大原點周圍;右圖將中心化後的數據除以標準差,得到為標準化的數據,可以看出每個維度上的尺度是一致的(紅色線段的長度表示尺度)。
- 比如在訓練神經網路的過程中,通過將數據標準化,能夠加速權重參數的收斂。
- 另外,對於主成分分析(PCA)問題,也需要對數據進行中心化和標準化等預處理步驟。
以PCA為例說下中心化的作用。
下面兩幅圖是數據做中心化(centering)前後的對比,可以看到其實就是一個平移的過程,平移後所有數據的中心是(0,0).如果沒有對數據做中心化,那算出來的第一主成分的方向可能就不是一個可以「描述」(或者說「概括」)數據的方向了。還是看圖比較清楚。
黑色線就是第一主成分的方向。只有中心化數據之後,計算得到的方向才能比較好的「概括」原來的數據。最後, 給題主推薦一個問答論壇cross validated,上面可以找到很多數據分析,機器學習相關領域的問答。
對數據進行中心化預處理,這樣做的目的是要增加基向量的正交性。
對數據標準化的目的是消除特徵之間的差異性。便於對一心一意學習權重。
推薦閱讀:
※阿西莫夫的心理史學有可能實現么?
※hypothesis testing幾個不同的test類型到底有什麼具體區別?
※無跡卡爾曼到底是什麼東西?
※在給定可接受的第一、二類錯誤概率的情況下,是否可以互換原假設和備擇假設形成一個新的假設檢驗?