所謂異常檢測就是發現與大部分對象不同的對象,也就是發現離群點。一般規定數據具有“正常”模型,而異常被認為是與這個正常模型的偏差。異常點在某些場景下反而令分析者感到極大興趣,如疾病預測,通常健康人的身體指標在某些維度上是相似,如果一個人的身體指標出現了異常,那么他的身體情況在某些方面肯定發生了改變,當然這種改變並不一定是由疾病引起(通常被稱為噪音點),但異常的發生和檢測是疾病預測一個重要起始點。相似的場景也可以應用到信用欺詐,網絡攻擊等等。
應用領域
- 網絡入侵檢測
- 保險/信用卡詐騙檢測
- 保健信息獲取/醫療診斷
- 產業損壞檢測
- 圖像處理/視頻監控
主要挑戰
- 很難定義具有代表性的“正常”區域
- 正常行為與異常行為之間的界限往往並不明確
- 不同的應用領域對異常值的確切定義不同
- 難以獲取用於訓練/驗證的標記數據
- 數據可能含有噪聲
- 正常行為並不是一成不變的,會不斷發展變化
異常檢測方法
1、四分位箱型圖
- 這種方法是利用箱型圖的四分位距(IQR)對異常值進行檢測,也叫Tukey‘s test。
- 四分位距(IQR)就是上四分位與下四分位的差值。而我們通過IQR的1.5倍為標准,規定:超過(上四分位+1.5倍IQR距離,或者下四分位-1.5倍IQR距離)的點為異常值。
2、3∂原則
- 這個原則有個條件:數據需要服從正態分布。
- 在3∂原則下,觀測值與平均值的差別如果超過3倍標准差,那么可以將其視為異常值。正負3∂的概率是99.7%,那么距離平均值3∂之外的值出現的概率為P(|x-u| > 3∂) <= 0.003,屬於極個別的小概率事件。
- 如果數據不服從正態分布,也可以用遠離平均值的多少倍標准差來描述,多少倍的取值需要根據經驗和實際情況來決定。
3、基於模型檢測
- 這種方法一般會構建一個概率分布模型,並計算對象符合該模型的概率,把具有低概率的對象視為異常點。如果模型是簇的集合,則異常是不顯著屬於任何簇的對象;如果模型是回歸時,異常是相對遠離預測值的對象。
- 離群點的概率定義:離群點是一個對象,關於數據的概率分布模型,它具有低概率。這種情況的前提是必須知道數據集服從什么分布,如果估計錯誤就造成了重尾分布。
- 比如特征工程中的RobustScaler方法,在做數據特征值縮放的時候,它會利用數據特征的分位數分布,將數據根據分位數划分為多段,只取中間段來做縮放,比如只取25%分位數到75%分位數的數據做縮放。這樣減小了異常數據的影響。
--- 優缺點:
- (1)有堅實的統計學理論基礎,當存在充分的數據和所用的檢驗類型的知識時,這些檢驗可能非常有效;
- (2)對於多元數據,可用的選擇少一些,並且對於高維數據,這些檢測可能性很差。
4、基於近鄰度的離群點檢測
- 統計方法是利用數據的分布來觀察異常值,一些方法甚至需要一些分布條件,而在實際中數據的分布很難達到一些假設條件,在使用上有一定的局限性。
- 確定數據集的有意義的鄰近性度量比確定它的統計分布更容易。這種方法比統計學方法更一般、更容易使用,因為一個對象的離群點得分由到它的k-最近鄰(KNN)的距離給定。
- 需要注意的是:離群點得分對k的取值高度敏感。如果k太小,則少量的鄰近離群點可能導致較低的離群點得分;如果K太大,則點數少於k的簇中所有的對象可能都成了離群點。為了使該方案對於k的選取更具有魯棒性,可以使用k個最近鄰的平均距離。
--- 優缺點:
- (1)簡單;
- (2)缺點:基於鄰近度的方法需要O(m2)時間,大數據集不適用;
- (3)該方法對參數的選擇也是敏感的;
- (4)不能處理具有不同密度區域的數據集,因為它使用全局閾值,不能考慮這種密度的變化。
5、基於密度的離群點檢測
- 從基於密度的觀點來說,離群點是在低密度區域中的對象。基於密度的離群點檢測與基於鄰近度的離群點檢測密切相關,因為密度通常用鄰近度定義。
- 一種常用的定義密度的方法是,定義密度為到k個最近鄰的平均距離的倒數。如果該距離小,則密度高,反之亦然。
- 另一種密度定義是使用DBSCAN聚類算法使用的密度定義,即一個對象周圍的密度等於該對象指定距離d內對象的個數。
-- 優缺點:
- (1)給出了對象是離群點的定量度量,並且即使數據具有不同的區域也能夠很好的處理;
- (2)與基於距離的方法一樣,這些方法必然具有O(m2)的時間復雜度。對於低維數據使用特定的數據結構可以達到O(mlogm);
- (3)參數選擇是困難的。雖然LOF算法通過觀察不同的k值,然后取得最大離群點得分來處理該問題,但是,仍然需要選擇這些值的上下界。
6、基於聚類的方法來做異常點檢測
- 基於聚類的離群點:一個對象是基於聚類的離群點,如果該對象不強屬於任何簇,那么該對象屬於離群點。
- 離群點對初始聚類的影響:如果通過聚類檢測離群點,則由於離群點影響聚類,存在一個問題:結構是否有效。這也是k-means算法的缺點,對離群點敏感。為了處理該問題,可以使用如下方法:對象聚類,刪除離群點,對象再次聚類(這個不能保證產生最優結果)
-- 優缺點:
- (1)基於線性和接近線性復雜度(k均值)的聚類技術來發現離群點可能是高度有效的;
- (2)簇的定義通常是離群點的補,因此可能同時發現簇和離群點;
- (3)產生的離群點集和它們的得分可能非常依賴所用的簇的個數和數據中離群點的存在性;
- (4)聚類算法產生的簇的質量對該算法產生的離群點的質量影響非常大。
7、專門的離群點檢測
- One Class SVM
- Isolation Forest
參考資料