看了數據挖掘的異常檢測部分,寫一點筆記。
1.0 概述
什么是數據挖掘:數據挖掘
什么是異常檢測:異常檢測
異常檢測的目標是發現與大部分其他對象不同的對象。通常,異常對象被稱為離群點,因為在數據的散布圖中,他們遠離其他數據點。異常檢測也稱為偏差檢測、例外挖掘。
異常檢測的方法各種各樣,所有這些的思想都是:異常的數據對象是不尋常的,或者在某些方面與其他對象不一致。
1.1 異常的成因
- 數據來源於不同的類
- 自然變異
- 數據測量和收集誤差
1.2 異常檢測方法
1. 基於模型的技術
首先建立一個模型,異常是那些不能完美匹配的對象。例如,數據分布模型可以通過估計概率分布的參數來創建。如果一個對象不能很好地同該模型擬合,即如果它很可能不服從該分布,則它是一個異常。
2. 基於近鄰度的技術
可以在對象之間定義鄰近性度量,許多異常檢測方法都基於鄰近度。異常對象是那些遠離大部分其他對象的對象。當數據用二維或三維散布圖顯示,可以從視覺上檢測出基於距離的離群點。
3. 基於密度的技術
對象的密度估計可以相對直接地計算,特別是當對象之間存在近鄰性度量時,低密度區域中的對象相對遠離近鄰,可能被看做異常。
1.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 均值等聚類技術並不能自動地確定簇的個數。在使用聚類進行離群點檢測時這是一個問題,因為對象是否被認為是離群點可能依賴於簇的個數。