機器學習(十三)缺失值處理的處理方法總結

2021-09-01 06:38:17 字數 1464 閱讀 7486

從缺失值的所屬屬性上講,如果所有的缺失值都是同一屬性,那麼這種缺失成為單值缺失,如果缺失值屬於不同的屬性,稱為任意缺失。另外對於時間序列類的資料,可能存在隨著時間的缺失,這種缺失稱為單調缺失。

對於缺失值的處理,從總體上來說分為刪除缺失值和缺失值插補。

如果在資料集中,只有幾條資料的某幾列中存在缺失值,那麼可以直接把這幾條資料刪除。但是一般在比賽中,如果資料中存在缺失值,那麼不能直接將資料整行刪除,這裡需要想其他辦法處理,比如填充等

如果在資料集中,有一列或者多列資料刪除,我們可以將簡單地將整列刪除。

一般來說,對於高維資料,可以通過刪除缺失率較高的特徵,可以減少噪音特徵對模型的干擾。但是某種情況下使用xgb和lgb等樹模型訓練資料發現,直接刪除缺失嚴重得的特徵會稍微降低**效果,因為樹模型自己在**節點的時候,會自動選擇特徵,確定特徵的重要性,那些缺失嚴重的特徵,重要性會等於0。這就像l2正則化一樣,對於一些特徵進行懲罰,使其特徵權重等於0。所以實驗表明,直接刪除缺失嚴重的特徵,會誤刪一些對模型有些許效果的特徵,而不刪除,其實對於模型來說,影響不大。

(1)均值插補。資料的屬性分為定距型和非定距型。如果缺失值是定距型的,就以該屬性存在值的平均值來插補缺失的值;如果缺失值是非定距型的,就根據統計學中的眾數原理,用該屬性的眾數(即出現頻率最高的值)來補齊缺失的值。

(2)利用同類均值插補。同均值插補的方法都屬於單值插補,不同的是,它用層次聚類模型**缺失變數的型別,再以該型別的均值插補。假設x=(x1,x2…xp)為資訊完全的變數,y為存在缺失值的變數,那麼首先對x或其子集行聚類,然後按缺失個案所屬類來插補不同類的均值。如果在以後統計分析中還需以引入的解釋變數和y做分析,那麼這種插補方法將在模型中引入自相關,給分析造成障礙。

(3)極大似然估計(max likelihood ,ml)。在缺失型別為隨機缺失的條件下,假設模型對於完整的樣本是正確的,那麼通過觀測資料的邊際分布可以對未知引數進行極大似然估計(little and rubin)。這種方法也被稱為忽略缺失值的極大似然估計,對於極大似然的引數估計實際中常採用的計算方法是期望值最大化(expectation maximization,em)。該方法比刪除個案和單值插補更有吸引力,它乙個重要前提:適用於大樣本。有效樣本的數量足夠以保證ml估計值是漸近無偏的並服從正態分佈。但是這種方法可能會陷入區域性極值,收斂速度也不是很快,並且計算很複雜。

(4)多重插補(multiple imputation,mi)。多值插補的思想**於貝葉斯估計,認為待插補的值是隨機的,它的值來自於已觀測到的值。具體實踐上通常是估計出待插補的值,然後再加上不同的雜訊,形成多組可選插補值。根據某種選擇依據,選取最合適的插補值。

機器學習缺失值處理方法

機器學習中的模型訓練只是其中的乙個步驟,有好的的資料才能得到好的模型。但是在現實情況下,資料往往是存在一些缺失值的,怎麼取處理這些缺失值,使資料表現更完美也是乙個特別重要的步驟。缺失值是指粗糙資料中由於缺少資訊而造成的資料的聚類 分組 刪失或截斷。它指的是現有資料集中某個或某些屬性的值是不完全的。缺...

機器學習中缺失值的處理

做比賽過程中經常會有大量有缺失值的項,這時怎麼處理缺失值很關鍵了。平均值填充 mean mode completer 將初始資料集中的屬性分為數值屬性和非數值屬性來分別進行處理。如果空值是數值型的,就根據該屬性在其他所有物件的取值的平均值來填充該缺失的屬性值 如果空值是非數值型的,就根據統計學中的眾...

機器學習 資料特徵預處理缺失值處理

刪除 如果行或列資料缺失值達到一定比例,建議放棄整行或列 插補 填補列的平均值,中位數 numpy陣列中的缺失值 nan nan 屬於float型別 from sklearn.preprocessing import imputer import numpy as np 缺失值處理 data 1,1...