機器學習入門 4-7 數據歸一化
- 2019 年 11 月 13 日
- 筆記
本系列是《玩轉機器學習教程》一個整理的影片筆記。本小節主要介紹數據歸一化(Feature Scaling)。
為什麼要進行數據歸一化
下面使用腫瘤的例子:

通過歐拉距離衡量兩個樣本之間的距離,雖然兩個樣本的腫瘤大小是5倍,腫瘤發現時間是2倍,但是計算兩個樣本之間距離的時候,由於量綱不同,距離被腫瘤發現的天數所主導。
如果我們把腫瘤發現的時候調整為年的話:

此時兩個樣本之間的距離又被腫瘤大小所主導,將腫瘤發現的時間轉換為年的話,0.55-0.27差值變的特別的小,而在這個量綱下,5-1又相對特別的,因此如果不對數據進行一些基本的處理的話,直接計算兩個樣本之間的距離很有可能是有偏差的,不能非常好的同時反映樣本中每一個特徵的重要程度,正是因為如此,我們需要對數據進行歸一化的處理。


這裡說一下什麼是有明顯邊界情況,比如有一組特徵是學生的考試分數,分數顯然就是有明顯的邊界,他的最小值可能就是0分,最大值可能為100分。還有一個例子,比如影像像素的每一個像素點,他的像素範圍通常是[0, 255]之間。但是這些擁有明顯邊界情況的受outlier的影響比較大。
還有一類情況就是沒有明顯的邊界,比如收入問題,沒有固定的收入範圍,有的人收入極其高,一旦有了這個outlier對使用最值歸一化的影響就比較大,比如大多數人的月收入是1萬塊錢,有一個人的月收入是100萬元,如果使用最值歸一化將其映射到0-1之間的話,哪個100萬元的特徵一定是1,大多數人由於是1萬元左右,因此被歸一化到0.01左右,可想而知,這種映射結果是不夠好的,相應的改進方式是使用均值方差歸一化(standardization):

均值方差歸一化比較實用數據分布沒有明顯邊界,有可能存在outlier的情況,但是在有明顯分布邊界的情況下表現也是非常好的。老師的建議:除非前面學生考試分數,影像的像素這種有非常明確的特徵分布邊界的情況,一般情況,我們都使用均值方差歸一化就可以。
下面先使用最值歸一化:







均值方差歸一化:

