跳到主要內容 跳至補充內容

Null 插補

太多遺失的值可能會對機器學習模型的品質造成負面影響。插補是填補遺失值 (稱為 Null 值) 的做法。遺失資料可能有很多原因,例如資料庫錯誤、使用者沒有填寫部分表單,或您也許開始收集新的資料,而資料集中的舊記錄沒有新的資料點。

在自動資料前置處理期間,Null 值的處理方式是排除遺失超過 50% 值的欄並插補遺失的值。會以模式和數值連同平均值插補類別值。

重要的是,應理解插補對資料可能造成的影響。插補保留列或欄的預測能力,但也可能建立之前不存在的模式,或對已存在的模式增添雜訊。這會降低資料有效性。

您可能會想要檢閱資料收集做法,以確保資料完整性並按需求實施新的流程。若您想要保留空值的代表性,您可以使用「other」(其他) 或「unknown」(未知) 等值填入 Null。

插補如何運作

下列方法是 Null 插補的常見做法。

數值

良好的預設做法是插補平均值。若遺失的值正常分佈,這就像在蹺蹺板中央增加重量,而不會影響兩側的重量。不過,您務必要考慮該值嘗試呈現的內容。例如,若銷售資料中的某些銷售價格值是 Null,這是因為資料庫錯誤,或是因為買家使用優惠券作為付款方式?0 或是其他值是否會比平均值更合理?

類別值

類別值的良好預設做法是新增另一個類別並稱之為「Other」(其他)、「Unknown」(未知) 甚至是「Missing」(遺失)。若隨機分佈遺失的值,則此類別可以保留其他差異,或者若遺失值和目標值之間有重要關係,則可增加特徵重要性。

遞補是以模式形式插補平均值。如同使用數值,考慮值實際上嘗試呈現的內容以及值可能遺失的原因,永遠很重要。若您知道大部分遺失的值可能是模式,則您可以使用模式插補。若不知道,或不確定,則您可以使用對資料集是新唯一值的 Filler 文字插補類別值。

插補數值的影響

數字插補 1 顯示散佈圖與最適線。我們有沿著類別 (x) 軸的數值以及沿著值 (y) 軸的目標值。這看起來很適合,但僅考慮到 x 是已知情況下的資料點。

數字插補 1:已知值與最適線的圖

線性最適線的圖。

在數字插補 2,我們已插補平均值。不過,遺失的值看起來不像是隨機。於是這讓最適線歪曲,並增添雜訊,降低了模型的整體準確度。

數字插補 2:已知值和插補平均值的圖。插補的值不是隨機分佈,有新的最適線。

讓最適線歪曲的插補值圖。

數字插補 3 的圖表顯示,若我們在遺失的值隨機分佈時插補平均值,會是什麼樣子。換言之,亦即不必知道值是存在或遺失,藉此獲得其他知識。若遺失的值隨機分佈,則不會變更最適線。若我們已插補 0 而非平均值,則會以類似數字插補 2 的方式變更最適線。

數字插補 3:已知值和隨機分佈插補值的圖。最適線未變更。

沒有讓最適線歪曲的插補值圖。

範例:貸款資格

現實範例是,假設 x 是年收入而 y 是有資格借貸的金額。我們會預期的關係是,某人的收入越高,可以借貸的金額就越高。模式會類似於上述的數字插捕 1。

想像收入較少的人比較不可能提交年收入。在此情況下,x 值會因為特定原因而遺失。為這些值插補平均值會讓模型結果歪曲。結果會像數字插補 2。

現在,考慮資料庫中的某些記錄遭到隨機刪除。這些記錄包含某人收入多少的資料,但不是該名人士的記錄。因此 x 值會隨機出現 Null。這樣的影響繪製在數字插補 3 中,其中我們可以安全地插補遺失的值。

應考慮另一件事:如果插補 0 而非平均值,會如何?在貸款資格範例中,呈現某人的收入是 0 可能並不準確。這會讓模型歪曲,類似數字插補 2。

插補類別值的影響

在以上的數字案例中,我們使用了平均值來插補遺失的值。類別值的簡單方法是採用模式,這是最常發生的值。插補模式時的一些挑戰與對數值插補平均值相同。

在下圖中,Missing_1 中遺失的值與目標之間有一種模式,而 Missing_2 則是隨機分佈。我們可以看見這是因為 Missing_2 符合整體平均目標值。Missing_1 類似於數字插補 2,而 Missing_2 則類似於數字插補 3。

類別插補:欄 Missing_1 和 Missing_2 是含有及不含模式的遺失值範例。

圖表顯示分類 A、B 和 C 的分佈以及整體平均和遺失值的類別插補。

與數字範例的差異是在此案例中,Missing_1 和 Missing_2 都會讓模式辨識歪曲。若使用模式插補,則只有會是插補值的資料子集 (類別 B) 歪曲,因為這是最大的類別。

歪曲單一值和目標值之間的關係不是插補的唯一風險,而是最常見且最容易評估的風險之一。其他風險傾向增添雜訊並降低準確度。幸運的是,捨棄相對疏鬆的維度,可以大幅減輕歪曲風險。經常會爭論欄或列中確切允許什麼樣的稀疏程度,但比較不常爭論插補值可能因為不再呈現資料嘗試描述的內容而扭曲資料。

瞭解更多資訊

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!