私は時系列の異常スコアを操作しています(背景はコンピューターネットワークでの異常検出です)。毎分、異常なスコアが表示されます。これは、ネットワークの現在の状態が「予期しない」または異常な状態であることを示しています。スコアが高いほど、現在の状態が異常になります。5に近いスコアは理論的には可能ですが、ほとんど発生しません。
次に、この異常時系列のしきい値を自動的に決定するアルゴリズムまたは式を考え出します。異常スコアがこのしきい値を超えるとすぐに、アラームがトリガーされます。
以下の頻度分布は、1日にわたる異常時系列の例です。ただし、すべての異常時系列がそのようになると想定するのは安全ではありません。この特別な例では、非常に右側の少数のスコアを異常と見なすことができるため、.99-分位数などの異常しきい値は理にかなっています。
そして、時系列と同じ頻度分布(時系列に高い異常スコアがないため、範囲は0から1のみです):
残念ながら、頻度分布は形状を持っている可能性があり、.99-分位数は役に立ちません。以下に例を示します。右尾は非常に低いため、.99-分位数をしきい値として使用すると、多くの誤検出が発生する可能性があります。この頻度分布には異常が含まれていないようなので、しきい値は分布の約0.25の外側にある必要があります。
要約すると、これらの2つの例の違いは、最初の例では異常が見られるように見え、2番目の例では異常が見られないことです。
私の素朴な観点から、アルゴリズムはこれらの2つのケースを考慮する必要があります:
- 頻度分布の右端が大きい場合(つまり、いくつかの異常スコア)、. 99-分位数は適切なしきい値になります。
- 頻度分布の右裾が非常に短い(つまり、異常スコアがない)場合、しきい値は分布の外側にあるはずです。
/編集:グラウンドトゥルースもありません。つまり、ラベル付きデータセットが利用可能です。したがって、アルゴリズムは異常スコアの性質に対して「ブラインド」です。
現在、これらの観察がアルゴリズムまたは式の観点からどのように表現されるかはわかりません。この問題を解決する方法を誰かが提案していますか?私の統計的背景は非常に限られているので、私の説明が十分であることを願っています。
ご協力いただきありがとうございます!