機器學習缺失值處理方法

     機器學習中的模型訓練只是其中的一個步驟,有好的的數據才能得到好的模型。但是在現實情況下,數據往往是存在一些缺失值的,怎麼取處理這些缺失值,使數據表現更完美也是一個特別重要的步驟。

 

缺失值處理方法綜述


缺失值是指粗糙數據中由於缺少信息而造成的數據的聚類、分組、刪失或截斷。它指的是現有數據集中某個或某些屬性的值是不完全的。缺失值的產生的原因多種多樣,主要分爲機械原因和人爲原因。 
機械原因是由於機械原因導致的數據收集或保存的失敗造成的數據缺失,比如數據存儲的失敗,存儲器損壞,機械故障導致某段時間數據未能收集(對於定時數據採集而言)。 
人爲原因是由於人的主觀失誤、歷史侷限或有意隱瞞造成的數據缺失,比如,在市場調查中被訪人拒絕透露相關問題的答案,或者回答的問題是無效的,數據錄入人員失誤漏錄了數據。 
以下來討論缺失值的一般處理方法:

1. 刪除


主要有簡單刪除法和權重法。簡單刪除法是對缺失值進行處理的最原始方法。

(1) 簡單刪除法


此方法將存在缺失值的數據條目(對象,元組,記錄)進行刪除。這種方法簡單易行,在對象有多個屬性缺失值、被刪除的含缺失值的對象與信息表中的數據量相比非常小的情況下是非常有效的。然而,這種方法卻有很大的侷限性。它是以減少歷史數據來換取信息的完備,會造成資源的大量浪費,丟棄了大量隱藏在這些對象中的信息。在信息表中本來包含的對象很少的情況下,刪除少量對象就足以嚴重影響到信息表信息的客觀性和結果的正確性;當每個屬性空值的百分比變化很大時,它的性能非常差。

(2) 權重法


當缺失值的類型爲非完全隨機缺失的時候,可以通過對完整的數據加權來減小偏差。把數據不完全的個案標記後,將完整的數據個案賦予不同的權重,個案的權重可以通過logistic或probit迴歸求得。如果解釋變量中存在對權重估計起決定行因素的變量,那麼這種方法可以有效減小偏差。如果解釋變量和權重並不相關,它並不能減小偏差。對於存在多個屬性缺失的情況,就需要對不同屬性的缺失組合賦不同的權重,這將大大增加計算的難度,降低預測的準確性,這時權重法並不理想。

2. 填補


這類方法是用一定的值去填充空值,從而使信息表完備化。通常基於統計學原理,根據決策表中其餘對象取值的分佈情況來對一個空值進行填充,譬如用其餘屬性的平均值來進行補充等。數據挖掘中常用的有以下幾種補齊方法:

(1) 人工填寫(filling manually)


由於最瞭解數據的還是用戶自己,因此這個方法產生數據偏離最小,可能是填充效果最好的一種。然而一般來說,該方法很費時,當數據規模很大、空值很多的時候,該方法是不可行的。

(2) 特殊值填充(Treating Missing Attribute values as Special values)


將空值作爲一種特殊的屬性值來處理,它不同於其他的任何屬性值。如所有的空值都用“unknown”填充。這樣將形成另一個有趣的概念,可能導致嚴重的數據偏離,一般不推薦使用。

(3) 均值填充(Mean/Mode Completer)


將信息表中的屬性分爲數值屬性和非數值屬性來分別進行處理。如果空值是數值型的,就根據該屬性在其他所有對象的取值的平均值來填充該缺失的屬性值;如果空值是非數值型的,就根據統計學中的衆數原理,用該屬性在其他所有對象的取值次數最多的值(即出現頻率最高的值)來補齊該缺失的屬性值。另外有一種與其相似的方法叫條件平均值填充法(Conditional Mean Completer)。在該方法中,缺失屬性值的補齊同樣是靠該屬性在其他對象中的取值求平均得到,但不同的是用於求平均的值並不是從信息表所有對象中取,而是從與該對象具有相同決策屬性值的對象中取得。這兩種數據的補齊方法,其基本的出發點都是一樣的,以最大概率可能的取值來補充缺失的屬性值,只是在具體方法上有一點不同。與其他方法相比,它是用現存數據的多數信息來推測缺失值。

