1. 程式人生 > >離群點(孤立點、異常值)檢測方法

離群點(孤立點、異常值)檢測方法

本文介紹了離群點(孤立點)檢測的常見方法,以及應用各種演算法時需要注意的問題。

離群點是什麼?

異常物件被稱作離群點。異常檢測也稱偏差檢測和例外挖掘。孤立點是一個明顯偏離與其他資料點的物件,它就像是由一個完全不同的機制生成的資料點一樣。

離群點檢測是資料探勘中重要的一部分,它的任務是發現與大部分其他物件顯著不同的物件。大部分資料探勘方法都將這種差異資訊視為噪聲而丟棄,然而在一些應用中,罕見的資料可能蘊含著更大的研究價值

離群點檢測已經被廣泛應用於電信和信用卡的詐騙檢測、貸款審批、電子商務、網路入侵、天氣預報等領域,如可以利用離群點檢測分析運動員的統計資料,以發現異常的運動員。

孤立 點 檢 測 在 國 外 獲 得 了 廣 泛 的 研 究 和 應用, E. M. Knorr 和 R. T. N將孤立點檢測用於分析 NHL ( Nationai Hockey League )的 運 動 員 統 計 資料,用來發現表現例外的運動員;

離群點監測所面臨的困難和挑戰

【1】定義一個正常狀態的範圍,以覆蓋所有可能的正常狀態是非常困難的。通常,正常狀態和異常狀態之間的邊界不是非常精確,而是模糊的。因此在邊界附近的狀態(點)容易被誤分。
【2】如果異常來自有敵意的(如黑客或恐怖襲擊)行為,那麼它會試圖看起來和正常的行為一樣,因此,區分難度就更大了。
【3】缺乏標記資料來訓練/驗證異常監測模型,是一個主要的問題。
【4】資料通常含有噪音,含有噪音的資料可能和實際的異常值很相像,這時很難區分噪音/異常值,也很難去除噪音的。
另外還有一些困難,沒有一一列舉。
由於存在以上的困難,使得異常值檢測,通常是不容易處理的。
在實際應用中,許多方法只能解決某一種特定的問題,方法的選擇取決於資料的天然特性,標記資料的多寡,異常值的型別等等。
下圖是異常值檢測相關的技術方法。
這裡寫圖片描述


(來自文獻9)

按標記資料的多寡確定檢測方法

【1】監督學習方法
正常樣本和異常樣本都有標記:
典型的處理方法是對正常值和異常值這兩類分別建立預測模型,預測時進行對比,看預測樣本屬於哪一類?
不平衡資料處理是關鍵問題。因為獲得標記的異常值樣本通常遠少於正常值樣本。
另外,獲得正確的有代表性的標記,尤其是對異常值類通常是困難的,可以對訓練集中的正常樣本採取一些人工產生異常值的辦法【文獻10~12】。

A typical approach in such cases is to build a predictive model for normal vs. anomaly classes. Any unseen data instance is compared against the model to determine which class it belongs to.
There are two major issues that arise in supervised anomaly detection.
First, the anomalous instances are far fewer compared to the normal instances in the training data.
Second, obtaining accurate and representative labels, especially for the anomaly class is usually challenging. A number of techniques have been proposed that inject artificial anomalies into a normal data set to obtain a labeled training data set [Theiler and Cai 2003; Abe et al. 2006; Steinwart et al. 2005].
Other than these two issues, the supervised anomaly detection problem is similar to building predictive models.

【2】半監督學習方法
僅正常值樣本有標記。
對正常值建立模型,然後用來預測異常值。

【3】無監督學習方法
正常值和異常值樣本都沒有標記。
理想地假設正常值比異常值樣本多得多。一旦不滿足這個假設,將會出現非常高的錯誤預警。

The techniques in this category make the implicit assumption that normal instances are far more frequent than anomalies in the test data. If this assumption is not true then such techniques suffer from high false alarm rate.

(文獻9)

常用的異常值檢測方法概述

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

【2】基於鄰近度的方法:通常可以在物件之間定義鄰近性度量,異常物件是那些遠離其他物件的物件。

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

【4】基於聚類的方法:聚類分析用於發現區域性強相關的物件組,而異常檢測用來發現不與其他物件強相關的物件。因此,聚類分析非常自然的可以用於離群點檢測。

基於統計模型的方法

