1. 程式人生 > >資料歸一化小結

資料歸一化小結

在各種模型訓練,特徵選擇相關的演算法中,大量涉及到資料歸一化的問題。比如最常見的情況是計算距離,如果不同維度之間的取值範圍不一樣,比如feature1的取值範圍是[100,200],feature2的取值範圍是[1,2],如果資料不做歸一化處理,會造成feature1在距離計算中佔壓倒性的優勢,feature2完全體現不出來作用。而資料做歸一化處理以後,會讓各個不同特徵對距離計算的貢獻大致相同,從而避免人為的資料傾斜。

常見的資料歸一化方式如下:

1.線性歸一化

如果要把輸入資料轉換到[0,1]的範圍,可以用如下公式進行計算:

Xnorm=XXminXmaxXmin
按以上方式進行歸一化以後,輸入資料轉換到[0,1]的範圍。
有時候我們希望將輸入轉換到[-1,1]的範圍,可以使用以下的公式
X
norm
=2(XXmin)XmaxXmin1

以上兩種方式,都是針對原始資料做等比例的縮放。其中Xnorm 是歸一化以後的資料,X是 原始資料大小,Xmax Xmin 分別是原始資料的最大值與最小值。公式簡單明瞭,很容易懂。
除了將資料縮放到[0,1]或[-1,1]的範圍,實際中還經常有其他縮放需求。例如在進行影象處理的過程中,獲得的灰度影象的灰度值在[0,255]之間。常用的處理方式之一就是將畫素值除以255,就縮放到了[0,1]之間。而在RGB影象轉灰度影象的過程中,經常就將灰度值限定在[0,255]之間。

2.0均值歸一化

0均值歸一化將輸入的原始資料集歸一化為均值為0,方差為1的資料集。具體的歸一化公式如下:

z=xμσ
其中,μ,σ是原始 資料集的均值與標準差。這種方式要求原始資料集的分佈近似為正態(高斯)分佈。否則歸一化的效果很差。

http://ufldl.stanford.edu/wiki/index.php/資料預處理 中關於0均值歸一化的描述:
特徵標準化指的是(獨立地)使得資料的每一個維度具有零均值和單位方差。這是歸一化中最常見的方法並被廣泛地使用(例如,在使用支援向量機(SVM)時,特徵標準化常被建議用作預處理的一部分)。在實際應用中,特徵標準化的具體做法是:首先計算每一個維度上資料的均值(使用全體資料計算),之後在每一個維度上都減去該均值。下一步便是在資料的每一維度上除以該維度上資料的標準差。
例子:處理音訊資料時,常用 Mel 倒頻係數 MFCCs 來表徵資料。然而MFCC特徵的第一個分量(表示直流分量)數值太大,常常會掩蓋其他分量。這種情況下,為了平衡各個分量的影響,通常對特徵的每個分量獨立地使用標準化處理。