1. 程式人生 > >資料探勘之異常點檢測

資料探勘之異常點檢測

異常點檢測方法

一、基本概念

    異常物件被稱作離群點。異常檢測也稱偏差檢測和例外挖掘。

    常見的異常成因:資料來源於不同的類(異常物件來自於一個與大多數資料物件源(類)不同的源(類)的思想),自然變異,以及資料測量或收集誤差。

    異常檢測的方法:

(1)基於模型的技術:首先建立一個數據模型,異常是那些同模型不能完美擬合的物件;如果模型是簇的集合,則異常是不顯著屬於任何簇的物件;在使用迴歸模型時,異常是相對遠離預測值的物件。

(2)基於鄰近度的技術:通常可以在物件之間定義鄰近性度量,異常物件是那些遠離其他物件的物件。

(3)基於密度的技術:僅當一個點的區域性密度顯著低於它的大部分近鄰時才將其分類為離群點。

二、異常點檢測的方法

1、統計方法檢測離群點

    統計學方法是基於模型的方法,即為資料建立一個模型,並且根據物件擬合模型的情況來評估它們。大部分用於離群點檢測的統計學方法都是構建一個概率分佈模型,並考慮物件有多大可能符合該模型。離群點的概率定義:離群點是一個物件,關於資料的概率分佈模型,它具有低概率。這種情況的前提是必須知道資料集服從什麼分佈,如果估計錯誤就造成了重尾分佈。異常檢測的混合模型方法:對於異常檢測,資料用兩個分佈的混合模型建模,一個分佈為普通資料,而另一個為離群點。

    聚類和異常檢測目標都是估計分佈的引數,以最大化資料的總似然(概率)。聚類時,使用EM演算法估計每個概率分佈的引數。然而,這裡提供的異常檢測技術使用一種更簡單的方法。初始時將所有物件放入普通物件集,而異常物件集為空。然後,用一個迭代過程將物件從普通集轉移到異常集,只要該轉移能提高資料的總似然(其實等價於把在正常物件的分佈下具有低概率的物件分類為離群點)

。(假設異常物件屬於均勻分佈)。異常物件由這樣一些物件組成,這些物件在均勻分佈下比在正常分佈下具有顯著較高的概率。

     優缺點:(1)有堅實的統計學理論基礎,當存在充分的資料和所用的檢驗型別的知識時,這些檢驗可能非常有效;(2)對於多元資料,可用的選擇少一些,並且對於高維資料,這些檢測可能性很差。

2、基於鄰近度的離群點檢測

    一個物件是異常的,如果它遠離大部分點。這種方法比統計學方法更一般、更容易使用,因為確定資料集的有意義的鄰近性度量比確定它的統計分佈更容易。一個物件的離群點得分由到它的k-最近鄰的距離給定。離群點得分對k的取值高度敏感。如果k太小(例如1),則少量的鄰近離群點可能導致較低的離群點得分;如果K太大,則點數少於k的簇中所有的物件可能都成了離群點。為了使該方案對於k的選取更具有魯棒性,可以使用k個最近鄰的平均距離。

優缺點:(1)簡單;(2)缺點:基於鄰近度的方法需要O(m2)時間,大資料集不適用;(3)該方法對引數的選擇也是敏感的;(4)不能處理具有不同密度區域的資料集,因為它使用全域性閾值,不能考慮這種密度的變化。

