vc1492a/PyNomaly

Anomaly detection using LoOP: Local Outlier Probabilities, a local density based outlier detection method providing an outlier score in the range of [0,1].

解決的問題

PyNomaly 是 Local Outlier Probabilities (LoOP) 的 Python 實作,用於檢測資料集中的異常值。與傳統方法提供原始分數不同,LoOP 提供 0 到 1 之間的歸一化分數,可直接解釋為特定資料點為異常值的機率。

工作原理

該函式庫透過多階段流程計算異常值機率:

  1. 最近鄰距離:為每個觀測值找出 k 個最近鄰。
  2. 標準距離:計算這些距離的均方根,以捕捉平均鄰居距離。
  3. 機率距離:透過「範圍」參數(lambda)縮放標準距離,以控制敏感度。
  4. 機率局部離群因子 (PLOF):計算觀測值的機率距離與其鄰居平均機率距離的比值。
  5. 歸一化 PLOF (nPLOF):應用歸一化常數,確保不同群集間的分數具可比性。
  6. 局部離群機率 (LoOP):對最終比值應用高斯誤差函數,產生 0 到 1 之間的機率。

適用對象

專為需要密度基礎異常檢測工具、並希望獲得可解釋的機率結果而非任意分數的資料科學家與實務者設計。

特色亮點

  • 可解釋的分數:輸出為歸一化機率 [0, 1]。
  • 群集感知:支援可選的群集標籤,可計算相對於特定群組而非整個資料集的異常機率。
  • 效能優化:整合 Numba 實現 JIT 編譯與多核心平行處理,同時利用 Scipy 優化距離計算。
  • 彈性距離度量:允許使用者提供自訂距離矩陣與鄰居矩陣,使用非歐幾里得距離度量。
  • 串流支援:包含針對串流資料的改良方法,避免昂貴的全資料集重擬合。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案