古詩詞大全網 - 成語用法 - 數據分析中缺失值的處理

數據分析中缺失值的處理

數據分析中缺失值的處理

沒有高質量的數據,就不會有高質量的數據挖掘結果,數據值的缺失是數據分析中經常遇到的問題之壹。當缺失比例較小時,缺失記錄可以直接丟棄或手工處理。然而,在實際數據中,往往缺失數據占了相當大的比例。這時候如果手工處理效率很低,如果丟棄缺失記錄,會丟失很多信息,導致不完整觀測數據和完整觀測數據之間存在系統性差異。如果妳分析這樣的數據,妳很可能得出錯誤的結論。

丟失數據的原因

現實世界中的數據非常雜亂,屬性值的缺失往往甚至是不可避免的。數據丟失的原因有很多:

信息暫時不可用。例如,在醫學數據庫中,並不是所有患者的所有臨床檢驗結果都可以在給定時間內得到,這就導致了壹些屬性值為空。

信息缺失。可能是因為輸入時被認為不重要,忘記填寫或對數據理解有誤而被遺漏,也可能是由於數據采集設備、存儲介質、傳輸介質的故障和壹些人為因素而丟失。

某些對象具有壹個或多個不可用的屬性。比如未婚配偶的名字,孩子的固定收入等。

有些信息不重要。例如,屬性的值與給定的上下文無關。

獲取這些信息的成本太高了。

該系統要求高實時性。也就是要求在獲得這些信息之前做出快速的判斷或決定。

缺失值的處理要具體分析,為什麽要具體分析?因為屬性缺失有時不代表數據缺失,缺失本身就包含信息,需要根據不同應用場景下缺失值可能包含的信息進行合理填充。下面舉幾個例子來說明如何分析具體問題。不同的人有不同的看法,僅供參考:

“年收入”:商品推薦場景填平均值,貸款額度場景填最小值;

“行為時間點”:填寫模式;

“價格”:商品推薦場景填寫最小值,商品匹配場景填寫平均值;

“壽命”:在保險費用估計情景中填寫最大值,在人口估計情景中填寫平均值;

“駕駛體驗”:不填此項的用戶可能沒有車,所以填0比較合理;

“本科畢業時間”:沒有填寫此項的用戶可能沒有上過大學,所以用正無窮大填寫更合理;

“婚姻狀況”:不填寫此項的用戶可能對其隱私比較敏感,應單獨設置壹類,如已婚1,未婚0,留空-1。

缺失類型

在處理缺失數據之前,有必要了解數據缺失的機制和形式。數據集中沒有缺失值的變量稱為完全變量,數據集中有缺失值的變量稱為不完全變量。根據刪除的分布,刪除可分為完全隨機刪除、隨機刪除和完全非隨機刪除。

完全隨機缺失(MCAR)是指缺失數據是完全隨機的,不依賴於任何不完全變量或完全變量,不影響樣本的公正性。如果家庭住址不見了。

隨機缺失(Missing at random,MAR):是指數據的缺失不是完全隨機的,即這類數據的缺失依賴於其他完全變量。比如財務數據的缺失,就和企業的規模有關。

missing not random,MNAR):表示缺失的數據與不完全變量本身的值有關。比如高收入人群不願意提供家庭收入。

對於隨機缺失和非隨機缺失,不宜刪除記錄。隨機缺失可以通過已知變量來估計。非隨機刪除沒有好的解決方法。

註:對於分類問題,我們可以分析缺失樣本中類別之間的比例,以及類別在整體數據集中的比例。

缺失價值處理的必要性

數據缺失是許多研究領域中的壹個復雜問題。對於數據挖掘,默認值的存在有以下影響:

系統丟失了很多有用的信息;

系統中表現出來的不確定性更明顯,系統中包含的確定性成分更難把握;

包含空值的數據會混淆挖掘過程,並導致不可靠的輸出。

而數據挖掘算法本身更致力於避免數據過度擬合已建立的模型,導致難以通過自身的算法很好地處理不完整的數據。因此,缺省值需要通過特殊的方法來推導和填充,以縮小數據挖掘算法與實際應用之間的差距。

