外れ値検出

Isolation Forestによる数値データの異常検出. Isolation Forestアルゴリズムで外れ値を識別します。異常スコアが高いデータポイントは、汚染率の閾値に基づいて潜在的な異常として検出されます。

Isolation Forestアルゴリズムで外れ値を識別します。異常スコアが高いデータポイントは、汚染率の閾値に基づいて潜在的な異常として検出されます。

Isolation Forest外れ値検出とは?

Isolation Forest は、外れ値が「少数かつ異質」であるという原理に基づく教師なし機械学習の異常検知アルゴリズムである。外れ値は正常点よりも分離しやすい。距離ベースの手法とは異なり、距離や密度を計算しないため、大規模データセットに対して非常に効率的である。

このアルゴリズムは、ランダムな分離木(isolation tree)のアンサンブルを構築する。各木は、特徴量と分割値をランダムに選びながらデータを再帰的に分割する。異常値は希少かつ特徴的であるため、分離に必要な分割回数が少ない(根から葉までの経路長が短い)。一方、正常点は密集しているため、より多くの分割を必要とする。

異常スコアは、全ての木にわたる平均経路長を、データセットの大きさに対する期待経路長で正規化して求める。スコアが 1 に近いほど異常、0.5 に近いほど正常を示す。contamination(汚染率)パラメータは想定される異常値の割合を指定し、分類のためのスコアしきい値を決定する。

Formula: Anomaly Score s(x, n) = 2^(-E(h(x)) / c(n)) c(n) = 2H(n-1) - 2(n-1)/n where h(x) = path length, c(n) = average path length in BST, H(i) = harmonic number ≈ ln(i) + 0.5772

計算例

contamination = 0.05(外れ値が約 5 個と想定)のデータ点 100 個。分離木を 100 本構築する。点 A は平均経路長 3.2(速やかに分離される → 異常スコア 0.82 → 検出)。点 B は平均経路長 8.7(分離しにくい → 異常スコア 0.45 → 正常)。4 点がしきい値を超え、異常として検出された。

この計算機を使用する場面

よくある間違い

結果の解釈方法

関連規格・参考文献

よくある質問

contamination パラメータはどのように設定すればよいですか?

contamination は、データに含まれる異常値の想定割合です。過去の異常発生率(例:不良率 2%)が分かっていれば、その値を使います。不明な場合は 0.05-0.10 から始め、現場の知見に基づいて調整してください。低すぎる → 実際の異常を見逃します。高すぎる → 正常点まで異常として検出されます。検出された点を目視で確認すると較正の助けになります。

Isolation Forest は他の外れ値検出手法と比べて、どのような場合に使うべきですか?

Isolation Forest は、高次元データ、大規模データセット、そして外れ値が大域的に際立っている場合に威力を発揮します。局所的な密度が重要な場合(近傍に対して相対的に外れている場合)は LOF を使います。単純な一変量データには統計的手法(Z-score、IQR)が適します。クラスタリングも同時に必要なら DBSCAN を使います。Isolation Forest は O(n log n) の計算量であり、最もスケーラブルな選択肢です。