(4) 熱卡填充(Hot deck imputation,或就近補齊)


對於一個包含空值的對象,熱卡填充法在完整數據中找到一個與它最相似的對象,然後用這個相似對象的值來進行填充。不同的問題可能會選用不同的標準來對相似進行判定。該方法概念上很簡單,且利用了數據間的關係來進行空值估計。這個方法的缺點在於難以定義相似標準,主觀因素較多。

(5) 聚類填充(clustering imputation)


最爲典型的代表是K最近距離鄰法(K-means clustering),先根據歐式距離或相關分析來確定距離具有缺失數據樣本最近的K個樣本,將這K個值加權平均來估計該樣本的缺失數據。同均值插補的方法都屬於單值插補,不同的是,它用層次聚類模型預測缺失變量的類型,再以該類型的均值插補。假設X=(X1,X2…Xp)爲信息完全的變量,Y爲存在缺失值的變量,那麼首先對X或其子集行聚類,然後按缺失個案所屬類來插補不同類的均值。如果在以後統計分析中還需以引入的解釋變量和Y做分析,那麼這種插補方法將在模型中引入自相關,給分析造成障礙。

(6) 使用所有可能的值填充(Assigning All Possible values of the Attribute)


這種方法是用空缺屬性值的所有可能的屬性取值來填充,能夠得到較好的補齊效果。但是,當數據量很大或者遺漏的屬性值較多時,其計算的代價很大,可能的測試方案很多。另有一種方法,填補遺漏屬性值的原則是一樣的,不同的只是從決策相同的對象中嘗試所有的屬性值的可能情況,而不是根據信息表中所有對象進行嘗試,這樣能夠在一定程度上減小原方法的代價。

(7) 組合完整化方法(Combinatorial Completer)


這種方法是用空缺屬性值的所有可能的屬性取值來試,並從最終屬性的約簡結果中選擇最好的一個作爲填補的屬性值。這是以約簡爲目的的數據補齊方法,能夠得到好的約簡結果;但是,當數據量很大或者遺漏的屬性值較多時,其計算的代價很大。另一種稱爲條件組合完整化方法(Conditional Combinatorial Complete),填補遺漏屬性值的原則是一樣的,不同的只是從決策相同的對象中嘗試所有的屬性值的可能情況,而不是根據信息表中所有對象進行嘗試。條件組合完整化方法能夠在一定程度上減小組合完整化方法的代價。在信息表包含不完整數據較多的情況下,可能的測試方案將巨增。

(8) 迴歸(Regression)


基於完整的數據集,建立迴歸方程(模型)。對於包含空值的對象,將已知屬性值代入方程來估計未知屬性值,以此估計值來進行填充。當變量不是線性相關或預測變量高度相關時會導致有偏差的估計。

(9) 極大似然估計(Max Likelihood ,ML)


在缺失類型爲隨機缺失的條件下,假設模型對於完整的樣本是正確的,那麼通過觀測數據的邊際分佈可以對未知參數進行極大似然估計(Little and Rubin)。這種方法也被稱爲忽略缺失值的極大似然估計,對於極大似然的參數估計實際中常採用的計算方法是期望值最大化(Expectation Maximization,EM)。該方法比刪除個案和單值插補更有吸引力,它一個重要前提:適用於大樣本。有效樣本的數量足夠以保證ML估計值是漸近無偏的並服從正態分佈。但是這種方法可能會陷入局部極值,收斂速度也不是很快,並且計算很複雜。

(10) 多重插補(Multiple Imputation,MI)


