古典的機械学習

LOF(局所外れ値因子) えるおーえふ・きょくしょはずれちいんし

LOF局所外れ値因子密度ベース異常検知Local Outlier Factor外れ値スコア
LOFについて教えて

簡単に言うとこんな感じ!

「周囲のデータと比べてどれだけ孤立しているか」を局所的な密度の比較で測る異常検知アルゴリズムだよ。「全体でみると普通の場所でも、周辺のデータに比べてまばらな点は異常」という考え方。密度が違う複数のクラスターがあるデータでも機能するのが特徴なんだ!


LOFとは

LOF(Local Outlier Factor:局所外れ値因子)は、各データ点の局所的な密度を近傍との比較で算出し、密度が著しく低い点を異常として検出するアルゴリズムです。1999年にBreunigらが提案しました。


LOFスコアの解釈

LOFスコア ≈ 1.0  →  正常(周囲と同じくらいの密度)
LOFスコア >> 1.0 →  異常(周囲より密度が低い、孤立している)

厳密には:
  LOF(p) = 周辺k-近傍のlrd(平均) / lrd(p)
  lrd:局所到達可能密度

直感的な例

密な市街地に住む人A(低LOF = 正常)
郊外に独立して住む人B(高LOF = 異常)

← 密な市街地 → ← 郊外 →
○○○○○○             ×

Aの密度と周辺の密度は同じ → LOF ≈ 1
Bの密度は周辺より著しく低い → LOF >> 1

Isolation Forestとの使い分け

状況推奨手法
大規模データ(万件〜)Isolation Forest
小〜中規模データLOF
密度が均一なデータどちらでも可
密度が不均一なデータLOF が有効

歴史と背景

  • 2000年:BreunigらがSIGMOD 2000で発表
  • 現在:scikit-learnに実装。中小規模の異常検知で使われる

関連用語