檢測異常的 9 種方法

В 上一篇文章 我們討論了時間序列預測。 合乎邏輯的延續將是一篇關於識別異常的文章。

應用

異常檢測用於以下領域:

1)設備故障預測

因此,2010年,伊朗離心機遭到震網病毒攻擊,導致設備進入非最佳運作狀態,部分設備因加速磨損而癱瘓。

如果在設備上使用異常檢測演算法,則可以避免故障情況。

檢測異常的 9 種方法

尋找設備運作中的異常不僅用於核工業,還用於冶金和飛機渦輪機的運作。 在其他領域,使用預測診斷比由於不可預測的故障而可能造成的損失更便宜。

2)詐欺預測

如果從您在阿爾巴尼亞波多利斯克使用的卡片中提取資金,交易可能需要進一步檢查。

3)異常消費模式識別

如果某些客戶表現出異常行為,則可能存在您沒有意識到的問題。

4)異常需求和負載識別

如果快速消費品商店的銷售額低於預測的置信區間,則值得找出發生這種情況的原因。

識別異常的方法

1)具有一類一類SVM的支援向量機

適用於訓練集中的資料服從常態分佈,但測試集中包含異常情況。

一類支援向量機在原點周圍構造一個非線性曲面。 可以設定資料被視為異常的截止限制。

根據我們 DATA4 團隊的經驗,One-Class SVM 是解決發現異常問題最常用的演算法。

檢測異常的 9 種方法

2)隔離森林法

採用「隨機」造樹方法,排放物將在早期階段(在樹的較淺深度)進入葉子,即排放更容易「隔離」。 異常值的隔離發生在演算法的第一次迭代中。

檢測異常的 9 種方法

3)橢圓包絡線及統計方法

當資料呈常態分佈時使用。 測量值越接近混合分佈的尾部,該值越異常。

其他統計方法也可以包含在此類中。

檢測異常的 9 種方法

檢測異常的 9 種方法
圖片來自 dyakonov.org

4) 公制方法

方法包括 k-近鄰、k-近鄰、ABOD(基於角度的異常值偵測)或 LOF(局部異常值因子)等演算法。

如果特徵中的數值之間的距離相等或標準化(以免測量鸚鵡中的蟒蛇),則適用。

k近鄰演算法假設正常值位於多維空間的某個區域,且到異常點的距離將大於到分離超平面的距離。

檢測異常的 9 種方法

5)聚類方法

聚類方法的本質是,如果一個值距離聚類中心超過一定量,則該值可以被認為是異常的。

最主要的是使用正確聚類資料的演算法,這取決於具體任務。

檢測異常的 9 種方法

6) 主成分法

適用於突顯色散變化最大的方向的情況。

7)基於時間序列預測的演算法

這個想法是,如果一個值落在預測置信區間之外,則該值被視為異常。 為了預測時間序列,使用了三重平滑、S(ARIMA)、boosting 等演算法。

時間序列預測演算法在上一篇文章中討論過。

檢測異常的 9 種方法

8)監督學習(迴歸、分類)

如果資料允許,我們會使用從線性迴歸到循環網路的各種演算法。 讓我們衡量一下預測值與實際值之間的差異,並得出數據偏離常態的程度的結論。 重要的是演算法具有足夠的泛化能力且訓練集不包含異常值。

9) 模型試驗

讓我們將搜尋異常的問題視為搜尋建議的問題。 讓我們使用 SVD 或分解機來分解我們的特徵矩陣,並將新矩陣中與原始矩陣顯著不同的值視為異常。

檢測異常的 9 種方法

圖片來自 dyakonov.org

結論

在本文中,我們回顧了異常檢測的主要方法。

發現異常在許多方面都可以稱為一門藝術。 不存在可以解決所有問題的理想演算法或方法。 更多時候,使用一組方法來解決特定情況。 異常檢測是使用一類支援向量機、隔離森林、度量和聚類方法以及使用主成分和時間序列預測來進行的。

如果您知道其他方法,請在文章的評論中寫下它們。

來源: www.habr.com

添加評論