多值插補的思想來源於貝葉斯估計,認爲待插補的值是隨機的,它的值來自於已觀測到的值。具體實踐上通常是估計出待插補的值,然後再加上不同的噪聲,形成多組可選插補值。根據某種選擇依據,選取最合適的插補值。多重插補方法分爲三個步驟:①爲每個空值產生一套可能的插補值,這些值反映了無響應模型的不確定性;每個值都可以被用來插補數據集中的缺失值,產生若干個完整數據集合。②每個插補數據集合都用針對完整數據集的統計方法進行統計分析。③對來自各個插補數據集的結果,根據評分函數進行選擇,產生最終的插補值。 
多重插補和貝葉斯估計的思想是一致的,但是多重插補彌補了貝葉斯估計的幾個不足。第一,貝葉斯估計以極大似然的方法估計,極大似然的方法要求模型的形式必須準確,如果參數形式不正確,將得到錯誤得結論,即先驗分佈將影響後驗分佈的準確性。而多重插補所依據的是大樣本漸近完整的數據的理論,在數據挖掘中的數據量都很大,先驗分佈將極小的影響結果,所以先驗分佈的對結果的影響不大。第二,貝葉斯估計僅要求知道未知參數的先驗分佈,沒有利用與參數的關係。而多重插補對參數的聯合分佈作出了估計,利用了參數間的相互關係。 
同時,多重插補保持了單一插補的兩個基本優點,即應用完全數據分析方法和融合數據收集者知識的能力。相對於單一插補,多重插補有三個極其重要的優點:第一,爲表現數據分佈,隨機抽取進行插補,增加了估計的有效性。第二,當多重插補是在某個模型下的隨機抽樣時,按一種直接方式簡單融合完全數據推斷得出有效推斷,即它反映了在該模型下由缺失值導致的附加變異。第三,在多個模型下通過隨機抽取進行插補,簡單地應用完全數據方法,可以對無回答的不同模型下推斷的敏感性進行直接研究。 
多重插補也有以下缺點:①生成多重插補比單一插補需要更多工作;②貯存多重插補數據集需要更多存儲空間;③分析多重插補數據集比單一插補需要花費更多精力。

3. 不處理


直接在包含空值的數據上進行數據挖掘。這類方法包括貝葉斯網絡和人工神經網絡等。 
貝葉斯網絡是用來表示變量間連接概率的圖形模式,它提供了一種自然的表示因果信息的方法,用來發現數據間的潛在關係。在這個網絡中,用節點表示變量,有向邊表示變量間的依賴關係。貝葉斯網絡僅適合於對領域知識具有一定了解的情況,至少對變量間的依賴關係較清楚的情況。否則直接從數據中學習貝葉斯網的結構不但複雜性較高(隨着變量的增加,指數級增加),網絡維護代價昂貴,而且它的估計參數較多,爲系統帶來了高方差,影響了它的預測精度。當在任何一個對象中的缺失值數量很大時,存在指數爆炸的危險。 
人工神經網絡可以有效的對付空值,但人工神經網絡在這方面的研究還有待進一步深入展開。人工神經網絡方法在數據挖掘應用中的侷限性

4. 總結


部分方法的優缺點及適用環境如下: 
 
以上插補方法,對於缺失值的類型爲隨機缺失的插補有很好的效果。兩種均值插補方法是最容易實現的,也是以前人們經常使用的,但是它對樣本存在極大的干擾,尤其是當插補後的值作爲解釋變量進行迴歸時,參數的估計值與真實值的偏差很大。相比較而言,極大似然估計和多重插補是兩種比較好的插補方法,與多重插補對比,極大似然缺少不確定成分,所以越來越多的人傾向於使用多值插補方法。

5. 參考文獻


https://www.researchgate.net/profile/Chi_Seng_Pun/publication/311399915_Research_on_Multivariate_Statistical_Analysis_with_Missing_Data_in_Chinese/links/58443f2a08ae61f75dd67d67/Research-on-Multivariate-Statistical-Analysis-with-Missing-Data-in-Chinese.pdf 
http://www.wenhuaxuan.com/shujuchuli/2013-09-27/7019.html 
https://www.amazon.com/Flexible-Imputation-Missing-Interdisciplinary-Statistics/dp/1439868247
本文爲轉載文章,原文地址:
原文鏈接:https://blog.csdn.net/w352986331qq/article/details/78639233

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章