數據與特徵

歸一化與標準化(normalization and standardization)

/ nor-muh-lih-ZAY-shun and stan-der-dih-ZAY-shun /

假設你資料裡的一欄是年齡(0到100),另一欄是年收入(0到幾十萬)。在一個基於數學的模型看來,收入顯得大了上千倍、把年齡的聲音蓋了過去,這僅僅是因為它的單位,而非因為它更重要。歸一化與標準化,正是把所有特徵放到可比尺度上、讓任何一個都不至於淹沒其他的兩種辦法。

歸一化(normalization)通常指最小—最大縮放:把每個特徵壓進一個固定區間,常見是0到1,做法是把最小值映射為0、最大值映射為1。標準化(standardization)則是重新縮放,使每個特徵均值為0、標準差為1——也就是所謂的z分數(z-score),它表示某個值高於或低於平均值多少個標準差。歸一化保留原有的形狀但限定了範圍;標準化把資料居中,當關鍵在於「離散程度」而非「上下界」時更穩健。

為何重要:許多方法對尺度很敏感——梯度下降收斂得更快,k近鄰、k均值這類基於距離的方法才會表現得合理,而正則化也只有在尺度可比時才會公平地對待各特徵。關鍵紀律是:只用訓練資料來計算最小值、最大值、均值和標準差,再把這同一組數字套用到驗證集和測試集上。在測試集上重新求這些量,會洩露資訊、虛高你的分數。

年齡在20到60之間,收入在3萬到15萬之間。最小—最大歸一化把一位40歲、年入9萬的人映射為(0.5, 0.5)。標準化則改為報告每個值有多「不尋常」:恰好處在平均水平的年齡和收入都會變成0,無論它們原本的單位是什麼。

最小—最大縮放把資料壓到0到1;z分數則把資料重新居中到均值0、離散度1。

這兩個詞用得很隨意,有人甚至會互換著用。真正不容含糊的是:縮放器只能在訓練資料上擬合——一個離群點,或對測試集範圍的一次偷看,都會悄悄扭曲下游所有人賴以為據的那些數字。

又稱
min-max scalingz-score normalization归一化标准化標準化歸一化