缺失值處理方法的分析與比較

處理不完整數據集的方法主要有三種:刪除元組、填充數據和不處理。

刪除元組

即刪除信息屬性值缺失的對象(元組、記錄),從而得到壹個完整的信息表。這種方法簡單可行,在對象中有很多缺失值,且缺失值被刪除的對象與初始數據集的數據相比非常小的情況下非常有效。當缺少類標簽時,通常使用此方法。

但是,這種方法有很大的局限性。它減少了歷史數據來換取信息的完整性,並且會丟棄隱藏在這些對象中的大量信息。當初始數據集包含的對象很少時,刪除少數對象會嚴重影響信息的客觀性和結果的正確性。因此,當缺失數據比例較大時,尤其是缺失數據是非隨機分布時,這種方法可能會導致數據偏差,從而得出錯誤的結論。

註意:刪除元組,或者直接刪除列特性,有時會導致性能下降。

數據完成

這種方法是用某個值填充空值,從而使信息表完整。通常,基於統計學原理,根據初始數據集中其他對象的值的分布來填充缺失值。以下是數據挖掘中常用的方法:

手動填充。

因為用戶最了解數據,所以這種方法產生的數據偏差最小,可能是最好的。但壹般來說,這種方法比較耗時,在數據規模較大、空值較多的情況下不可行。

將缺失的屬性值視為特殊值。

空值被視為特殊的屬性值,不同於任何其他屬性值。例如,所有空值都用“未知”填充。這會形成另壹個有趣的概念,可能會導致嚴重的數據偏差,壹般不推薦。

平均/模式完成器

將初始數據集中的屬性分為數值屬性和非數值屬性,分別進行處理。

如果空值為數值,則缺失的屬性值根據該屬性在所有其他對象中的平均值進行填充;

如果空值為非數值型,那麽缺失的屬性值將根據統計學中的眾數原則,用該屬性在所有其他對象中出現次數最多的值(即出現頻率最高的值)來填充。另壹種與之類似的方法叫做條件意義完成符。在這種方法中,平均值不是取自數據集中的所有對象,而是取自與該對象具有相同決策屬性值的對象。

這兩種數據補全方法的基本出發點是壹樣的,都是用最大可能值來補充缺失的屬性值,只是在具體方法上有所不同。與其他方法相比,它利用現有數據的大部分信息來推斷缺失值。

熱甲板填充(熱甲板填充)。

對於空值的對象,熱卡填充法是在完整的數據中找到壹個與其最相似的對象,然後用這個相似對象的值填充。不同的問題可能會選擇不同的標準來判斷相似性。這種方法概念簡單,利用數據之間的關系來估計空值。這種方法的缺點是難以界定相似的標準,主觀因素較多。

k-均值聚類方法

首先根據歐氏距離或相關性分析,確定最近的k個有缺失數據的樣本,對這k個值進行加權平均,估計出這個樣本的缺失數據。

分配屬性的所有可能值。

用空缺屬性值的所有可能屬性值進行填充,可以得到更好的填充效果。但當數據量較大或者缺失屬性值較多時,計算成本很高,可能的測試方案也很多。

組合完成器(組合完成器)

用空缺屬性值的所有可能屬性值進行嘗試,從最終的屬性約簡結果中選擇最好的壹個作為填充屬性值。這是壹種以歸約為目的的數據補全方法,可以得到很好的歸約結果;但是當數據量很大或者有很多缺失屬性值時,計算成本就很高。

回歸(回歸)

基於完整的數據集,建立回歸方程。對於有空值的對象,將已知屬性值代入方程估計未知屬性值,用估計值填充。當變量不是線性相關時,會導致有偏估計。

期望最大化

EM算法是在不完全數據下計算極大似然估計或後驗分布的叠代算法。在每個叠代周期中,交替執行兩個步驟:the Excepctaion步驟,在給定完整數據和前壹次叠代得到的參數估計的情況下,計算完整數據對應的對數似然函數的條件期望;M-step(最大化步驟),使用最大對數似然函數來確定參數值,並在下壹次叠代中使用它們。該算法在步驟e和步驟m之間叠代,直到它收斂,即兩次叠代之間的參數變化小於給定的閾值。這種方法可能會陷入局部極值,收斂速度不是很快,計算非常復雜。

