ふくふくHukuhuku Inc.
EP.03Anomaly 9分公開: 2026-05-10

Isolation Forest と LOF:教師なしML の二大手法

ラベルなしで「普段と違う点」を見つける機械学習の定番。Isolation Forest(孤立してる点ほど浅く隔離される)と LOF(局所密度比)。

#Isolation Forest#LOF#教師なしML
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

ラベルなしで異常を見つける機械学習手法の定番、Isolation ForestLOF(Local Factor) を扱います。両手法とも scikit-learn で 5 行で実装可。

Isolation Forest

「異常な点ほど少ない分割で隔離できる」という直感に基づく。決定木の深さの平均値で異常スコアを算出。

Isolation Forest の実装
Python
from sklearn.ensemble import IsolationForest
clf = IsolationForest(contamination=0.05, random_state=42)clf.fit(X_train)predictions = clf.predict(X_test)  # -1 が異常、1 が正常scores = clf.score_samples(X_test)  # 連続的な異常度

LOF(Local Outlier Factor)

「周辺の密度に対して、自分の密度が低い点」を異常と判定。Isolation Forest が大局的、LOF が局所的なアプローチ。

LOF の実装
Python
from sklearn.neighbors import LocalOutlierFactor
clf = LocalOutlierFactor(n_neighbors=20, contamination=0.05)predictions = clf.fit_predict(X)  # -1 = 異常、1 = 正常

ハイパーパラメータの決め方

  • contamination:データに占める異常の割合(事前知識から)
  • n_estimators(IF):100 が標準、増やしても効果薄
  • n_neighbors(LOF):20 が標準、データの密度パターンで調整

ふくふくの進め方

ラベルなしの異常検知を取り入れたいケースで、データ特性に応じた手法選定からハイパーパラメータ調整までご支援します。

次回予告

EP.04 は時系列の異常検知:STL 分解と Prophet。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp