數據挖掘之異常檢測


看了數據挖掘的異常檢測部分,寫一點筆記。

1.0  概述

什么是數據挖掘:數據挖掘

什么是異常檢測:異常檢測

  異常檢測的目標是發現與大部分其他對象不同的對象。通常,異常對象被稱為離群點,因為在數據的散布圖中,他們遠離其他數據點。異常檢測也稱為偏差檢測、例外挖掘。

  異常檢測的方法各種各樣,所有這些的思想都是:異常的數據對象是不尋常的,或者在某些方面與其他對象不一致。

1.1  異常的成因

  1. 數據來源於不同的類
  2. 自然變異
  3. 數據測量和收集誤差

1.2  異常檢測方法

1. 基於模型的技術
  首先建立一個模型,異常是那些不能完美匹配的對象。例如,數據分布模型可以通過估計概率分布的參數來創建。如果一個對象不能很好地同該模型擬合,即如果它很可能不服從該分布,則它是一個異常。

2. 基於近鄰度的技術
  可以在對象之間定義鄰近性度量,許多異常檢測方法都基於鄰近度。異常對象是那些遠離大部分其他對象的對象。當數據用二維或三維散布圖顯示,可以從視覺上檢測出基於距離的離群點。

3. 基於密度的技術
  對象的密度估計可以相對直接地計算,特別是當對象之間存在近鄰性度量時,低密度區域中的對象相對遠離近鄰,可能被看做異常。

1.3  類標號的使用

異常檢測的三種基本方法:

  1. 非監督的
  2. 監督的
  3. 半監督的

三者的主要區別至少對於對於某些數據而言是類標號(異常或正常)可以利用的程度。

1. 監督的異常檢測
  要求存在異常類和正常類的訓練集(注意:可能有多個正常類或者異常類)

2. 非監督的異常檢測
  沒有提供類標號。在這種情況下,目標是將一個得分(或標號)賦予每個實例,反映該實例是異常的程度。注意,許多相似的異常可能會導致被標記為正常,或有較低的離群點得分。

3. 半監督的異常檢測
  訓練數據包含被標記的正常數據,但是沒有關於異常對象的信息。目標是使用有標記的正常對象的信息,對於給定的對象集合,發現異常標號。

1.4  問題

1. 用於定義異常的屬性個數
  對象可以有許多屬性,它可能在某些屬性上具有異常值,而在其他屬性上具有正常值。注意,即使一個對象的所有屬性值都不是異常,對象也可能異常。

2. 點的異常程度
  二元方式報告對象是否異常:要么正常要么不正常。這不能反映某些對象比其他對象更加極端異常的基本事實。需要有某種對象異常程度的評估,這種評估稱為異常離群點得分

3. 全局觀點與局部觀點
  一個對象可能相對於所有對象看上去不正常,但是相對於它的局部近鄰並非如此。

4. 一次識別一個與多個異常
  一次一個:每次識別並刪除最異常的實例,重復該過程。一次多個:異常集族一起識別。前者常遇到屏蔽問題,后者可能陷入泥潭。

5. 評估
6. 有效性
  各種方案的計算開銷顯著不同。

2.0  統計方法

統計學方法是基於模型的方法,即為數據創建模型,根據對象的擬合程度來評估他們。

定義  離群點:離群點是一個對象,關於數據的概率分布模型,它具有低概率。

問題:

1. 識別數據集的具體分布

2. 使用屬性的個數

3. 混合分布

2.1  檢測一元正態分布的離群點

高斯分布 N(μ,σ),第一個參數為均值,第二個為標准差。下圖為均值為0,標准差為1的高斯分布的概率密度函數:

 

來自N(0,1)分布的對象,出現在尾部的機會很小 

 

因為值到N(0,1)分布中心的距離 c 直接與該值的概率相關,因此可以使用它作為檢測對象(值)是否是離群點的基礎。

2.2  多元正態分布的離群點

由於不同變量(屬性)之間的相關性,多元正態分布並不關於它的中心對稱,如下圖,該分布均值為(0,0),協方差矩陣為
                                                                       

 

                                   

 什么是協方差矩陣: 協方差矩陣

如果我們打算用一個簡單的閥值來決定一個對象是否是離群點,可以用 Mahalanobis 距離,它是是一種考慮數據分布形狀的距離度量。

2.3  異常檢測的混合模型方法

數據用兩個分布的混合模型建模,一個分布為普通數據;另一個為離群點

  初始時將所有對象放入普通對象集,而異常對象集為空。然后用一個迭代過程將對象從普通集轉移到異常集,只要該轉移能提高數據的總似然(數據和模型之間的相似度)。

假定數據集D包含來自兩個概率分布的對象:M是大多數(正常)對象的分布,A是異常對象的分布,則數據的總概率分布可以記作:D(x) = (1 - λ) + λA(x)

其中,x是一個對象,λ是一個0 - 1之間的數,給出離群點的期望比例。M由數據估計,A通常取均勻分布。初始時刻 t = 0,M0 = D,A0為空。在任意時刻 t,整個數據集的似然和對數似然分別為以下兩式:

                                     

 

 

PD、PMt 和 PAt 分別是 D、Mt 和 At 的概率分布函數。

  因為正常對象的數量比異常對象大得多,因此當一個對象移動到異常集后,正常的分布變化不大。這時,每個正常對象對正常對象的總似然的貢獻保持相對不變。

  另外,如果假定異常服從均勻分布,則移動到異常集的每個對象對異常的似然貢獻一個固定的量。這樣,當一個對象移動到異常集時,數據總似然的改變粗略等於該對象在均勻分布下的概率(用λ加權)減去該對象在正常數據點的分布下的概率(用1-λ加權)。從而,異常集由這樣一些對象組成,這些對象在均勻分布下的概率明顯比在正常對象分布下的概率高。

3. 基於鄰近度的離群點檢測

基本概念很簡單,一個對象是異常的,則它遠離大部分點。

度量一個對象是否遠離大部分點的一種最簡單的方法是使用 k-最近鄰的距離。離群點得分的最低值是0,而最高值是距離函數的可能最大值,一般為無窮大。

定義 到 k 最近鄰的距離: 一個對象的離群點得分由由它的 k-最近鄰的距離給定。

什么是 k 近鄰算法:K近鄰算法

如下圖,使用 k = 5,每個點的陰影指明它的離群點得分,注意,邊緣的點C被正確地賦予最高離群點得分。

離群點得分對 k 的取值高度敏感。如果k太小,則少量的鄰近離群點可能導致較低的離群點得分;如果K太大,則點數少於k的簇中所有的對象可能都成了離群點。為了使該方案對於k的選取更具有魯棒性,可以使用k個最近鄰的平均距離。

 

 

 

4. 基於密度的離群點檢測

定義  基於密度的離群點:一個對象的離群點得分是該對象周圍密度的逆。

基於密度的離群點檢測與基於鄰近度的離群點檢測密切相關,因為密度常用鄰近度定義。

一種常用的定義密度的方法是:定義密度為到 k 個最近鄰的平均距離的倒數。如果該距離小,則密度高,反之亦然。

定義  給定半徑內的點計數:一個對象周圍的密度等於該對象指定距離d內對象的個數。

注意,d的選取要小心。如果太小,則許多正常點可能具有低密度,從而具有高離群點得分。如果太大,則許多離群點可能具有與正常點類似的密度和離群點得分。

5.0 基於聚類的技術

什么是聚類:聚類

聚類分析發現強相關的對象組,而異常檢測發現不與其他對象強相關的對象。因此聚類可以用於異常檢測。

1. 一種方法是丟棄遠離其他簇的小簇。這種方法需要最小簇大小和小簇與其他簇之間距離的閥值。

2. 一種更系統的方法是,首先聚類所有對象,然后評估對象屬於簇的程度。對於基於原型的聚類(原型是指樣本空間中具有代表性的點),可以用對象到它的簇中心的距離來度量對象屬於簇的程度。更一般地,對於基於目標函數的聚類技術,可以使用該函數來評估對象屬於任意簇的程度。

定義  基於聚類的離群點:一個對象是基於聚類的離群點,如果該對象不強屬於任何簇

5.1  評估對象屬於簇的程度

1. 對於基於原型的聚類,評估對象屬於簇的程度的方法有多種。一種方法是度量對象到簇原型的距離,並用它作為該對象的離群點得分。如果簇具有不同的密度,可以構造一種離群點得分,度量對象到簇原型的相對距離。另一種方法是使用 Mahalanobis 距離。

2. 對於具有目標函數的聚類技術,可以將離群點得分賦予對象。該得分反映刪除對象后目標函數的改進。

5.2 離群點對初始聚類的影響

通過聚類檢測離群點,會產生離群點影響聚類的問題,可以使用如下方法處理:

1. 對象聚類,刪除離群點,對象再次聚類。不能保證產生最優結果,但容易使用。

2. 取一組不能很好擬合任何簇的特殊對象,代表潛在的離群點。隨着聚類過程的進棧,簇在變化,不再強屬於任何簇的對象被添加到潛在的離群點集合。而當前在該集合中的對象被測試,如果它現在強屬於一個簇,就可以將它從潛在的離群點集合移出。

5.3 使用簇的個數

諸如 K 均值等聚類技術並不能自動地確定簇的個數。在使用聚類進行離群點檢測時這是一個問題,因為對象是否被認為是離群點可能依賴於簇的個數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM