外れ値検出のアルゴリズム Minimum Covariance Determinant

18
外れ値検出のアルゴリズム(1) Minimum Covariance Determinant AJAレコメンドエンジン 大澤 翔吾

Transcript of 外れ値検出のアルゴリズム Minimum Covariance Determinant

外れ値検出のアルゴリズム(1)Minimum Covariance Determinant

AJAレコメンドエンジン大澤 翔吾

目次

● 外れ値検出とは

● 多変量正規分布に基づく外れ値検出

● マハラノビス距離

● ロバストな平均と共分散行列の推定

● FAST-MCDアルゴリズム

外れ値検出とは

● 他と比べて「変」なデータ● 「期待されるパターン」にそぐわないデータ

を見つけ出す問題。

「変」「期待されるパターン」は適用する領域によって異なる。

外れ値検出のイメージ

0 体重

身長

外れ値検出のイメージ

多変量正規分布に基づく外れ値検出

● 「通常」のデータは多変量正規分布にしたがうと仮定して、それにそぐわないデータを検出する

● 他の手法に比べて仮定が厳しいが、それさえクリアすれば強力

● 多変量正規分布の平均と共分散行列を推定するのが難しいポイント

多変量正規分布

f (x)=1

(√2π)d√|Σ|

exp( 12 (x−μ)TΣ

−1(x−μ))

μ平均ベクトル と共分散行列 Σ がパラメーター

多変量正規分布のイメージ

出典:http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/sozai/prob.html

多変量正規分布のイメージ

平均ベクトルから離れるほど生起確率が低くなる。

距離だけではなく、向きも考慮しなくてはいけない。

分散の小さい方向に動けば大きく減少。

分散の大きい方向に動けば小さく減少。

出典:http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/sozai/prob.html

同じ距離だけ動いても、向きによって確率の減少率が変わる!

マハラノビス距離

MD( x)=√(x−μ)T Σ−1(x−μ)

μ平均ベクトル からの距離を、共分散行列 Σ を考慮して定義

d次元のマハラノビス距離の二乗は自由度dのカイ二乗分布にしたがう

図の出典:https://en.wikipedia.org/wiki/Chi-squared_distribution#Table_of_.CF.872_values_vs_p-values

カイ二乗値とp-quantileの対応表を使えばマハラノビス距離がどれくらい大きければ生起確率が十分小さくなるか検証できる

二次元の場合、マハラノビス距離が5.99より大きくなる可能性は5%

平均ベクトルと共分散行列の推定

平均ベクトルと共分散行列が求まれば、マハラノビス距離とカイ二乗分布を使って異常値を検出できる。

平均ベクトルと共分散行列はどうやって求めよう?

最尤推定(標本の平均と共分散行列をそのまま使う)でいいのかな?

最尤推定は異常値に対して弱い

図の出典:Mia Hubert, Minimum covariance determinant, WIREs Computational Statistics

最尤推定は異常値に対して弱い

異常値を含めて最尤推定すると平均も共分散行列もデタラメになってしまう。

特に、分散が大きくなりすぎ、マハラノビス距離がどの標本に対しても小さくなってしまう。

コンパクトにまとまった部分集合に対して、平均と共分散行列を計算したい。

図の出典:Mia Hubert, Minimum covariance determinant, WIREs Computational Statistics

Minimum Covariance Determinant

共分散行列の行列式が最小の(=コンパクトな)部分集合Hを見つけ、Hに対して平均と共分散行列を計算し、マハラノビス距離の計算に使う方法

可能な部分集合全てに対して共分散行列を全部計算するのは非現実的(指数オーダー)

FAST-MCDという局所解を求める高速な手法を使う

FAST-MCD

1.ランダムな部分集合H1に対して、平均ベクトルμ1と共分散行列Σ1を計算する

2.μ1とΣ1を用いて全標本のマハラノビス距離を計算し、最もマハラノビス距離が小さいh個の標本を新たな部分集合H2とする

3.Σiの行列式が0になるか、更新されなくなるまで1-2を繰り返す

FAST-MCDの性質

● 共分散行列の行列式は各ステップで単調非増加になることが保証されている– 証明はむずすぎてよくわかんない…

● サンプルサイズ h = (d + n + 1) / 2 のとき最もロバストになる– これも意味わかんない…

● でも実装は簡単だし動作も高速● 当たり前だけど正規分布にしたがわないデータに

対してはデタラメな結果しか出ない

MCDの適用例

図の出典:http://scikit-learn.org/stable/modules/outlier_detection.html

上下に引っ張られてた楕円がシャープになった

次回以降の予定

● 全く違う発想のアルゴリズムIsolation ForestとLocal Outlier Factorを解説する予定