基於分佈(概率模型)的假設檢驗的方法:

給定的資料集假設了一個分佈或概率模型(例如一個正態分佈),然後採用不一致性檢驗來確定離群點。要求預先知道資料的分佈和分佈的引數(例如均值和方法)。

根據問題的需要對所研究的總體作某種假設,記作H0;選取合適的統計量,這個統計量的選取要使得在假設H0成立時,其分佈為已知;由實測的樣本,計算出統計量的值,並根據預先給定的顯著性水平進行檢驗,作出拒絕或接受假設H0的判斷。常用的假設檢驗方法有u—檢驗法、t檢驗法、χ2檢驗法(卡方檢驗)、F—檢驗法,秩和檢驗等。

需要注意的地方
(1)絕大多數檢驗是針對單個屬性的,而許多資料探勘問題要求在多維空間中發現離群點。
(2)要求一些要求關於資料集合引數的知識:如資料分佈。觀察到的分佈需要用恰當的用一個標準分佈來模擬。
離群點具有低概率。這種情況的前提是必須知道資料集服從什麼分佈,如果估計錯誤就造成了重尾分佈
關於重尾分佈,可參考:
https://wenku.baidu.com/view/208864738e9951e79a892705.html

基於簇的離群點檢測

模型是簇,則異常是不顯著屬於任何簇的物件。
需要注意的是
傳統的觀點都認為孤立點是一個單獨的點,然而很多的現實情況是異常事件具有一定的時間和空
間的區域性性,這種區域性性會產生一個小的簇.這時候離群點(孤立點)實際上是一個小簇(圖下圖的C1和C3)。
這裡寫圖片描述
(來自文獻2)

基於迴歸模型的離群點檢測

這裡寫圖片描述
(來自文獻3,對,反應釜中溫度的相關過程資料用於演算法測試 . 對於反應釜中的溫度 ,利用溫度感測器 , 每隔 1 min對其進行取樣 . 同時 , 上述過程資料中還包含了測量噪聲 .)

應用時需要注意的地方:
(1)由於有離群點的存在,在建立模型時,需要建立一個魯棒預測模型。
防止出現過擬合現象,非魯棒性預測模型儘管該能夠檢測出全部離群點 , 但同時也會出現了誤檢的情況 , 隨著測量噪聲的進一步加大 , 誤檢或漏檢的問題也將更加突出 。
(2)需要選擇合適的閾值。

優缺點分析

文獻9中的分析如下:

Advantages and Disadvantages of Statistical Techniques. The advantages of statistical techniques are:
(1) If the assumptions regarding the underlying data distribution hold true, statistical techniques provide a statistically justifiable solution for anomaly detection.
(2) The anomaly score provided by a statistical technique is associated with a confidence interval, which can be used as additional information while making a decision regarding any test instance.
(3) If the distribution estimation step is robust to anomalies in data, statistical techniques can operate in a unsupervised setting without any need for labeled training data.
The disadvantages of statistical techniques are:
(1) The key disadvantage of statistical techniques is that they rely on the assumption that the data is generated from a particular distribution. This assumption often does not hold true, especially for high dimensional real data sets.
(2) Even when the statistical assumption can be reasonably justified, there are several hypothesis test statistics that can be applied to detect anomalies; choosing the best statistic is often not a straightforward task [Motulsky 1995]. In particular, constructing hypothesis tests for complex distributions that are required to fit high dimensional data sets is nontrivial.
(3) Histogram-based techniques are relatively simple to implement, but a key short- coming of such techniques for multivariate data is that they are not able to capture the interactions between different attributes. An anomaly might have attribute values that are individually very frequent, but whose combination is very rare, however an attribute-wise histogram-based technique would not be able to detect such anomalies.

基於鄰近度、距離、相似度的離群點檢測

不依賴統計檢驗,我們可以將基於鄰近度的離群點看作是那些沒有“足夠多“鄰居的物件。這裡的鄰居是用鄰近度(距離)來定義的。

最常用的距離是絕對距離(曼哈頓)和歐氏距離等等。
一 般 情況 下 ,在低 維 空間 用距離 來 度量 能效 果較 好 ,但 在 高 維 空 間 中效 果 並 不好 。如 果將 低 維 空 間 中基 於 距 離 問題 的解 決 方法 推廣 到 高維 空 間 ,將會 引起 難 以預 料 維度 災 難 問題 。最 近幾 年 有很 多 學者 有 提 出相 似 度 函式(文獻5)。
這裡寫圖片描述
(文獻5)

