天天看點

機器學習中資料歸一化和兩種常用的歸一化方法

機器學習、資料挖掘工作中,資料前期準備、資料預處理過程、特征提取等幾個步驟幾乎要花費資料工程師一半的工作時間。同時,資料預處理的效果也直接影響了後續模型能否有效的工作。然而,目前的大部分學術研究主要集中在模型的建構、優化等方面,對資料預處理的理論研究甚少,可以說,很多資料預處理工作仍然是靠工程師的經驗進行的。從業資料模組化/挖掘工作也有近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′=x−x¯ 、 y′=y−y¯

新資料的協方差為 σ′xy=1n−1∑in(x′i−x¯′)(y′i−y¯′)

由于  x¯′=0 、  y¯′=0  ,是以 σ′xy=1n−1∑inx′iy′i

而原始資料協方差為 σxy=1n−1∑in(x′i−x¯′)(yi−y¯)

=1n−1∑in(x′i−0)(yi−y¯)

=1n−1∑in(xi−x¯)(yi−y¯)

是以 σ′xy=σxyσxy

做方差歸一化後:

x′=x−x¯σx 、 y′=y−y¯σy

σ′xy=1n−1∑in(x′i−0)(y′i−0)

=1n−1∑in(x−x¯σx)(y−y¯σy)

=1(n−1)⋅σxσy∑in(xi−x¯)(yi−y¯)

⇒σ′xy=σxyσxσy

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

x′=c⋅xi

y′ − y¯

x′= c⋅xi

計算協方差 σ′xy=1n−1∑in(c⋅xi−c⋅x¯)(yi−y¯)

=cn−1∑in(xi−x¯)(yi−y¯)

⇒σxy=σ′xyc

⇒σ′xy=c⋅σxy

可以看到,使用第一種方法(線性變換後),其協方差産生了倍數值的縮放,是以這種方式無法消除量綱對方差、協方差的影響,對PCA分析影響巨大;同時,由于量綱的存在,使用不同的量綱、距離的計算結果會不同。 而在第二種歸一化方式中,新的資料由于對方差進行了歸一化,這時候每個次元的量綱其實已經等價了,每個次元都服從均值為0、方差1的正态分布,在計算距離的時候,每個次元都是去量綱化的,避免了不同量綱的選取對距離計算産生的巨大影響。

總結來說,在算法、後續計算中涉及距離度量(聚類分析)或者協方差分析(PCA、LDA等)的,同時資料分布可以近似為狀态分布,應當使用0均值的歸一化方法。其他應用中更具需要選用合适的歸一化方法。

轉自:http://blog.csdn.net/zbc1090549839/article/details/44103801

繼續閱讀