Albertsr/Anomaly-Detection

UnSupervised and Semi-Supervise Anomaly Detection / IsolationForest / KernelPCA Detection / ADOA / etc.

解決的問題

本專案提供一系列手寫 Python 實作的表格異常檢測方法。它作為教育資源與歷史紀錄,涵蓋從傳統統計方法到更複雜的核方法等各種非監督與部分監督方法,用於識別資料中的異常值。

工作原理

此程式庫實作了多種異常檢測策略:

  • PCA 與核 PCA 重建誤差: 這些方法透過使用主成分的子集來重構資料,識別異常。無法準確重構的樣本(重建誤差高)會被標記為異常。線性版本使用 SVD/NumPy,而核版本則處理非線性特徵空間。
  • RobustPCC: 一種主成分分類器,透過觀察「主要」成分(原始變數中的極端值)與「次要」成分(異常相關結構)的偏離來識別異常。
  • 其他非監督方法: 包含馬氏距離、孤立森林與局部異常因子(LOF)的實作與說明。
  • 部分監督/PU 學習: 實作了 ADOA、KADOA(使用核 PCA 的實驗性變體),以及正例-未標記(PU)學習策略,如偏置 SVM 與加權邏輯回歸。

適用對象

專為對異常檢測數學基礎感興趣、並偏好以程式碼為導向學習這些演算法的學生、研究人員與開發者設計。

亮點

  • 手寫實作: 重點在於手動撰寫 Python 實作,而非僅依賴高階套件。
  • 教育導向: 將程式碼與公式筆記、論文解析與視覺化說明結合。
  • 多樣化的演算法集合: 涵蓋從線性 PCA 到半監督 PU 學習的廣泛技術。
  • 歷史紀錄: 保留 2018 年時期的原始實作與實驗,以展示作者學習歷程的演進。

相關

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