異常検出の自動しきい値決定


9

私は時系列の異常スコアを操作しています(背景はコンピューターネットワークでの異常検出です)。毎分、異常なスコアが表示されます。これは、ネットワークの現在の状態が「予期しない」または異常な状態であることを示しています。スコアが高いほど、現在の状態が異常になります。5に近いスコアは理論的には可能ですが、ほとんど発生しません。バツt[05]

次に、この異常時系列のしきい値を自動的に決定するアルゴリズムまたは式を考え出します。異常スコアがこのしきい値を超えるとすぐに、アラームがトリガーされます。

以下の頻度分布は、1日にわたる異常時系列の例です。ただし、すべての異常時系列がそのようになると想定するの安全ではありません。この特別な例では、非常に右側の少数のスコアを異常と見なすことができるため、.99-分位数などの異常しきい値は理にかなっています。

ここに画像の説明を入力してください

そして、時系列と同じ頻度分布(時系列に高い異常スコアがないため、範囲は0から1のみです):

時系列

残念ながら、頻度分布は形状を持っている可能性があり、.99-分位数は役に立ちません。以下に例を示します。右尾は非常に低いため、.99-分位数をしきい値として使用すると、多くの誤検出が発生する可能性があります。この頻度分布には異常が含まれていないようなので、しきい値は分布の約0.25の外側にある必要があります。

ここに画像の説明を入力してください

要約すると、これらの2つの例の違いは、最初の例では異常が見られるように見え、2番目の例では異常が見られないことです。

私の素朴な観点から、アルゴリズムはこれらの2つのケースを考慮する必要があります:

  • 頻度分布の右端が大きい場合(つまり、いくつかの異常スコア)、. 99-分位数は適切なしきい値になります。
  • 頻度分布の右裾が非常に短い(つまり、異常スコアがない)場合、しきい値は分布の外側にあるはずです。

/編集:グラウンドトゥルースもありません。つまり、ラベル付きデータセットが利用可能です。したがって、アルゴリズムは異常スコアの性質に対して「ブラインド」です。

現在、これらの観察がアルゴリズムまたは式の観点からどのように表現されるかはわかりません。この問題を解決する方法を誰かが提案していますか?私の統計的背景は非常に限られているので、私の説明が十分であることを願っています。

ご協力いただきありがとうございます!


ただのメモですが、最初のグラフは私にとって通常のようには見えません。
mpiktas

1
@cryptron、重要な質問は、健全なしきい値とは何かです。たとえば、発生したアラームと発生していないアラームのそれぞれに特定のコストが発生する場合は、合計コストを最小化するようにしきい値を選択できます。そのためにはコストデータが必要です。の正確な定義がなければ、しきい値を選択するために選択された方法を評価する方法を測定することは不可能です。
mpiktas

@mpiktas:私は認めざるを得ません。「音」という言葉は、このコンテキストでは不幸でした。厳密にしきい値を評価する方法がないためです(したがって、編集してしまいました)。基本的に、しきい値は、誤検知を最小限に抑えるように想定されています。これは、ネットワーク異常検出における誤検知よりもはるかにコストがかかるためです。
クリプトロン2011年

@cryptron、偽陽性とは何かに関するデータはありますか?
mpiktas

1
{バツt}0<バツt50<バツt0.5

回答:


2

あなたはこの論文に興味があるかもしれません。West&Harrisonでの類似モデルの詳細なプレゼンテーションも参照してください。この種の監視には他にも例があり、その多くは最近のものですが、これはまさに私の操舵室ではありません:)。間違いなく、これらのモデルの適切な実装がありますが、それらが何であるかはわかりません...

基本的な考え方は、一部の観測/観測のシーケンスが異常なネットワーク状態に起因し、残りが正常であると見なされるスイッチングモデルがあるということです。このような混合は、最初のプロットの長い右尾の原因となる可能性があります。動的モデルは、問題の状態に属する新しい観測に高い確率を割り当てることにより、リアルタイムで8:00や4:00のような異常なジャンプを警告することもできます。また、簡単に拡張して、予測変数、定期的なコンポーネント(アクティビティによってスコアが少し上がる/下がるなど)やそのようなものを含めることもできます。

編集:私も追加する必要があります。この種のモデルは、異常が大きな平均シフトまたは分散の増加のいずれかを示すことによって捕捉されるという意味で「監視なし」です。データを収集すると、より有益な事前分布でモデルを改善できます。しかし、おそらく、十分なデータ(およびネットワークの問題に対処することで得られたトレーニングの例!)があれば、いくつかの簡単な監視ルール(しきい値など)を考案できます。


1

異常を構成するものの「ラベル付き」の例はありますか?つまり、ネットワーク障害に関連する値、またはそのようなもの?