演算法基本思想是:查詢每個物件o在半徑d範圍內的鄰居數,假設對於一個孤立點來說,在d領域內最多隻能有M的鄰居,那麼對於一個物件x而言,如果發現了M+1鄰居,那麼x就不是一個孤立點。

考慮演算法的計算複雜度,需要進行優化,主要的演算法有:基於索引( iDcex - baSec )的演算法 ,迴圈一巢狀( DeStec - ioop , NL )演算法 ;基於單元( ceII - based )的演算法,詳細可參考文獻1、4。

需要注意的地方:
不適合大資料集,不能處理具有不同區域密度的資料集。**

基於密度的方法

離群點是在低密度區域中的物件。一個物件的離群點得分是該物件周圍密度的逆。所以我們可以看到基於密度的離群點檢測與基於鄰近度的離群點檢測密切相關,因為密度通常用鄰近度定義。

定義密度

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

定義相對密度

為了正確的識別這種資料集中的離群點,我們需要與物件鄰域相關的密度概念,也就是定義相對密度
常見的有兩種方法:(1)使用基於SNN密度的聚類演算法使用的方法;(2)用點x的密度與它的最近鄰y的平均密度之比作為相對密度。使用相對密度的離群點檢測(區域性離群點要素LOF技術):首先,對於指定的近鄰個數(k),基於物件的最近鄰計算物件的密度density(x,k),由此計算每個物件的離群點得分;然後,計算點的鄰近平均密度,並使用它們計算點的平均相對密度。這個量指示x是否在比它的近鄰更稠密或更稀疏的鄰域內,並取作x的離群點得分(這個是建立在上面的離群點得分基礎上的)。

方法優缺點:

(1)給出了物件是離群點的定量度量,並且即使資料具有不同的區域(密度分佈及不均勻)也能夠很好的處理;
(2)引數選擇是困難的。雖然LOF演算法通過觀察不同的k值,然後取得最大離群點得分來處理該問題,但是,仍然需要選擇這些值的上下界。
這裡寫圖片描述
(文獻9)

基於聚類的方法

演算法核心思想

首先聚類所有的點,對某個待測點評估它屬於某一簇的程度。方法是設定一目標函式(例如kmeans法時的簇的誤差平方和),如果刪去此點能顯著地改善此專案標函式,則可以將該點定位為孤立點。

需要注意的是:
基於聚類技術來發現離群點可能是高度有效的,聚類演算法產生的簇的質量對該演算法產生的離群點的質量影響非常大。
還可以參考文獻6。

公開包(演算法)

【1】 Seasonal Hybrid ESD筆記 http://blog.csdn.net/huangbo10/article/details/51942006
Twitter異常監測包 AnomalyDetection
STL(Season Trend decomposition using Loess)==>殘差項==>Generilized ESD提取離群點。

參考文獻

【1】《資料探勘概念與技術》 第8.9 節 Jiawei Han 著
【2】《基於簇的孤立點檢測》 段煉,-,閻保平,李俊
【3】《基於偏魯棒 M - 迴歸的間歇過程離群點檢測》 賈潤達,毛志忠
【4】《基於距離的孤立點檢測及其應用》 陸聲鏈,林士敏
【5】《種 基 於 相似 度 量 的 離群 點 檢 測 方 法》 孫啟林 ,方巨集彬 ,張
健 ,劉 明術
【6】http://blog.csdn.net/qq_26591517/article/details/50677889 基於聚類的離群點檢測
【8】http://blog.csdn.net/huangbo10/article/details/51942006 Seasonal Hybrid ESD筆記
【9】Anomaly Detection: A Survey VARUN CHANDOLA, ARINDAM BANERJEE, and VIPIN KUMAR 2009
【10】Theiler and D.M.Cai. Resampling approach for anomaly detection in multispectral images. In Proceedings of the SPIE 5093,pages 230–240,2003.
【11】S TEINWART , I., H USH , D., AND S COVEL , C. 2005. A classification framework for anomaly detection. J. Mach. learn. Res. 6, 211–232.
【12】A BE , N., Z ADROZNY , B., AND L ANGFORD , J. 2006. Outlier detection by active learning. In Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM Press, New York, 504–509.