logo
Loading...

歸一化、標準化、中心化分別是什麼? - 【教材專區】學習AI有困難? 讓Cupoy助教來幫你! - Cupoy

這三種方法都有一個共同的目標:為了要讓數據在訓練上能變得更有意義 在此三種方法中,歸一化及標準化的目標較相似,他們主要針對的問題都是把數據範圍縮小卻又不影響原始數據的分佈。我們在比較兩組數據時,可...

這三種方法都有一個共同的目標:為了要讓數據在訓練上能變得更有意義 在此三種方法中,歸一化及標準化的目標較相似,他們主要針對的問題都是把數據範圍縮小卻又不影響原始數據的分佈。我們在比較兩組數據時,可能會遭遇因單位的不同(例如:身高與體重),或數字大小的代表性不同(例如:房價1000萬與坪數30坪),那麼若把這兩個特徵丟入模型,在收斂上會產生問題,所以這時候就會需要使用歸一化跟標準化來處理數據,讓模型也能夠更加的完整與準確。 至於中心化主要針對的問題是當數據的中心非原點時,我們會無法簡單的以向量的方式來表示數據,所以要把數據的中心移到原點。 以下會對三種方法進行更詳細的介紹與應用 標準化(Standardization) 標準化主要是應用在機器學習的演算法當中,目的是為了要讓數據變成同一個單位,讓原本不同單位的數據可以進行比較,並提升模型的精確度。 常見的標準化方法就是Z分數標準化(Z-Score Standardization) 我們會使用到下列公式: 式子中的X代表數值、μ代表平均數、σ代表標準差 再經過Z分數標準化後,數據會呈現常態分佈(如下圖) 常態分佈就是讓數據變成平均值=0、標準差=1 Z分數標準化適用於分佈大致對稱的資料,因為在非常不對稱的分佈中,標準差的意義並不明確,此時若標準化資料,可能會對結果做出錯誤的解讀,另外,當我們未知資料的最大值與最小值,或存在超出觀察範圍的離群值時,也可透過 Z分數標準化來降低離群值對整個模型的影響。 我們來看一個實際應用的例子,請觀察下圖 經過觀察我們發現兩組數據的平均值與標準差並不相同且差異巨大,所以我們利用Z分數標準化把兩組數據皆轉換成平均值近似於0且標準差近似於1的資料 並我們把標準化前後的數據放在同個圖表上後發現,兩組數據在標準化後確實都成常態分佈 (紅色為標準化前,藍色為標準化後) 歸一化(又稱正規化 Normalization): 歸一化的目標在於要把原始數據按比例縮放成[0,1]之間且不改變其原本分佈。舉例來說,若我們現有兩組數據資料(如下圖)分別表示 500 項商品的銷售量及銷售額。 如左圖所示,可以看到很明顯的,此兩組資料的單位不同,且在數字上有著懸殊的差異,不過透過資料歸一化後,如右圖所示,兩組資料將同時轉換成純量並縮放於 [0,1] 區間中,且沒有影響到資料本來的分佈狀況,這樣的資料轉換,能排除資料單位的限制,提供我們一個相同的基準來進行後續比較分析。 常見的歸一化方法是使用最小值最大值歸一化法(Min-Max Normalization) 我們會使用到下列公式 其中Xmax代表最大值、Xmin代表最小值,要注意的地方是當有新資料進來時,可能會有最大值或最小值的改變,這時候我們就要重新定義式子中的Xmax跟Xmin才不會導致錯誤。 這裡我們準備兩組資料,這兩組資料的分佈情況及各別平均值、標準差,請詳下面圖表: 我們經過觀察能發現兩組數據的最大值、最小值、平均值跟標準差都有十分明顯的差異 透過使用最小值最大值歸一化法,將兩組資料皆縮放於 [0, 1] 區間中,新的最大值、最小值、平均值跟標準差如下圖所示 接下來我們可以觀察兩組資料各自歸一化前後的分佈,請詳下圖(紅色為歸一化前,藍色為歸一化後),我們瞭解到最小值最大值歸一化法僅將資料等比例縮放進 [0, 1]  區間中,但並不會改變原本的分佈情況。 中心化(Zero-centered) : 中心化實際應用的層面較少,主要的目的只是讓數據能回到以中心為起點的數據 中心化的式子為:數值-平均數 因為只是平移數據,所以對數據本身的影響不大 參考文獻:https://aifreeblog.herokuapp.com/posts/54/data_science_203/