適用を検討する可能性のあるアイデアの1つは、ROC曲線です。これは、真陽性を最大化したり、偽陰性を最小化したりするなど、特定の基準を満たすしきい値を選択するのに役立ちます。

もちろん、ROC曲線を使用するには、何らかの方法でデータにラベルを付ける必要があります。


1
残念ながら、ラベル付きのデータセットはありません。ロングテールまたは外れ値がデータセットの異常を示すという仮定のみがあります。
クリプトロン

@cryptronなるほど。したがって、必要なのは、外れ値を動的に識別する方法です。
ザック

そうすれば問題の一部は解決します。
クリプトロン

1

「元のシリーズ」のグラフは、事前に定義された構造を示す必要はありません。重要なのは、「適切なモデルシリーズの残差」のグラフは、ガウス構造を示す必要があるということです。この「ガウス構造」は、通常、次の「変換」の1つ以上を組み込むことで取得できます。1.有馬モデル2.ローカルレベルシフトまたはローカル時間トレンドまたは季節パルスまたは通常パルスの調整3.証明された分散の不均一性を利用する加重分析4.特定の分散の不均一性に対処するための可能な電力変換(ログなど)5.モデル/パラメーターが変更された可能性がある時点の検出。

介入検出は、正常または異常のいずれかを示唆する最新のイベントの統計的有意性についてのステートメントを生成します


0

私の以前の回答に対するOPの返答で、彼はデータをウェブに投稿しました。24時間、6日間、1時間あたり60回の読み取り。これは時系列であるため、DBSCANのような断面ツールは、データに時間依存性があるため、関連性が制限されています。このようなデータでは、通常、時間内および日内の構造を探します。これらの種類の構造に加えて、十分に文書化されている方法(Tsay、Tiao、Chen et。 al。)これらの手順により、次の「異常」が発生しました。レベルのシフトは、本質的に別個の「クラスター」を示​​唆していることに注意してください。 識別された上位の異常

                                HOUR/MINUTE     TIME

-1

友人がクラスタリングアルゴリズムの方向を教えてくれた後、DBSCANに出くわしました。DBSCANは、2つの定義済みパラメーターに従ってn次元空間にクラスターを構築します。基本的な考え方は、密度ベースのクラスタリングです。つまり、密集した領域がクラスタを形成します。外れ値はアルゴリズムによって個別に返されます。したがって、私の1次元ヒストグラムに適用すると、DBSCANは、異常スコアが異常値を特徴としているかどうかを教えてくれます。注:DBSCANでは、異常値はどのクラスターにも属さない単なるポイントです。通常の操作では、アルゴリズムが生成するクラスターは1つのみ(外れ値なし)になると思います。

ε0.1

外れ値を特定できた後、しきい値を見つけると、次のような単純なルールに要約されます。

  • セットが異常値を示している場合は、「通常」クラスターと「異常値」クラスターの間にしきい値を設定して、両方のマージンが最大になるようにします。
  • セットが異常値を示さない場合は、最も右側のポイントから1標準偏差離れたしきい値を設定します。

とにかく、すべての役立つ返信をありがとう!


@crypton DBSCANは自己相関系列をどのように扱いますか。たとえば、時系列1,9,1,9,1,9,5は、インライア/異常な値を持ちます。それはシリーズのレベルシフトまたはいくつかの可能な傾向を扱いますか?毎月の6月を除くシリーズが「定期的」であるのに対し、毎年6月は「大規模」である季節的な自己回帰データをどのように処理しますか。「6月の大きな値」は異常値として検出されますか?ちょっと興味があるんだけど !
IrishStat

2
@IrishStat基本的に、DBSCANはポイントをn次元空間にクラスター化します。したがって、時系列分析への適合性は非常に限られています。私の(1次元)ヒストグラムでは1つのクラスターしか期待していないため、これは私の特別なケースで機能します。質問に答えるには:適切なパラメーターを使用すると、例の値5が異常値として検出されます。傾向に対応できると思いますが、時系列「1、2、3、4、5、6、7、2」では、値2は異常値と見なされません。DBSCANの機能と制限についておおまかな説明が得られることを願っています。
クリプトロン'18年

1
@crypton情報をありがとう。1つのクラスターを参照する場合、1つだけの平均を意味するように見えます。データの平均自己相関にシフトがない場合でも、それは「時系列」にレンダリングされます。これは、DBSCANが信号をノイズから分離してアナモルスデータの効率的な識別につながると考えるほど有用ではないことを示唆しています。
IrishStat 2011年

1
@cryptonこれらの値の周りにいくつかの小さな偏差がある1,1,1,1,2,2,2,2の時系列と比較して、1つのクラスターは1つの平均を意味するように見えます。
IrishStat 2011年

2
@crpton時系列問題に断面ツールを使用していると思います。実際のデータを投稿してください。時系列分析を使用して異常検出を実証します
IrishStat '
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.