多重插補

多重填充方法分為三個步驟:

為每個空值生成壹組可能的填充值,這反映了無響應模型的不確定性;每個值用於填充數據集中缺失的值,並產生幾個完整的數據集。

每壹個估算數據集都通過完整數據集的統計方法進行統計分析。

最終的統計推斷是通過綜合每個數據集的結果而生成的,其中考慮了數據填充帶來的不確定性。該方法將空位值視為隨機樣本,因此計算出的統計推斷可能會受到空位值不確定性的影響。這種方法的計算也很復雜。

C4.5方法

通過查找屬性之間的關系來填充缺失值。它尋找兩個相關性最大的屬性,其中壹個沒有缺失值的稱為代理屬性,另壹個稱為原始屬性,原始屬性中的缺失值由代理屬性決定。這種基於規則的歸納方法只能處理基數小的名義屬性。

就幾種基於統計的方法而言,刪除元組法和平均法不如熱卡填充法、期望最大化法和多次填充法;回歸是比較好的方法,但還是不如熱卡和em;EM缺少MI中包含的不確定成分。值得註意的是,這些方法直接處理模型參數的估計,而不是空位值預測本身。它們適合處理無監督學習的問題,但是對於有監督學習,情況就不壹樣了。比如可以刪除空值的對象,用完整的數據集進行訓練,但是預測的時候不能忽略空值的對象。另外,C4.5和所有可能的值填充方式也有很好的填充效果,壹般不推薦手工填充和特殊值填充。

不處理

補加工只是用我們的主觀估計值來補充未知值,不壹定完全符合客觀事實。在完成不完全信息的同時,我們或多或少地改變了原有的信息系統。此外,空值的不正確填充通常會在數據中引入新的噪聲,從而使挖掘任務產生錯誤的結果。所以很多時候我們還是希望在保持原有信息不變的前提下對信息系統進行處理。

不處理缺失值,直接對含有空值的數據進行數據挖掘的方法有貝葉斯網絡和人工神經網絡。

貝葉斯網絡提供了壹種表達變量之間因果信息的自然方法,用於發現數據之間的潛在關系。在這個網絡中,節點代表變量,有向邊代表變量之間的依賴關系。貝葉斯網絡只適用於對領域知識有壹定了解的情況,至少適用於變量之間有明確依賴關系的情況。否則,直接從數據中學習貝葉斯網絡的結構,不僅復雜(隨著變量的增加,呈指數級增加),而且網絡維護昂貴,估計參數較多,給系統帶來較高的方差,影響其預測精度。

人工神經網絡可以有效地處理缺失值,但人工神經網絡在這方面的研究還有待進壹步發展。

關於知乎的壹個方案:

4.將變量映射到高維空間。比如性別,男,女,失蹤,映射成三個變量:男,女,失蹤。連續變量也可以這樣處理。比如Google和百度的CTR預測模型,在預處理的時候都會這樣對待所有變量,達到上億的維度。這樣做的好處是完全保留了原始數據的所有信息,不需要考慮缺失值和線性不可分性。缺點是計算量大大提高。

而且只有樣本量很大的時候效果才是好的,否則太稀疏效果就差了。

摘要

在數據挖掘之前的數據預處理階段,大多數數據挖掘系統使用第壹種和第二種方法來處理空缺數據。沒有壹種處理空值的方法可以適用於任何問題。無論采用哪種填充方法,都無法避免主觀因素對原系統的影響,在空值過多的情況下完成系統是不可行的。理論上,貝葉斯考慮了壹切,但完全貝葉斯分析只有在數據集很小或者滿足壹定條件(比如多元正態分布)的情況下才可行。目前,人工神經網絡在數據挖掘中的應用還很有限。值得壹提的是,利用不準確的信息來處理數據的不完全性已經得到了廣泛的研究。不完備數據的表達方法主要基於可信性理論、概率論、模糊集理論、可能性理論、D-S證據理論等。