論文讀后總結1:一種對多元數據非監督異常檢測算法的對比評估


論文標題:A Comparative Evaluation of Unsupervised Anomaly Detection Algorithms for Multivariate Data

對比的算法:

 

 

摘要

1. 異常檢測只應用於無標簽的數據,也就是說,只能運用無監督學習算法。

2. 異常檢測應用領域有:網絡入侵檢測(network intrusion detection)、欺詐檢測(fraude detection)、生命科學和醫學領域

3. 此論文評估的能反映:不同方法的優勢和劣勢、性能、計算量(computational efforts)、參數設置的影響、全局/局部異常的檢測行為

4. 此論文最后給出了:典型實戰任務中算法選擇的建議

介紹

  1. anomaly detection=outlier detection,異常值=離群點
  2. 異常值的定義:樣本中,明顯偏離其他值的實例
  3. 異常值的特點:異常檢測的原始用途:data cleansing,后者的定義是:消除outliers,因為模式識別算法(pattern recognition algorithm)對異常值非常敏感
    1. 特征上不同於其他數據
    2. 數據集中只有量的異常值
  4. 異常值檢測目前的應用領域:入侵檢驗、欺詐檢驗、數據防泄密、醫學應用和生命科學領域異常檢驗算法的選取需要考慮到算法的時效性和檢測性能。可以依據檢測出異常的時間點分為:事后分析(post-incident analysis)、准實時監測、預先警告
    1. 在入侵檢驗中的應用:異常檢驗在這個領域應用最多,通常基於網絡或主機。此時的異常檢驗被供應商稱為行為分析(behavioral analysis),為了實時處理海量數據,往往采用的是簡單而快速的算法。通常使用模式匹配來檢測已知的威脅,用額外的異常檢驗模塊嘗試識別未知的可疑行為
    2. 在欺詐檢驗中的應用:通常分析日志數據,檢測欺詐性會計;或通過信用卡支付日志檢查濫用或丟失的信用卡。
    3. 在數據防泄密(data leakage prevention, DLP)的應用: 類似於欺詐檢驗,但要求准實時分析,從而可作為預防措施 
    4. 在醫學應用領域和生命科學的應用:病人監護(借助ECG信號或其他傳感器)、分析醫學圖像(如CT)以檢測畸形細胞或腫瘤。在生命科學,異常檢驗也可用來尋找突變體
    5. 其他領域,如:利用監視攝像數據分析可疑的行為,檢測耗能異常,監控移動通信網絡,異常識別偽造文件等等

異常檢測分類

1. 異常檢驗設置

不同於分類設置,取決於可獲得的標簽,可分為三大類:

1.1 監督異常檢測:

類似於模式識別,但他的類通常極其不平衡。C4.5決策樹分類算法不適用,但SVM和ANN(Artificail Neural Networks)還行。由於通常異常不是提前知道的,或者是測試階段實時產生的,這種設置通常意義不大。

1.2 半監督異常檢測:

用無異常值的訓練集訓練出模型,從而偏離此模型的實例的為異常值。代表算法:One-class SVMs和autoencoders

1.3 無監督異常檢驗:

無標簽,訓練集和測試集無區別。用距離和密度判斷是否是異常。本論文以無監督異常檢測為研究對象。
 

2. 異常檢測算法輸出

通常,監督用label,半監督或無監督用score或置信值(因為實戰中,只有top異常被報告給用戶)。本論文使用score作為輸出,並對結果進行排名用以性能評估。當然,通過設置閾值可以將排名變為標簽。
 

3. 異常類型

全局異常、局部異常。
微型簇。

 

按照異常的分布狀態可以分為:
  1. 點異常檢測
  2. 集合異常檢測(可通過相關性、分組與合計來產生新特征,再使用點異常檢測。需要有對數據集非常熟悉,這個過程也叫做數據視圖的產生)
  3. 情境異常檢測(可通過加入改變情境的因素作為新特征,再使用點異常檢測)

4. 標准化(Normalization)

也需要充分了解數據集。本論文采用典型的最小值最大值正規化和標准化。

相關工作

本論文只處理表列數據。略。

無監督異常檢測算法

分為:a.基於近鄰的技術 b.基於聚集的方法 c.統計算法 d.子空間技術
 
本論文主要研究前兩種以及實際運用最廣泛的種類

1. k-NN全局異常檢測(全局,近鄰)

score有兩種計分方法:kth-NN 和 k-NN(實際更傾向這個)。注意:不同於k-NN分類算法。
k一般屬於(10,50)。不同於分類算法,無監督下,k的值不能用交叉驗證。這篇論文用不同的k值和它們的平均值進行評估
 

2. LOF局部異常因子(局部,近鄰)

step1. 得到記錄x的k近鄰Nk。
step2. 計算x的局部可達密度LRD,d(·)為x與每個近鄰的可達距離。x越偏離,可達距離之和越大,局部可達密度越小。
step3. 計算x的局部異常因子LOF,這里還要算出x的各個近鄰的局部可達密度LRD,用它們分別比上x的局部可達密度LRD(x)。x的可達密度LRD越小,局部異常因子LOF越大。因此,正常實例的score(LOF值)接近於1,反之,大於1
 