3、基於密度的離群點檢測

    從基於密度的觀點來說,離群點是在低密度區域中的物件。一個物件的離群點得分是該物件周圍密度的逆。基於密度的離群點檢測與基於鄰近度的離群點檢測密切相關,因為密度通常用鄰近度定義。一種常用的定義密度的方法是,定義密度為到k個最近鄰的平均距離的倒數。如果該距離小,則密度高,反之亦然。另一種密度定義是使用DBSCAN聚類演算法使用的密度定義,即一個物件周圍的密度等於該物件指定距離d內物件的個數。需要小心的選擇d,如果d太小,則許多正常點可能具有低密度,從而具有高離群點得分。如果d太大,則許多離群點可能具有與正常點類似的密度(和離群點得分)。使用任何密度定義檢測離群點具有與基於鄰近度的離群點方案類似的特點和侷限性。特殊地,當資料包含不同密度的區域時,它們不能正確的識別離群點。

    為了正確的識別這種資料集中的離群點,我們需要與物件鄰域相關的密度概念,也就是定義相對密度常見的有兩種方法:(1)使用基於SNN密度的聚類演算法使用的方法;(2)用點x的密度與它的最近鄰y的平均密度之比作為相對密度。

    使用相對密度的離群點檢測區域性離群點要素LOF技術):首先,對於指定的近鄰個數(k),基於物件的最近鄰計算物件的密度density(x,k) ,由此計算每個物件的離群點得分;然後,計算點的鄰近平均密度,並使用它們計算點的平均相對密度。這個量指示x是否在比它的近鄰更稠密或更稀疏的鄰域內,並取作x的離群點得分(這個是建立在上面的離群點得分基礎上的)。

    優缺點

(1)給出了物件是離群點的定量度量,並且即使資料具有不同的區域也能夠很好的處理;

(2)與基於距離的方法一樣,這些方法必然具有O(m2)的時間複雜度。對於低維資料使用特定的資料結構可以達到O(mlogm);

(3)引數選擇是困難的。雖然LOF演算法通過觀察不同的k值,然後取得最大離群點得分來處理該問題,但是,仍然需要選擇這些值的上下界。

4、基於聚類的技術

    一種利用聚類檢測離群點的方法是丟棄遠離其他簇的小簇。這個方法可以和其他任何聚類技術一起使用,但是需要最小簇大小和小簇與其他簇之間距離的閾值。這種方案對簇個數的選擇高度敏感。使用這個方案很難將離群點得分附加到物件上。一種更系統的方法,首先聚類所有物件,然後評估物件屬於簇的程度(離群點得分)(基於原型的聚類可用離中心點的距離來評估,對具有目標函式的聚類技術該得分反映刪除物件後目標函式的改進(這個可能是計算密集的))基於聚類的離群點:一個物件是基於聚類的離群點,如果該物件不強屬於任何簇。離群點對初始聚類的影響:如果通過聚類檢測離群點,則由於離群點影響聚類,存在一個問題:結構是否有效。為了處理該問題,可以使用如下方法:物件聚類,刪除離群點,物件再次聚類(這個不能保證產生最優結果)。還有一種更復雜的方法:取一組不能很好的擬合任何簇的特殊物件,這組物件代表潛在的離群點。隨著聚類過程的進展,簇在變化。不再強屬於任何簇的物件被新增到潛在的離群點集合;而當前在該集合中的物件被測試,如果它現在強屬於一個簇,就可以將它從潛在的離群點集合中移除。聚類過程結束時還留在該集合中的點被分類為離群點(這種方法也不能保證產生最優解,甚至不比前面的簡單演算法好,在使用相對距離計算離群點得分時,這個問題特別嚴重)。

   物件是否被認為是離群點可能依賴於簇的個數(如k很大時的噪聲簇)。該問題也沒有簡單的答案。一種策略是對於不同的簇個數重複該分析。另一種方法是找出大量小簇,其想法是(1)較小的簇傾向於更加凝聚,(2)如果存在大量小簇時一個物件是離群點,則它多半是一個真正的離群點。不利的一面是一組離群點可能形成小簇而逃避檢測。

    優缺點:

(1)基於線性和接近線性複雜度(k均值)的聚類技術來發現離群點可能是高度有效的;

(2)簇的定義通常是離群點的補,因此可能同時發現簇和離群點;

(3)產生的離群點集和它們的得分可能非常依賴所用的簇的個數和資料中離群點的存在性;

(4)聚類演算法產生的簇的質量對該演算法產生的離群點的質量影響非常大。