⑴ 數據分析中的缺失值處理
數據分析中的缺失值處理
沒有高質量的數據,就沒有高質量的數據挖掘結果,數據值缺失是數據分析中經常遇到的問題之一。當缺失比例很小時,可直接對缺失記錄進行舍棄或進行手工處理。但在實際數據中,往往缺失數據佔有相當的比重。這時如果手工處理非常低效,如果舍棄缺失記錄,則會丟失大量信息,使不完全觀測數據與完全觀測數據間產生系統差異,對這樣的數據進行分析,你很可能會得出錯誤的結論。
造成數據缺失的原因
現實世界中的數據異常雜亂,屬性值缺失的情況經常發全甚至是不可避免的。造成數據缺失的原因是多方面的:
信息暫時無法獲取。例如在醫療資料庫中,並非所有病人的所有臨床檢驗結果都能在給定的時間內得到,就致使一部分屬性值空缺出來。
信息被遺漏。可能是因為輸入時認為不重要、忘記填寫了或對數據理解錯誤而遺漏,也可能是由於數據採集設備的故障、存儲介質的故障、傳輸媒體的故障、一些人為因素等原因而丟失。
有些對象的某個或某些屬性是不可用的。如一個未婚者的配偶姓名、一個兒童的固定收入狀況等。
有些信息(被認為)是不重要的。如一個屬性的取值與給定語境是無關。
獲取這些信息的代價太大。
系統實時性能要求較高。即要求得到這些信息前迅速做出判斷或決策。
對缺失值的處理要具體問題具體分析,為什麼要具體問題具體分析呢?因為屬性缺失有時並不意味著數據缺失,缺失本身是包含信息的,所以需要根據不同應用場景下缺失值可能包含的信息進行合理填充。下面通過一些例子來說明如何具體問題具體分析,仁者見仁智者見智,僅供參考:
「年收入」:商品推薦場景下填充平均值,借貸額度場景下填充最小值;
「行為時間點」:填充眾數;
「價格」:商品推薦場景下填充最小值,商品匹配場景下填充平均值;
「人體壽命」:保險費用估計場景下填充最大值,人口估計場景下填充平均值;
「駕齡」:沒有填寫這一項的用戶可能是沒有車,為它填充為0較為合理;
」本科畢業時間」:沒有填寫這一項的用戶可能是沒有上大學,為它填充正無窮比較合理;
「婚姻狀態」:沒有填寫這一項的用戶可能對自己的隱私比較敏感,應單獨設為一個分類,如已婚1、未婚0、未填-1。
缺失的類型
在對缺失數據進行處理前,了解數據缺失的機制和形式是十分必要的。將數據集中不含缺失值的變數稱為完全變數,數據集中含有缺失值的變數稱為不完全變數。從缺失的分布來將缺失可以分為完全隨機缺失,隨機缺失和完全非隨機缺失。
完全隨機缺失(missing completely at random,MCAR):指的是數據的缺失是完全隨機的,不依賴於任何不完全變數或完全變數,不影響樣本的無偏性。如家庭地址缺失。
隨機缺失(missing at random,MAR):指的是數據的缺失不是完全隨機的,即該類數據的缺失依賴於其他完全變數。例如財務數據缺失情況與企業的大小有關。
非隨機缺失(missing not at random,MNAR):指的是數據的缺失與不完全變數自身的取值有關。如高收入人群的不原意提供家庭收入。
對於隨機缺失和非隨機缺失,刪除記錄是不合適的,隨機缺失可以通過已知變數對缺失值進行估計;而非隨機缺失還沒有很好的解決辦法。
說明:對於分類問題,可以分析缺失的樣本中,類別之間的比例和整體數據集中,類別的比例
缺失值處理的必要性
數據缺失在許多研究領域都是一個復雜的問題。對數據挖掘來說,預設值的存在,造成了以下影響:
系統丟失了大量的有用信息;
系統中所表現出的不確定性更加顯著,系統中蘊涵的確定性成分更難把握;
包含空值的數據會使挖掘過程陷入混亂,導致不可靠的輸出。
數據挖掘演算法本身更致力於避免數據過分擬合所建的模型,這一特性使得它難以通過自身的演算法去很好地處理不完整數據。因此,預設值需要通過專門的方法進行推導、填充等,以減少數據挖掘演算法與實際應用之間的差距。
缺失值處理方法的分析與比較
處理不完整數據集的方法主要有三大類:刪除元組、數據補齊、不處理。
刪除元組
也就是將存在遺漏信息屬性值的對象(元組,記錄)刪除,從而得到一個完備的信息表。這種方法簡單易行,在對象有多個屬性缺失值、被刪除的含缺失值的對象與初始數據集的數據量相比非常小的情況下非常有效,類標號缺失時通常使用該方法。
然而,這種方法卻有很大的局限性。它以減少歷史數據來換取信息的完備,會丟棄大量隱藏在這些對象中的信息。在初始數據集包含的對象很少的情況下,刪除少量對象足以嚴重影響信息的客觀性和結果的正確性;因此,當缺失數據所佔比例較大,特別當遺漏數據非隨機分布時,這種方法可能導致數據發生偏離,從而引出錯誤的結論。
說明:刪除元組,或者直接刪除該列特徵,有時候會導致性能下降。
數據補齊
這類方法是用一定的值去填充空值,從而使信息表完備化。通常基於統計學原理,根據初始數據集中其餘對象取值的分布情況來對一個缺失值進行填充。數據挖掘中常用的有以下幾種補齊方法:
人工填寫(filling manually)
由於最了解數據的還是用戶自己,因此這個方法產生數據偏離最小,可能是填充效果最好的一種。然而一般來說,該方法很費時,當數據規模很大、空值很多的時候,該方法是不可行的。
特殊值填充(Treating Missing Attribute values as Special values)
將空值作為一種特殊的屬性值來處理,它不同於其他的任何屬性值。如所有的空值都用「unknown」填充。這樣將形成另一個有趣的概念,可能導致嚴重的數據偏離,一般不推薦使用。
平均值填充(Mean/Mode Completer)
將初始數據集中的屬性分為數值屬性和非數值屬性來分別進行處理。
如果空值是數值型的,就根據該屬性在其他所有對象的取值的平均值來填充該缺失的屬性值;
如果空值是非數值型的,就根據統計學中的眾數原理,用該屬性在其他所有對象的取值次數最多的值(即出現頻率最高的值)來補齊該缺失的屬性值。與其相似的另一種方法叫條件平均值填充法(Conditional Mean Completer)。在該方法中,用於求平均的值並不是從數據集的所有對象中取,而是從與該對象具有相同決策屬性值的對象中取得。
這兩種數據的補齊方法,其基本的出發點都是一樣的,以最大概率可能的取值來補充缺失的屬性值,只是在具體方法上有一點不同。與其他方法相比,它是用現存數據的多數信息來推測缺失值。
熱卡填充(Hot deck imputation,或就近補齊)
對於一個包含空值的對象,熱卡填充法在完整數據中找到一個與它最相似的對象,然後用這個相似對象的值來進行填充。不同的問題可能會選用不同的標准來對相似進行判定。該方法概念上很簡單,且利用了數據間的關系來進行空值估計。這個方法的缺點在於難以定義相似標准,主觀因素較多。
K最近距離鄰法(K-means clustering)
先根據歐式距離或相關分析來確定距離具有缺失數據樣本最近的K個樣本,將這K個值加權平均來估計該樣本的缺失數據。
使用所有可能的值填充(Assigning All Possible values of the Attribute)
用空缺屬性值的所有可能的屬性取值來填充,能夠得到較好的補齊效果。但是,當數據量很大或者遺漏的屬性值較多時,其計算的代價很大,可能的測試方案很多。
組合完整化方法(Combinatorial Completer)
用空缺屬性值的所有可能的屬性取值來試,並從最終屬性的約簡結果中選擇最好的一個作為填補的屬性值。這是以約簡為目的的數據補齊方法,能夠得到好的約簡結果;但是,當數據量很大或者遺漏的屬性值較多時,其計算的代價很大。
回歸(Regression)
基於完整的數據集,建立回歸方程。對於包含空值的對象,將已知屬性值代入方程來估計未知屬性值,以此估計值來進行填充。當變數不是線性相關時會導致有偏差的估計。
期望值最大化方法(Expectation maximization,EM)
EM演算法是一種在不完全數據情況下計算極大似然估計或者後驗分布的迭代演算法。在每一迭代循環過程中交替執行兩個步驟:E步(Excepctaion step,期望步),在給定完全數據和前一次迭代所得到的參數估計的情況下計算完全數據對應的對數似然函數的條件期望;M步(Maximzation step,極大化步),用極大化對數似然函數以確定參數的值,並用於下步的迭代。演算法在E步和M步之間不斷迭代直至收斂,即兩次迭代之間的參數變化小於一個預先給定的閾值時結束。該方法可能會陷入局部極值,收斂速度也不是很快,並且計算很復雜。
多重填補(Multiple Imputation,MI)
多重填補方法分為三個步驟:
為每個空值產生一套可能的填補值,這些值反映了無響應模型的不確定性;每個值都被用來填補數據集中的缺失值,產生若干個完整數據集合。
每個填補數據集合都用針對完整數據集的統計方法進行統計分析。
對來自各個填補數據集的結果進行綜合,產生最終的統計推斷,這一推斷考慮到了由於數據填補而產生的不確定性。該方法將空缺值視為隨機樣本,這樣計算出來的統計推斷可能受到空缺值的不確定性的影響。該方法的計算也很復雜。
C4.5方法
通過尋找屬性間的關系來對遺失值填充。它尋找之間具有最大相關性的兩個屬性,其中沒有遺失值的一個稱為代理屬性,另一個稱為原始屬性,用代理屬性決定原始屬性中的遺失值。這種基於規則歸納的方法只能處理基數較小的名詞型屬性。
就幾種基於統計的方法而言,刪除元組法和平均值法差於熱卡填充法、期望值最大化方法和多重填充法;回歸是比較好的一種方法,但仍比不上hot deck和EM;EM缺少MI包含的不確定成分。值得注意的是,這些方法直接處理的是模型參數的估計而不是空缺值預測本身。它們合適於處理無監督學習的問題,而對有監督學習來說,情況就不盡相同了。譬如,你可以刪除包含空值的對象用完整的數據集來進行訓練,但預測時你卻不能忽略包含空值的對象。另外,C4.5和使用所有可能的值填充方法也有較好的補齊效果,人工填寫和特殊值填充則是一般不推薦使用的。
不處理
補齊處理只是將未知值補以我們的主觀估計值,不一定完全符合客觀事實,在對不完備信息進行補齊處理的同時,我們或多或少地改變了原始的信息系統。而且,對空值不正確的填充往往將新的雜訊引入數據中,使挖掘任務產生錯誤的結果。因此,在許多情況下,我們還是希望在保持原始信息不發生變化的前提下對信息系統進行處理。
不處理缺失值,直接在包含空值的數據上進行數據挖掘的方法包括貝葉斯網路和人工神經網路等。
貝葉斯網路提供了一種自然的表示變數間因果信息的方法,用來發現數據間的潛在關系。在這個網路中,用節點表示變數,有向邊表示變數間的依賴關系。貝葉斯網路僅適合於對領域知識具有一定了解的情況,至少對變數間的依賴關系較清楚的情況。否則直接從數據中學習貝葉斯網的結構不但復雜性較高(隨著變數的增加,指數級增加),網路維護代價昂貴,而且它的估計參數較多,為系統帶來了高方差,影響了它的預測精度。
人工神經網路可以有效的對付缺失值,但人工神經網路在這方面的研究還有待進一步深入展開。
知乎上的一種方案:
4.把變數映射到高維空間。比如性別,有男、女、缺失三種情況,則映射成3個變數:是否男、是否女、是否缺失。連續型變數也可以這樣處理。比如Google、網路的CTR預估模型,預處理時會把所有變數都這樣處理,達到幾億維。這樣做的好處是完整保留了原始數據的全部信息、不用考慮缺失值、不用考慮線性不可分之類的問題。缺點是計算量大大提升。
而且只有在樣本量非常大的時候效果才好,否則會因為過於稀疏,效果很差。
總結
大多數數據挖掘系統都是在數據挖掘之前的數據預處理階段採用第一、第二類方法來對空缺數據進行處理。並不存在一種處理空值的方法可以適合於任何問題。無論哪種方式填充,都無法避免主觀因素對原系統的影響,並且在空值過多的情形下將系統完備化是不可行的。從理論上來說,貝葉斯考慮了一切,但是只有當數據集較小或滿足某些條件(如多元正態分布)時完全貝葉斯分析才是可行的。而現階段人工神經網路方法在數據挖掘中的應用仍很有限。值得一提的是,採用不精確信息處理數據的不完備性已得到了廣泛的研究。不完備數據的表達方法所依據的理論主要有可信度理論、概率論、模糊集合論、可能性理論,D-S的證據理論等。
⑵ 數據缺失值的4種處理方法
缺失值的處理方法
對於缺失值的處理,從總體上來說分為刪除存在缺失值的個案和缺失值插補。對於主觀數據,人將影響數據的真實性,存在缺失值的樣本的其他屬性的真實值不能保證,那麼依賴於這些屬性值的插補也是不可靠的,所以對於主觀數據一般不推薦插補的方法。插補主要是針對客觀數據,它的可靠性有保證。
1、刪除含有缺失值的個案
主要有簡單刪除法和權重法。簡單刪除法是對缺失值進行處理的最原始方法。它將存在缺失值的個案刪除。如果數據缺失問題可以通過簡單的刪除小部分樣本來達到目標,那麼這個方法是最有效的。當缺失值的類型為非完全隨機缺失的時候,可以通過對完整的數據加權來減小偏差。把數據不完全的個案標記後,將完整的數據個案賦予不同的權重,個案的權重可以通過logistic或probit回歸求得。如果解釋變數中存在對權重估計起決定行因素的變數,那麼這種方法可以有效減小偏差。如果解釋變數和權重並不相關,它並不能減小偏差。對於存在多個屬性缺失的情況,就需要對不同屬性的缺失組合賦不同的權重,這將大大增加計算的難度,降低預測的准確性,這時權重法並不理想。
2、可能值插補缺失值
它的思想來源是以最可能的值來插補缺失值比全部刪除不完全樣本所產生的信息丟失要少。在數據挖掘中,面對的通常是大型的資料庫,它的屬性有幾十個甚至幾百個,因為一個屬性值的缺失而放棄大量的其他屬性值,這種刪除是對信息的極大浪費,所以產生了以可能值對缺失值進行插補的思想與方法。
⑶ 幾種常見的缺失數據插補方法
(一)個案剔除法(Listwise Deletion)
最常見、最簡單的處理缺失數據的方法是用個案剔除法(listwise
deletion),也是很多統計軟體(如SPSS和SAS)默認的缺失值處理方法。在這種方法中如果任何一個變數含有缺失數據的話,就把相對應的個案從分析中剔除。如果缺失值所佔比例比較小的話,這一方法十分有效。至於具體多大的缺失比例算是「小」比例,專家們意見也存在較大的差距。有學者認為應在5%以下,也有學者認為20%以下即可。然而,這種方法卻有很大的局限性。它是以減少樣本量來換取信息的完備,會造成資源的大量浪費,丟棄了大量隱藏在這些對象中的信息。在樣本量較小的情況下,刪除少量對象就足以嚴重影響到數據的客觀性和結果的正確性。因此,當缺失數據所佔比例較大,特別是當缺數據非隨機分布時,這種方法可能導致數據發生偏離,從而得出錯誤的結論。
(二)均值替換法(Mean Imputation)
在變數十分重要而所缺失的數據量又較為龐大的時候,個案剔除法就遇到了困難,因為許多有用的數據也同時被剔除。圍繞著這一問題,研究者嘗試了各種各樣的辦法。其中的一個方法是均值替換法(mean
imputation)。我們將變數的屬性分為數值型和非數值型來分別進行處理。如果缺失值是數值型的,就根據該變數在其他所有對象的取值的平均值來填充該缺失的變數值;如果缺失值是非數值型的,就根據統計學中的眾數原理,用該變數在其他所有對象的取值次數最多的值來補齊該缺失的變數值。但這種方法會產生有偏估計,所以並不被推崇。均值替換法也是一種簡便、快速的缺失數據處理方法。使用均值替換法插補缺失數據,對該變數的均值估計不會產生影響。但這種方法是建立在完全隨機缺失(MCAR)的假設之上的,而且會造成變數的方差和標准差變小。
(三)熱卡填充法(Hotdecking)
對於一個包含缺失值的變數,熱卡填充法在資料庫中找到一個與它最相似的對象,然後用這個相似對象的值來進行填充。不同的問題可能會選用不同的標准來對相似進行判定。最常見的是使用相關系數矩陣來確定哪個變數(如變數Y)與缺失值所在變數(如變數X)最相關。然後把所有個案按Y的取值大小進行排序。那麼變數X的缺失值就可以用排在缺失值前的那個個案的數據來代替了。與均值替換法相比,利用熱卡填充法插補數據後,其變數的標准差與插補前比較接近。但在回歸方程中,使用熱卡填充法容易使得回歸方程的誤差增大,參數估計變得不穩定,而且這種方法使用不便,比較耗時。
(四)回歸替換法(Regression Imputation)
回歸替換法首先需要選擇若干個預測缺失值的自變數,然後建立回歸方程估計缺失值,即用缺失數據的條件期望值對缺失值進行替換。與前述幾種插補方法比較,該方法利用了資料庫中盡量多的信息,而且一些統計軟體(如Stata)也已經能夠直接執行該功能。但該方法也有諸多弊端,第一,這雖然是一個無偏估計,但是卻容易忽視隨機誤差,低估標准差和其他未知性質的測量值,而且這一問題會隨著缺失信息的增多而變得更加嚴重。第二,研究者必須假設存在缺失值所在的變數與其他變數存在線性關系,很多時候這種關系是不存在的。
(五)多重替代法(Multiple Imputation)
多重估算是由Rubin等人於1987年建立起來的一種數據擴充和統計分析方法,作為簡單估算的改進產物。首先,多重估算技術用一系列可能的值來替換每一個缺失值,以反映被替換的缺失數據的不確定性。然後,用標準的統計分析過程對多次替換後產生的若干個數據集進行分析。最後,把來自於各個數據集的統計結果進行綜合,得到總體參數的估計值。由於多重估算技術並不是用單一的值來替換缺失值,而是試圖產生缺失值的一個隨機樣本,這種方法反映出了由於數據缺失而導致的不確定性,能夠產生更加有效的統計推斷。結合這種方法,研究者可以比較容易地,在不舍棄任何數據的情況下對缺失數據的未知性質進行推斷。NORM統計軟體可以較為簡便地操作該方法
⑷ 數據分析中缺失值的處理
數據缺失在許多研究領域都是一個復雜的問題,對數據挖掘來說,缺失值的存在,造成了以下影響:
1.系統丟失了大量的有用信息
2.系統中所表現出的不確定性更加顯著,系統中蘊涵的確定性成分更難把握
3.包含空值的數據會使挖掘過程陷入混亂,導致不可靠的輸出
數據挖掘演算法本身更致力於避免數據過分擬合所建的模型,這一特性使得它難以通過自身的演算法去很好地處理不完整數據。因此,缺失值需要通過專門的方法進行推導、填充等,以減少數據挖掘演算法與實際應用之間的差距。
1.列表顯示缺失值 mice包 md.pattern( )
2.圖形探究缺失值 VIM包
3.用相關性探索缺失值
1.人工填寫
由於最了解數據的還是用戶自己,因此這個方法產生數據偏離最小,可能是填充效果最好的一種。然而一般來說,該方法很費時,當數據規模很大、空值很多的時候,該方法是不可行的。
2.特殊值填充
將空值作為一種特殊的屬性值來處理,它不同於其他的任何屬性值。如所有的空值都用「unknown」填充。這樣將形成另一個有趣的概念,可能導致嚴重的數據偏離,一般不推薦使用。
3.平均值填充
將信息表中的屬性分為數值屬性和非數值屬性來分別進行處理。如果空值是數值型的,就根據該屬性在其他所有對象的取值的平均值來填充該缺失的屬性值;如果空值是非數值型的,就根據統計學中的眾數原理,用該屬性在其他所有對象的取值次數最多的值(即出現頻率最高的值)來補齊該缺失的屬性值。另外有一種與其相似的方法叫條件平均值填充法(Conditional Mean Completer)。在該方法中,缺失屬性值的補齊同樣是靠該屬性在其他對象中的取值求平均得到,但不同的是用於求平均的值並不是從信息表所有對象中取,而是從與該對象具有相同決策屬性值的對象中取得。這兩種數據的補齊方法,其基本的出發點都是一樣的,以最大概率可能的取值來補充缺失的屬性值,只是在具體方法上有一點不同。與其他方法相比,它是用現存數據的多數信息來推測缺失值。
4.熱卡填充
對於一個包含空值的對象,熱卡填充法在完整數據中找到一個與它最相似的對象,然後用這個相似對象的值來進行填充。不同的問題可能會選用不同的標准來對相似進行判定。該方法概念上很簡單,且利用了數據間的關系來進行空值估計。這個方法的缺點在於難以定義相似標准,主觀因素較多。
5.K最近距離鄰法
先根據歐式距離或相關分析來確定距離具有缺失數據樣本最近的K個樣本,將這K個值加權平均來估計該樣本的缺失數據。
同均值插補的方法都屬於單值插補,不同的是,它用層次聚類模型預測缺失變數的類型,再以該類型的均值插補。假設X=(X1,X2…Xp)為信息完全的變數,Y為存在缺失值的變數,那麼首先對X或其子集行聚類,然後按缺失個案所屬類來插補不同類的均值。如果在以後統計分析中還需以引入的解釋變數和Y做分析,那麼這種插補方法將在模型中引入自相關,給分析造成障礙。
6.使用所有可能的值填充
用空缺屬性值的所有可能的屬性取值來填充,能夠得到較好的補齊效果。但是,當數據量很大或者遺漏的屬性值較多時,其計算的代價很大,可能的測試方案很多。
7.組合完整化方法
用空缺屬性值的所有可能的屬性取值來試,並從最終屬性的約簡結果中選擇最好的一個作為填補的屬性值。這是以約簡為目的的數據補齊方法,能夠得到好的約簡結果;但是,當數據量很大或者遺漏的屬性值較多時,其計算的代價很大。
8.回歸
基於完整的數據集,建立回歸方程(模型)。對於包含空值的對象,將已知屬性值代入方程來估計未知屬性值,以此估計值來進行填充,當變數不是線性相關或預測變數高度相關時會導致有偏差的估計(SPSS菜單里有這種方法)
9.期望值最大化方法
EM演算法是一種在不完全數據情況下計算極大似然估計或者後驗分布的迭代演算法。在每一迭代循環過程中交替執行兩個步驟:E步(Excepctaion step,期望步),在給定完全數據和前一次迭代所得到的參數估計的情況下計算完全數據對應的對數似然函數的條件期望;M步(Maximzation step,極大化步),用極大化對數似然函數以確定參數的值,並用於下步的迭代。演算法在E步和M步之間不斷迭代直至收斂,即兩次迭代之間的參數變化小於一個預先給定的閾值時結束。該方法可能會陷入局部極值,收斂速度也不是很快,並且計算很復雜。(SPSS菜單里有這種方法)
10.1多重插補原理
多值插補的思想來源於貝葉斯估計,認為待插補的值是隨機的,它的值來自於已觀測到的值。具體實踐上通常是估計出待插補的值,然後再加上不同的雜訊,形成多組可選插補值。根據某種選擇依據,選取最合適的插補值。
10.2多重填補在SPSS中的實現
10.2.1缺失模式分析
分析>多重歸因>分析模式
10.2.2缺失值的多重填充
分析>多重歸因>歸因缺失數據值
10.2.3採用填充後的數據建模
10.3多重填補在R中的實現(基於mice包)
實例:
11.C4.5方法
通過尋找屬性間的關系來對遺失值填充。它尋找之間具有最大相關性的兩個屬性,其中沒有遺失值的一個稱為代理屬性,另一個稱為原始屬性,用代理屬性決定原始屬性中的遺失值。這種基於規則歸納的方法只能處理基數較小的名詞型屬性。
就幾種基於統計的方法而言,刪除元組法和平均值填充法差於熱卡填充法、期望值最大化方法和多重填充法;回歸是比較好的一種方法,但仍比不上熱卡填充和期望值最大化方法;期望值最大化方法缺少多重填補包含的不確定成分。值得注意的是,這些方法直接處理的是模型參數的估計而不是空缺值預測本身。它們合適於處理無監督學習的問題,而對有監督學習來說,情況就不盡相同了。譬如,你可以刪除包含空值的對象用完整的數據集來進行訓練,但預測時你卻不能忽略包含空值的對象。另外,C4.5和使用所有可能的值填充方法也有較好的補齊效果,人工填寫和特殊值填充則是一般不推薦使用的。
補齊處理只是將未知值補以我們的主觀估計值,不一定完全符合客觀事實,在對不完備信息進行補齊處理的同時,我們或多或少地改變了原始的信息系統。而且,對空值不正確的填充往往將新的雜訊引入數據中,使挖掘任務產生錯誤的結果。因此,在許多情況下,我們還是希望在保持原始信息不發生變化的前提下對信息系統進行處理。
直接在包含空值的數據上進行數據挖掘,這類方法包括貝葉斯網路和人工神經網路等。
貝葉斯網路是用來表示變數間連接概率的圖形模式,它提供了一種自然的表示因果信息的方法,用來發現數據間的潛在關系。在這個網路中,用節點表示變數,有向邊表示變數間的依賴關系。貝葉斯網路僅適合於對領域知識具有一定了解的情況,至少對變數間的依賴關系較清楚的情況。否則直接從數據中學習貝葉斯網的結構不但復雜性較高(隨著變數的增加,指數級增加),網路維護代價昂貴,而且它的估計參數較多,為系統帶來了高方差,影響了它的預測精度。當在任何一個對象中的缺失值數量很大時,存在指數爆炸的危險。人工神經網路可以有效的對付空值,但人工神經網路在這方面的研究還有待進一步深入展開。人工神經網路方法在數據挖掘應用中的局限性。
多數統計方法都假設輸入數據是完整的且不包含缺失值,但現實生活中大多數數據集都包含了缺失值。因此,在進行下一步分析前,你要麼刪除,要麼用合理的數值代理它們,SPSS、R、Python、SAS等統計軟體都會提供一些默認的處理缺失值方法,但這些方法可能不是最優的,因此,學習各種各樣的方法和他們的分支就顯得非常重要。Little和Rubin的《Sstatistical Analysis With Missing Data 》是缺失值領域里經典的讀本,值得一看。
⑸ 如何處理數據中的缺失值
一、常用方法 1. 刪除
最簡單的方法是刪除,刪除屬性或者刪除樣本。如果大部分樣本該屬性都缺失,這個屬性能提供的信息有限,可以選擇放棄使用該維屬性;如果一個樣本大部分屬性缺失,可以選擇放棄該樣本。雖然這種方法簡單,但只適用於數據集中缺失較少的情況。
2. 統計填充
對於缺失值的屬性,尤其是數值類型的屬性,根據所有樣本關於這維屬性的統計值對其進行填充,如使用平均數、中位數、眾數、最大值、最小值等,具體選擇哪種統計值需要具體問題具體分析。另外,如果有可用類別信息,還可以進行類內統計,比如身高,男性和女性的統計填充應該是不同的。
3. 統一填充
對於含缺失值的屬性,把所有缺失值統一填充為自定義值,如何選擇自定義值也需要具體問題具體分析。當然,如果有可用類別信息,也可以為不同類別分別進行統一填充。常用的統一填充值有:「空」、「0」、「正無窮」、「負無窮」等。
4. 預測填充
我們可以通過預測模型利用不存在缺失值的屬性來預測缺失值,也就是先用預測模型把數據填充後再做進一步的工作,如統計、學習等。雖然這種方法比較復雜,但是最後得到的結果比較好。
二、具體分析
上面兩次提到具體問題具體分析,為什麼要具體問題具體分析呢?因為屬性缺失有時並不意味著數據缺失,缺失本身是包含信息的,所以需要根據不同應用場景下缺失值可能包含的信息進行合理填充。下面通過一些例子來說明如何具體問題具體分析,仁者見仁智者見智,僅供參考:
「年收入」:商品推薦場景下填充平均值,借貸額度場景下填充最小值; 「行為時間點」:填充眾數; 「價格」:商品推薦場景下填充最小值,商品匹配場景下填充平均值; 「人體壽命」:保險費用估計場景下填充最大值,人口估計場景下填充平均值; 「駕齡」:沒有填寫這一項的用戶可能是沒有車,為它填充為0較為合理; 」本科畢業時間」:沒有填寫這一項的用戶可能是沒有上大學,為它填充正無窮比較合理; 「婚姻狀態」:沒有填寫這一項的用戶可能對自己的隱私比較敏感,應單獨設為一個分類,如已婚1、未婚0、未填-1。
⑹ 幾種常見的缺失數據插補方法
()案剔除(Listwise
Deletion)
見、簡單處理缺失數據用案剔除(listwise
deletion)統計軟體(SPSSSAS)默認缺失值處理種任何變數含缺失數據相應案析剔除缺失值所佔比例比較十效至於具體缺失比例算比例專家意見存較差距者認應5%者認20%即種卻局限性減少本量換取信息完備造資源量浪費丟棄量隱藏些象信息本量較情況刪除少量象足嚴重影響數據客觀性結確性缺失數據所佔比例較特別缺數據非隨機布種能導致數據發偏離錯誤結論
(二)均值替換(Mean
Imputation)
變數十重要所缺失數據量較龐候案剔除遇困難許用數據同剔除圍繞著問題研究者嘗試各種各辦其均值替換(mean
imputation)我變數屬性數值型非數值型別進行處理缺失值數值型根據該變數其所象取值平均值填充該缺失變數值;缺失值非數值型根據統計眾數原理用該變數其所象取值數值補齊該缺失變數值種產偏估計所並推崇均值替換種簡便、快速缺失數據處理使用均值替換插補缺失數據該變數均值估計產影響種建立完全隨機缺失(MCAR)假設且造變數差標准差變
(三)熱卡填充(Hotdecking)
於包含缺失值變數熱卡填充資料庫找與相似象用相似象值進行填充同問題能選用同標准相似進行判定見使用相關系數矩陣確定哪變數(變數Y)與缺失值所變數(變數X)相關所案按Y取值進行排序變數X缺失值用排缺失值前案數據代替與均值替換相比利用熱卡填充插補數據其變數標准差與插補前比較接近歸程使用熱卡填充容易使歸程誤差增參數估計變穩定且種使用便比較耗
(四)歸替換(Regression
Imputation)
歸替換首先需要選擇若干預測缺失值自變數建立歸程估計缺失值即用缺失數據條件期望值缺失值進行替換與前述幾種插補比較該利用資料庫盡量信息且些統計軟體(Stata)已經能夠直接執行該功能該諸弊端第雖偏估計卻容易忽視隨機誤差低估標准差其未知性質測量值且問題隨著缺失信息增變更加嚴重第二研究者必須假設存缺失值所變數與其變數存線性關系候種關系存
(五)重替代(Multiple
Imputation)
重估算由Rubin等於1987建立起種數據擴充統計析作簡單估算改進產物首先重估算技術用系列能值替換每缺失值反映替換缺失數據確定性用標准統計析程替換產若干數據集進行析自於各數據集統計結進行綜合總體參數估計值由於重估算技術並用單值替換缺失值試圖產缺失值隨機本種反映由於數據缺失導致確定性能夠產更加效統計推斷結合種研究者比較容易舍棄任何數據情況缺失數據未知性質進行推斷NORM統計軟體較簡便操作該
⑺ 數據清理中,處理缺失值的方法有哪些
由於調查、編碼和錄入誤差,數據中可能存在一些無效值和缺失值,需要給予適當的處理。常用的處理方法有:估算,整例刪除,變數刪除和成對刪除。
計算機俗稱電腦,是一種用於高速計算的電子計算機器,可以進行數值計算,又可以進行邏輯計算,還具有存儲記憶功能。是能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。由硬體系統和軟體系統所組成,沒有安裝任何軟體的計算機稱為裸機。
可分為超級計算機、工業控制計算機、網路計算機、個人計算機、嵌入式計算機五類,較先進的計算機有生物計算機、光子計算機、量子計算機、神經網路計算機。蛋白質計算機等。
當今計算機系統的運算速度已達到每秒萬億次,微機也可達每秒幾億次以上,使大量復雜的科學計算問題得以解決。例如:衛星軌道的計算、大型水壩的計算、24小時天氣預報的計算等,過去人工計算需要幾年、幾十年,而現在用計算機只需幾天甚至幾分鍾就可完成。
科學技術的發展特別是尖端科學技術的發展,需要高度精確的計算。計算機控制的導彈之所以能准確地擊中預定的目標,是與計算機的精確計算分不開的。一般計算機可以有十幾位甚至幾十位(二進制)有效數字,計算精度可由千分之幾到百萬分之幾,是任何計算工具所望塵莫及的。
隨著計算機存儲容量的不斷增大,可存儲記憶的信息越來越多。計算機不僅能進行計算,而且能把參加運算的數據、程序以及中間結果和最後結果保存起來,以供用戶隨時調用;還可以對各種信息(如視頻、語言、文字、圖形、圖像、音樂等)通過編碼技術進行算術運算和邏輯運算,甚至進行推理和證明。
計算機內部操作是根據人們事先編好的程序自動控制進行的。用戶根據解題需要,事先設計好運行步驟與程序,計算機十分嚴格地按程序規定的步驟操作,整個過程不需人工干預,自動執行,已達到用戶的預期結果。
超級計算機(supercomputers)通常是指由數百數千甚至更多的處理器(機)組成的、能計算普通PC機和伺服器不能完成的大型復雜課題的計算機。超級計算機是計算機中功能最強、運算速度最快、存儲容量最大的一類計算機,是國家科技發展水平和綜合國力的重要標志。
超級計算機擁有最強的並行計算能力,主要用於科學計算。在氣象、軍事、能源、航天、探礦等領域承擔大規模、高速度的計算任務。
在結構上,雖然超級計算機和伺服器都可能是多處理器系統,二者並無實質區別,但是現代超級計算機較多採用集群系統,更注重浮點運算的性能,可看著是一種專注於科學計算的高性能伺服器,而且價格非常昂貴。
一般的超級計算器耗電量相當大,一秒鍾電費就要上千,超級計算器的CPU至少50核也就是說是家用電腦的10倍左右,處理速度也是相當的快,但是這種CPU是無法購買的,而且價格要上千萬。
⑻ 數據缺失想要補齊有什麼方法,用spss的替換缺失值和缺失值分析完全不會用
1、均值插補。數據的屬性分為定距型和非定距型。如果缺失值是定距型的,就以該屬性存在值的平均值來插補缺失的值;如果缺失值是非定距型的,就根據統計學中的眾數原理,用該屬性的眾數(即出現頻率最高的值)來補齊缺失的值。
2、利用同類均值插補。同均值插補的方法都屬於單值插補,不同的是,它用層次聚類模型預測缺失變數的類型,再以該類型的均值插補。假設X=(X1,X2...Xp)為信息完全的變數,Y為存在缺失值的變數。
那麼首先對X或其子集行聚類,然後按缺失個案所屬類來插補不同類的均值。如果在以後統計分析中還需以引入的解釋變數和Y做分析,那麼這種插補方法將在模型中引入自相關,給分析造成障礙。
3、極大似然估計(Max Likelihood ,ML)。在缺失類型為隨機缺失的條件下,假設模型對於完整的樣本是正確的,那麼通過觀測數據的邊際分布可以對未知參數進行極大似然估計(Little and Rubin)。
這種方法也被稱為忽略缺失值的極大似然估計,對於極大似然的參數估計實際中常採用的計算方法是期望值最大化(Expectation Maximization,EM)。
4、多重插補(Multiple Imputation,MI)。多值插補的思想來源於貝葉斯估計,認為待插補的值是隨機的,它的值來自於已觀測到的值。具體實踐上通常是估計出待插補的值,然後再加上不同的雜訊,形成多組可選插補值。根據某種選擇依據,選取最合適的插補值。
(8)補缺失數據常用的方法擴展閱讀
缺失值產生的原因很多,裝備故障、無法獲取信息、與其他欄位不一致、歷史原因等都可能產生缺失值。一種典型的處理方法是插值,插值之後的數據可看作服從特定概率分布。另外,也可以刪除所有含缺失值的記錄,但這個操作也從側面變動了原始數據的分布特徵。
對於缺失值的處理,從總體上來說分為刪除存在缺失值的個案和缺失值插補。對於主觀數據,人將影響數據的真實性,存在缺失值的樣本的其他屬性的真實值不能保證,那麼依賴於這些屬性值的插補也是不可靠的,所以對於主觀數據一般不推薦插補的方法。插補主要是針對客觀數據,它的可靠性有保證。
⑼ 在線監測儀器缺失數據的處理方法
刪除觀察樣本
2)刪除變數:當某個變數缺失值較多且對研究目標影響不大時,可以將整個變數整體刪除
3)使用完整原始數據分析:當數據存在較多缺失而其原始數據完整時,可以使用原始數據替代現有數據進行分析
4)改變權重:當刪除缺失數據會改變數據結構時,通過對完整數據按照不同的權重進行加權,可以降低刪除缺失數據帶來的偏差
查補法:均值插補、回歸插補、抽樣填補等
成對刪除與改變權重為一類
估算與查補法為一類
2、常用的處理方法有:估算,整例刪除,變數刪除和成對刪除。
由於調查、編碼和錄入誤差,數據中可能存在一些無效值和缺失值,需要給予適當的處理。
估算(estimation)。最簡單的辦法就是用某個變數的樣本均值、中位數或眾數代替無效值和缺失值。這種辦法簡單,但沒有充分考慮數據中已有的信息,誤差可能較大。另一種辦法就是根據調查對象對其他問題的答案,通過變數之間的相關分析或邏輯推論進行估計。例如,某一產品的擁有情況可能與家庭收入有關,可以根據調查對象的家庭收入推算擁有這一產品的可能性。
整例刪除(casewise deletion)是剔除含有缺失值的樣本。由於很多問卷都可能存在缺失值,這種做法的結果可能導致有效樣本量大大減少,無法充分利用已經收集到的數據。因此,只適合關鍵變數缺失,或者含有無效值或缺失值的樣本比重很小的情況。
變數刪除(variable deletion)。如果某一變數的無效值和缺失值很多,而且該變數對於所研究的問題不是特別重要,則可以考慮將該變數刪除。這種做法減少了供分析用的變數數目,但沒有改變樣本量。
成對刪除(pairwise deletion)是用一個特殊碼(通常是9、99、999等)代表無效值和缺失值,同時保留數據集中的全部變數和樣本。但是,在具體計算時只採用有完整答案的樣本,因而不同的分析因涉及的變數不同,其有效樣本量也會有所不同。這是一種保守的處理方法,最大限度地保留了數據集中的可用信息。
採用不同的處理方法可能對分析結果產生影響,尤其是當缺失值的出現並非隨機且變數之間明顯相關時。因此,在調查中應當盡量避免出現無效值和缺失值,保證數據的完整性。
⑽ 數據清理中,處理缺失值的方法有哪些
1.
刪除含有缺失值的個案
2.
可能值插補缺失值
(1)均值插補
(2)利用同類均值插補。
(3)極大似然估計(Max
Likelihood
,ML)
(4)多重插補(Multiple
Imputation,MI)