轉發:http://blog.csdn.net/zbc1090549839/article/details/44103801(請移步原文)
機器學習、數據挖掘工作中,數據前期准備、數據預處理過程、特征提取等幾個步驟幾乎要花費數據工程師一半的工作時間。同時,數據預處理的效果也直接影響了后續模型能否有效的工作。然而,目前的大部分學術研究主要集中在模型的構建、優化等方面,對數據預處理的理論研究甚少,可以說,很多數據預處理工作仍然是靠工程師的經驗進行的。從業數據建模/挖掘工作也有近2年的時間,在這里結合談一談數據預處理中歸一化方法。
在之前的博客中轉載了一篇關於維歸約的文章:數據預處理之歸一化。論述的比較簡單,有興趣的可以先了解一下。
在這里主要討論兩種歸一化方法:
1、線性函數歸一化(Min-Max scaling)
線性函數將原始數據線性化的方法轉換到[0 1]的范圍,歸一化公式如下:

該方法實現對原始數據的等比例縮放,其中Xnorm為歸一化后的數據,X為原始數據,Xmax、Xmin分別為原始數據集的最大值和最小值。
2、0均值標准化(Z-score standardization)
0均值歸一化方法將原始數據集歸一化為均值為0、方差1的數據集,歸一化公式如下:

其中,μ、σ分別為原始數據集的均值和方法。該種歸一化方式要求原始數據的分布可以近似為高斯分布,否則歸一化的效果會變得很糟糕。
以上為兩種比較普通但是常用的歸一化技術,那這兩種歸一化的應用場景是怎么樣的呢?什么時候第一種方法比較好、什么時候第二種方法比較好呢?下面做一個簡要的分析概括:
1、在分類、聚類算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維的時候,第二種方法(Z-score standardization)表現更好。
2、在不涉及距離度量、協方差計算、數據不符合正太分布的時候,可以使用第一種方法或其他歸一化方法。比如圖像處理中,將RGB圖像轉換為灰度圖像后將其值限定在[0 255]的范圍。
為什么在距離度量計算相似性、PCA中使用第二種方法(Z-score standardization)會更好呢?我們進行了以下的推導分析:
歸一化方法對方差、協方差的影響:假設數據為2個維度(X、Y),首先看0均值對方差、協方差的影響:
先使用第二種方法進行計算,我們先不做方差歸一化,只做0均值化,變換后數據為


新數據的協方差為

由於

因此

而原始數據協方差為

因此

做方差歸一化后:

方差歸一化后的協方差為:

使用第一種方法進行計算,為方便分析,我們只對X維進行線性函數變換

計算協方差

可以看到,使用第一種方法(線性變換后),其協方差產生了倍數值的縮放,因此這種方式無法消除量綱對方差、協方差的影響,對PCA分析影響巨大;同時,由於量綱的存在,使用不同的量綱、距離的計算結果會不同。
而在第二種歸一化方式中,新的數據由於對方差進行了歸一化,這時候每個維度的量綱其實已經等價了,每個維度都服從均值為0、方差1的正態分布,在計算距離的時候,每個維度都是去量綱化的,避免了不同量綱的選取對距離計算產生的巨大影響。
總結來說,在算法、后續計算中涉及距離度量(聚類分析)或者協方差分析(PCA、LDA等)的,同時數據分布可以近似為狀態分布,應當使用0均值的歸一化方法。其他應用中更具需要選用合適的歸一化方法。