[[異常検知]]アルゴリズムの一種。
---
[2.7. Novelty and Outlier Detection — scikit-learn 1.0.2 documentation](https://scikit-learn.org/stable/modules/outlier_detection.html)
中程度の高次元データセットに対して外れ値検出を効率的に行う方法として、Local Outlier Factor (LOF)アルゴリズムを用いる方法がある。
neighbors.LocalOutlierFactor (LOF) アルゴリズムは,オブザベーションの異常さの度合いを反映するスコア(ローカル・アウトライヤー・ファクターと呼ばれる)を計算する.これは,与えられたデータポイントの近隣に対する局所的な密度偏差を測定する.そのアイデアは、その近隣よりも実質的に低い密度を持つサンプルを検出することである。
実際には,局所密度はk-最近傍から得られる.あるオブザベーションのLOFスコアは、そのk近傍の平均局所密度とそれ自身の局所密度の比に等しい:正常なインスタンスは、その近傍の密度と同様の局所密度を持つと期待されるが、異常なデータはより小さな局所密度を持つと期待される。
近傍の数k(別名パラメータn_neighbors)は、通常、1)クラスタが含まなければならないオブジェクトの最小数より大きく、他のオブジェクトがこのクラスタに対して局所外れ値になり得るようにし、2)局所外れ値になり得る近傍オブジェクトの最大数より小さく選択される。実際には、このような情報は一般に利用できないので、n_neighbors=20とすることが一般にうまくいくようである。外れ値の割合が高い場合(下の例のように10%以上)、n_neighborsを大きくする必要がある(下の例ではn_neighbors=35)。
LOFアルゴリズムの強みは、データセットの局所的な性質と大域的な性質の両方を考慮することである:異常なサンプルが異なる密度を持つデータセットでもうまく実行できる。問題は、サンプルがどれだけ孤立しているかではなく、周囲の近隣に対してどれだけ孤立しているかである。
LOFを外れ値検出に適用する場合、predict、decision_function、score_samplesメソッドはなく、fit_predictメソッドのみとなります。学習サンプルの異常のスコアは、negative_outlier_factor_属性でアクセスできます。predict, decision_function, score_samples は、LOF が新規性検出のために適用されたとき、つまり新規性パラメータが True のときに、新しい未見データに対して使用できることに注意してください。Local Outlier Factorを用いた新規性検出を参照。