計算LOF的一種集成策略是計算LOF-UB。變化k,使得score最高,取此值。
 

3. COF基於連通性的異常因子(局部,近鄰)

類似於LOF,但密度估計不一樣。LOF是基於歐氏距離的,即默認數據是以球形分布的,假設是特征是線性相關的,LOF就無能為力。

COF中,近鄰的局部密度是基於最短路徑方法求得的,亦稱鏈式距離(鏈接當前實例和所有k個近鄰的最短距離之和)。

 

4. INFLO受影響的異常(局部,近鄰)

應用場景:當兩個不同密度的數據集很靠近的時候

算法使用k近鄰和反向近鄰集

(待續...)

5. LoOP局部異常概率(局部,近鄰)

不算score,算概率。也許更方便比較不同數據集的異常記錄。

6. LOCI局部關聯積分(局部,近鄰)

舍棄參數k,采用半徑r,通過改變半徑r,得到最高分,取這個最高分作為score。因此,復雜度由以前的O(n2)變為O(n3)
類似於LoOP,用半高斯分布評估局部密度,且使用的是近鄰個數,而不是距離。
不同於LOCI,比較的是兩個不同尺寸的近鄰而不是局部密度的比例
引入alpha控制不同近鄰的比例。
 

7. aLOCI近似局部關聯積分(局部,近鄰)

解決LOCI時間復雜度過高的問題
(待續。。。)

8. CBLOF基於聚類的局部異常因子(全局,聚類)

k-means因其線性的計算復雜度在實際中最常被使用,是非確定性的算法(每次運行結果可能不同)。
score=某個實例到聚類中心的距離*簇成員數
此論文作者反對CBLOF提出者的“使用聚類成員數作為轉換系數能夠估計聚類的局部密度”的觀點表示不認同。采用了無權值的CBLOF,即uCBLOF

9. LDCOF局部密度簇異常因子(局部,聚類)

CBLOF的局部密度評價僅使用簇成員數,這一點備受爭議。而uCBLOF事實上已經不是局部異常檢測方法,因為聚類的密度已經被完全忽視了。
LDCOF解決了上述問題,它假設聚簇分布為球形分布來評價聚簇的密度。
也用k-means聚類
score=某個聚類成員到其所屬聚類的型心的距離/avg(每個聚類成員到其型心的距離)。這導致,LDCOF的score是相對於可能變化的簇密度局部得分。
優點:score有一些相對參考點。類似於LOF,1.0分或更低將被認為是普通實例。

10. CMGOS基於聚類的多變量高斯離群點得分(局部,聚類+子空間)

基於聚類的異常檢測的另一個加強版。

馬氏距離作為計算異常得分的基礎
先用k-means,然后計算每個簇的協方差矩陣,最后,score=該點離最近聚類中心的馬氏距離/具有某一置信區間的卡方分布。后者再一次作為歸一化步驟,1.0分及一下的很有可能是普通實例。
馬氏距離使得異常值的得分迅速增加
(待續。。。)

11. HBOS基於直方圖的離群點得分(全局,統計)

假定特征獨立,這貌似會帶來不利影響,但有個明顯的優勢:處理速度大大提高。(基於近鄰的計算要花超過23小時的數據,HBOS可以在1分鍾內完成)

分別為每個特征作一個直方圖,對某個實例,連乘所有特征中他的所在的柱的反高度(代表密度估計)。這類似於分類算法中的朴素貝葉斯算法(連乘所有獨立特征的概率)。

在半監督異常檢測中非常受歡迎。

兩種作圖方式:1.固定的柱寬度。2.柱個數大致相同,但導致不同的柱寬度。 當有大量離群值的時候,第二種方法更強固。

這篇論文用的是第2種作圖方式

12. One-Class SVM(分類器)

常被用作半監督異常點監測,但一開始是設計為無監督算法的(使用軟余量)。

在無異常值的數據集中訓練one-class SVM,然后,SVM給測試集中的異常值和普通數據分類。

這篇論文使用的是無監督算法:普通的one-class SVM和拓展的η one-class SVM

13. rPCA強固的主成分分析(子空間)

主成分是協方差矩陣的特征向量,因此和CMGOS一樣計算有困難(異常值對協方差矩陣有很大的影響,密度評估可能不准確)。

提出一種強固的版本,即rPCA,它基於馬氏距離計算兩次協方差矩陣

一旦確定了主成分,問題就到了選取哪個特征值來算得分上了。用主要成分會展示出相對大部分數據的全局偏離,然而使用次要成分會表示出較小的局部偏差

 當rPCA考慮所有成分的時候,此時rPCA基本上等於當設定k=1時的CMGOS

審查算法的復雜性和實現 

1. 基於近鄰的算法中,主要時間都花在尋找近鄰上(其他的,如計算密度或LOF只需要不到1%的運行時,可忽略不計)。而尋找近鄰的時間復雜度除了LOCI為O(n3),其他都是O(n2)。

2. 基於聚類的方法中,計算復雜度主要歸於聚類算法,如果運用k-means算法一般要比O(n2)快。對大數據而言,比基於近鄰的算法有優勢。CMGOS-MCD例外,因為MCD中每個簇的計算量為二次的。
3. 基於one-class SVM的算法復雜度決定於支持向量的個數和數據結構,此外伽馬調諧也有很大影響。rPCA的復雜度很大取決於數據的維度,如果維度小,則是最快的。

基准數據集

新的算法出來一般都要和最常見的算法(如k-NN、LOF)進行對比,並要求使用公共分類數據集。
一些用於分類的經典數據集可以從UCI機器學習庫中檢索而得。
典型的預處理包括選取一類作為異常類,並從中隨機抽取一小部分作為子樣本。
這部分作者給出了詳細的數據集和預處理介紹。

數據集總結

數據集涵蓋了廣泛的應用領域,如醫療應用、入侵檢測、圖像和語音識別以及復雜系統的分析。

作者發布了數據集,以鼓勵研究人員將其提出的算法與此工作進行比較。

比較評估

對無監督學習,一種常見的評估策略是:將結果根據異常值得分進行排名,然后迭代地從第一名到最后一名設置閾值。這會形成N個元祖值(真陽率和假陽率),可得一個ROC曲線。ROC的積分AUC,可用作檢驗性能措施。

一個對AUC不錯的解釋是:一個算法分配給“隨機選取的普通實例的score低於隨機選取的異常實例的score”的概率。因此,作者認為這是一個不錯的評估方式。

AUC缺點是:1. 只考慮排名,沒考慮得分之間的相對差異。2. 不適合不平衡類問題。 但基於AUC的評估依然是無監督異常檢測的事實標准。

  調節AUC曲線的方法
無監督 通過改變排好序的結果列表中的離群閾值
監督 通過改變某個參數,如k

 

 

 

基於近鄰的算法的結果

1. LOCI:計算量大、不隨着k值改變、最不推薦、不穩定。

2. aLOCI:非確定的(20次求平均值)、最不推薦、不穩定。

3. 兩個k-NN和LOF變體,結果差不多。

4. 對於全局異常檢測任務中,局部異常只檢測算法效果不佳。

5. 在高維數據集上,k值的取值要偏小些才能達到稍微好點的效果(AUC可達0.78),k的增大會造成AUC的迅速下跌,一般不要超過5。

基於聚類的算法的結果

1. CBLOF在大多數情況下表現不好,尤其是作用在小數據集上。可能是由於該算法算分時用簇成員數量加權造成的,因為去掉全中后的uCBLOF算法會好很多。

2. 基於近鄰的算法的結果中的第4點結論

3. CMGOS-Red和CMGOS-MCD表現都不錯,但CMGOS-MCD在高維度的數據集上不能在規定時間內完成,因此更推薦前者。

4. 總體上,基於近鄰>基於聚類

其他算法的結果

1. HBOS,4個數據集當中(共10個數據集)都效果最佳,並且大數據集上效果幾近完美。

2. cPCA表現一般,例外:在其中一個(shuttle)數據集下能和HBOS並列第一

3. one-class SVM算法表現平平。與加強版的gamma one-class SVM相比,其實還是前者更好。

算法的計算時間比較

1. 對於小數據集,除苛刻的LOCI外,小數據集運行足夠快,可以把重心放在檢測性能上

2. 對於大型數據,相差可以橫跨4s到6d以上(HBOS vs. CMGOS-MCD)

3. 運行時: 基於近鄰>基於聚類 (除了CMGOS-MCD)

4. HBOS迄今為止最快

5. 不推薦使用CMGOS-MCD

6. 基於SVM的算法運行時間相當高,主要用於具有二次復雜度的自動伽馬調諧

總結

上面提到過的不寫。

1. 在准實時場景中,基於聚類的異常檢測可能更好。

2. 在基於最近鄰的方法中:全局k -NN算法是一個很好的候選者。雖然LoOP大多情況下性能最好,但在某些數據集上表現不好。特別是對於全局異常檢測問題,該算法應該完全避免。如果提前知道要解決的問題涉及局部異常,LOF也是一個很好的候選者。

3. 在基於聚類的算法中:簡單的uCBLOF算法還顯示了所有數據集的平均良好性能,CMGOS-Reg在大多數數據集中似乎也是可靠的。由於算法設計缺陷,應該避免原始的CBLOF算法。具有基於子空間的MCD密度估計的CMGOS不應該是第一選擇,因為密度估計太慢並且檢測性能更差。

4. HBOS又快又好,在大型數據集中強烈推薦!

5. 對具有400維度的數據集來說,只有當k<5時,基於鄰近的算法才能有用。而對於無監督算法,全軍覆沒。

6. 作為算法選擇的一般總結,建議使用基於近鄰的方法,特別是k -NN用於全局任務,LOF用於本地任務,而不是基於聚類的方法。如果計算時間是必要的,HBOS是一個很好的候選者,特別是對於較大的數據集。

 


免責聲明!

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



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