1. 用平均值、中值、分位數、眾數、隨機值等替代。效果一般,因為等於人為增加了雜訊。
2. 用其他變數做**模型來算出缺失變數。效果比方法1略好。有乙個根本缺陷,如果其他變數和缺失變數無關,則**的結果無意義。如果**結果相當準確,則又說明這個變數是沒必要加入建模的。一般情況下,介於兩者之間。
缺失值處理方法綜述
缺失值是指粗糙資料中由於缺少資訊而造成的資料的聚類、分組、刪失或截斷。它指的是現有資料集中某個或某些屬性的值是不完全的。缺失值的產生的原因多種多樣,主要分為機械原因和人為原因。
機械原因是由於機械原因導致的資料收集或儲存的失敗造成的資料缺失,比如資料儲存的失敗,儲存器損壞,機械故障導致某段時間資料未能收集(對於定時資料採集而言)。
人為原因是由於人的主觀失誤、歷史侷限或有意隱瞞造成的資料缺失,比如,在市場調查中被訪人拒絕透露相關問題的答案,或者回答的問題是無效的,資料錄入人員失誤漏錄了資料。
以下來討論缺失值的一般處理方法:
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. 總結
部分方法的優缺點及適用環境如下:
以上插補方法,對於缺失值的型別為隨機缺失的插補有很好的效果。兩種均值插補方法是最容易實現的,也是以前人們經常使用的,但是它對樣本存在極大的干擾,尤其是當插補後的值作為解釋變數進行回歸時,引數的估計值與真實值的偏差很大。相比較而言,極大似然估計和多重插補是兩種比較好的插補方法,與多重插補對比,極大似然缺少不確定成分,所以越來越多的人傾向於使用多值插補方法。
機器學習缺失值處理方法彙總
缺失值是指粗糙資料中由於缺少資訊而造成的資料的聚類 分組 刪失或截斷。它指的是現有資料集中某個或某些屬性的值是不完全的。缺失值的產生的原因多種多樣,主要分為機械原因和人為原因。機械原因是由於機械原因導致的資料收集或儲存的失敗造成的資料缺失,比如資料儲存的失敗,儲存器損壞,機械故障導致某段時間資料未能...
機器學習缺失值處理方法
機器學習中的模型訓練只是其中的乙個步驟,有好的的資料才能得到好的模型。但是在現實情況下,資料往往是存在一些缺失值的,怎麼取處理這些缺失值,使資料表現更完美也是乙個特別重要的步驟。缺失值是指粗糙資料中由於缺少資訊而造成的資料的聚類 分組 刪失或截斷。它指的是現有資料集中某個或某些屬性的值是不完全的。缺...
機器學習(十三)缺失值處理的處理方法總結
從缺失值的所屬屬性上講,如果所有的缺失值都是同一屬性,那麼這種缺失成為單值缺失,如果缺失值屬於不同的屬性,稱為任意缺失。另外對於時間序列類的資料,可能存在隨著時間的缺失,這種缺失稱為單調缺失。對於缺失值的處理,從總體上來說分為刪除缺失值和缺失值插補。如果在資料集中,只有幾條資料的某幾列中存在缺失值,...