古典的機械学習

One-Class SVM わんくらすえすぶいえむ

One-Class SVM異常検知教師なし学習正常データのみ学習ニューラルネット境界
One-Class SVMについて教えて

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

「正常なデータのパターンだけ」を学習して境界を作り、そこから外れたものを異常と判断するSVMベースの異常検知手法だよ。異常データが全く手に入らない状況でも使えるのが強み。ただし大規模データではIsolation Forestの方が速いんだ!


One-Class SVMとは

One-Class SVM(OCSVM)は、SVMを1クラス分類(異常検知)に応用した手法です。正常データのみで学習し、正常データが高密度に分布する領域を超平面で囲むことで「正常の境界」を定義します。境界の外側にある新しいデータを異常と判定します。


通常のSVMとの違い

通常のSVM(2値分類):
  クラスA(正常)│ クラスB(異常)
          ↑ 2クラスを分ける境界

One-Class SVM:
  ┌────────────────────────┐
  │  正常データが集まる領域  │ ← この境界を学習
  └────────────────────────┘
  境界の外 = 異常

主なハイパーパラメータ

パラメータ役割
nu(ν)外れ値の割合の上限(0〜1)。汚染率の事前推定
kernelカーネルの種類(RBFが一般的)
gammaRBFカーネルの幅

Isolation Forestとの比較

比較項目One-Class SVMIsolation Forest
速度遅い(O(n²))速い
スケーラビリティ低い高い
解釈性低い低い
カーネル使える使えない

歴史と背景

  • 1999年:Scholkopf らが提案(NIPS 1999)
  • 現在:中小規模の教師なし異常検知に使用。大規模はIsolation Forestが主流

関連用語

  • SVM — One-Class SVMの基礎理論
  • 異常検知 — One-Class SVMが解決するタスク
  • Isolation Forest — 大規模データ向けの代替手法
  • LOF — 密度ベースの代替手法