造成數據缺失的原因是多方面的,主要可能有以下幾種:
空值的存在,造成了以下影響:
將存在遺漏信息屬性值的對象(記錄)刪除,從而得到一個完備的信息表。這種方法在對象有多個屬性缺失值、被刪除的含缺失值的對象與信息表中的數據量相比非常小的情況下是非常有效的。然而這種方法丟棄了大量隱藏在這些對象中的信息。在信息表中對象很少的情況下會影響到結果的正確性,可能導致數據發生偏離,從而引出錯誤的結論。
這類方法是基於統計學原理用一定的值去填充空值,從而使信息表完備化。數據挖掘中常用的有以下幾種補齊方法:
人工填寫
這個方法產生數據偏離最小,是填充效果最好的一種。當數據規模很大、空值很多的時候,該方法是不可行的。
特殊值填充
將空值作爲一種特殊的屬性值來處理,它不同於其他的任何屬性值。如所有的空值都用「unknown」填充。這樣將形成另一個概念,可能導致嚴重的數據偏離,一般不使用。
平均值填充
如果空值是數值屬性,就使用該屬性在其他所有對象的取值的平均值來填充該缺失的屬性值.
如果空值是非數值屬性,就根據統計學中的衆數原理,用該屬性在其他所有對象出現頻率最高的值來補齊該缺失的屬性值。
熱卡填充(就近補齊)
對於一個包含空值的對象,熱卡填充法在完整數據中找到一個與它最相似的對象,然後用這個相似對象的值來進行填充。不同的問題選用不同的標準來對相似進行判定。
K最近鄰法
先根據歐式距離或相關分析來確定距離具有缺失數據樣本最近的K個樣本,將這K個值加權平均來估計該樣本的缺失數據。
使用所有可能的值填充
這種方法是用空缺屬性值的所有可能的屬性取值來填充,能夠得到較好的補齊效果。但是當數據量很大或者遺漏的屬性值較多時,其計算的代價很大,可能的測試方案很多。
迴歸
基於完整的數據集,建立迴歸方程(模型)。對於包含空值的對象,將已知屬性值代入方程來估計未知屬性值,以此估計值來進行填充。
期望值最大化方法(EM)
在缺失類型爲隨機缺失的條件下,假設模型對於完整的樣本是正確的,通過觀測數據的邊際分佈可以對未知參數進行極大似然估計。它一個重要前提:適用於大樣本。有效樣本的數量足夠以保證ML估計值是漸近無偏的並服從正態分佈。但是這種方法可能會陷入局部極值,收斂速度也不是很快,並且計算很複雜。
直接在包含空值的數據上進行數據挖掘。這類方法包括貝葉斯網絡和人工神經網絡等。
異常值,即在數據集中存在不合理的值,又稱離羣點。
簡單統計分析
對屬性值進行一個描述性的統計(規定範圍),從而查看哪些值是不合理的(範圍以外的值)。
3δ原則
若數據服從正態分佈:根據正態分佈的定義可知,距離平均值3δ之外的概率爲 P(|x-μ|>3δ) <= 0.003 ,這屬於極小概率事件,在默認情況下我們可以認定,距離超過平均值3δ的樣本是不存在的。因此,當樣本距離平均值大於3δ,認爲該樣本爲異常值。
根據概率值的大小可以判斷 x 是否屬於異常值。
使用距離檢測多元離羣點
當數據不服從正態分佈時,可以通過遠離平均距離多少倍的標準差來判定,多少倍的取值需要根據經驗和實際情況來決定。