データ分析基礎知識

“分析力をコアとするデータソリューションカンパニー”
株式会社ALBERTが、データ分析にまつわる基礎知識をわかりやすく解説します。

異常検知とは

異常検知とは、一言で言えば他の大多数のデータとは振る舞いが異なるデータを検出する技術のことです。クレジットカードの不正使用検知、システムの故障予知、異常行動検知等様々な分野で異常検知の技術が用いられています。

異常検知の手法

機械学習による異常検知の手法は、大きく分けると以下のように分類できます。

1.統計モデルに基づくもの
2.データ間の距離に基づくもの

どのような統計モデルを仮定するか、データ間の距離をどのように定義するのかによって様々な異常検知手法が提案されています。ここでは統計モデルに基づく手法としてホテリング理論を、距離に基づく手法としてk近傍法とlof法を紹介します。

ホテリング理論

統計モデルに基づく異常検知技術で最も有名なものとしてホテリング理論があります。ホテリング理論は異常検知の考え方を学ぶ非常に良い例なので、以下で詳しく解説していきます。

異常検知の例として、まず一番簡単な一変数の場合を見てみましょう。図1.はある集団200人の身長データのヒストグラムです。1つのデータを除いて140cm~200cmの間に分布しており、釣鐘型の正規分布の形をしています。この例ではおそらく誰が見ても50cm付近にある1点は異常値ですが、もし仮に120cm付近にデータがあった場合これは異常値でしょうか。人の主観に左右されない異常データを見つけるための基準が必要です。統計的モデルを用いて客観的に評価できるようにしたのがホテリングの理論です。

一変数データにおける異常値の例
図1.一変数データにおける異常値の例

ホテリングの理論ではデータの分布として正規分布を仮定します。正規分布の母平均をμ、母標準偏差をσとすると観測データxは以下の確率密度分布に従って出現すると考えます。

μとσは正規分布の母数であり、直接観測できない量ですが、観測値が{x1,x2,…,xn}と与えられた時、データの標本平均m、標本標準偏差sで推定できることが知られています。

今、異常値を含まないか含んでいたとしてもμ、σの推定には影響を無視できるほど少数しか含んでいない観測データ{x1,x2,…,xn}からm、sが得られていたとします。新しい観測データx’が得られた時x’の異常度a(x’)を以下のように定義します。

右辺を2倍してx’に関係しない項を削除した物を新たにa(x’)と置くことで、異常度a(x’)は以下のように定義できます。

ホテリング理論の要はこうして定義したa(x’)はデータ数nが十分に大きい時、自由度1のカイ二乗分布に従うということが数学的に証明できるということです。これによって分析者の主観に寄らずに、「異常度a(x’)が10以上をとる確率は0.16%しかないので、偶然起きたとは考えにくく、このデータは異常値に違いない」と主張をすることができるようになります。

ホテリング理論の問題点

ホテリング理論は異常値を検出する最も基礎的な方法ですが以下の問題点があります。

1.データが単一の正規分布から発生していると仮定しているため、正規分布から著しく外れている場合、分布が複数の山を持つ場合などは異常値を正しく判断できなくなる

2.正規分布のパラメータは変化しないとしているために、分布のパラメータが変化するような時系列データには適用することができない

1.の問題点を解決するための手法として距離に基づく異常検知手法や混合分布を用いた異常検知があります。距離に基づく異常検知を以下で解説します。また2.の問題点に関しては時系列データに対する異常検知のページで解説します。

ホテリング理論はこれらのような問題点はあるものの、半導体工場などの管理された安定した場所での長い利用実績があります。

k近傍法

ホテリング理論ではデータが正規分布から生成されていると仮定しているため、正常なデータが図2のような多数のクラスターからなる場合にはうまく異常値を取り除くことができません。そこで確率分布を明示的には仮定せずに、各点から最も近いデータへの距離を計算することで異常値を検知する手法(最近傍法)がよく使われます。
図2の例では異常値の点だけ突出して各クラスターからの距離が大きくなっています。
最近傍法では、あるデータから別の最も近くにあるデータ(最近傍点)までの距離がある閾値を越えたらその点は異常値であると判定します。
このとき、閾値は分析者が何らかの方法であらかじめ決めておく必要があります。

複数のクラスターからなるデータ(クラスター内のデータ密度が同じ場合)
図2.複数のクラスターからなるデータ(クラスター内のデータ密度が同じ場合)

距離の定義にはユークリッド距離が使われることが多いですが、マハラノビス距離やマンハッタン距離など任意の距離を用いることもできます。距離の定義に関してはクラスター分析の手法①をご覧ください。

最近傍法では最も近い点までの距離を用いて異常値を判別しますが、最も近い点の代わりに2番目に近い点、3番目に近い点までの距離を用いることも可能です。これらはまとめてk近傍法と呼ばれています。

局所外れ値因子法(lof法)

k近傍法では閾値をあらかじめ決めておく必要がありますが、どのような値を選ぶかはデータに強く依存しており特に多次元の場合などには簡単ではありません。また、図3のような各クラスターでクラスター内におけるデータ密度が全く異なる場合には最近傍法は不適切となる可能性があります。図3は、異常値よりも、右側にあるクラスター内の点の方が最近傍点への距離が大きくなっています。異常値を検知できるように閾値を決めてしまうと右側にある6個の点は全て異常値と判定されてしまいます。

複数クラスターからなるデータ(クラスター内のデータ密度が異なる場合)
図3.複数クラスターからなるデータ(クラスター内のデータ密度が異なる場合)

これらの問題点を解決するために使われる手法が局所外れ値因子(lof: local outlier factor)法と呼ばれる手法です。異常値をp、pに最も近い点をp’とするとp’から見た最近傍点はpではなく左下のクラスターのなかのどれかとなり、点pの最近傍点までの距離r(p)は点p’の最近傍点までの距離r(p’)よりもずっと大きくなるはずです。そこで任意の点pの異常度a(p)を以下のように定義し、

異常度a(p)が1より大きなある閾値を超えた時に異常値とみなすことにします。ここでは解説しませんが、この手法もk>1の場合に拡張できます。lof法はk近傍法がうまくいかないような問題にも比較的妥当な結果を返すことが経験的に知られています。

k近傍法、lof法では閾値をどのように定めるかということは統計モデルを用いた方法ほどには明確に定められませんが、距離に基づく異常検知技術も広く使われています。

このページをシェアする

About

ALBERTについて