Ich arbeite mit einer Zeitreihe von Anomalie-Scores (Hintergrund ist die Anomalieerkennung in Computernetzwerken). Jede Minute erhalte ich einen Anomalie-Score der mir sagt, wie "unerwartet" oder abnormal der aktuelle Status des Netzwerks ist. Je höher die Punktzahl, desto abnormaler ist der aktuelle Zustand. Scores nahe 5 sind theoretisch möglich, treten jedoch fast nie auf.
Jetzt möchte ich einen Algorithmus oder eine Formel entwickeln, die automatisch einen Schwellenwert für diese Anomalie-Zeitreihe bestimmt. Sobald ein Anomalie-Score diesen Schwellenwert überschreitet, wird ein Alarm ausgelöst.
Die folgende Häufigkeitsverteilung ist ein Beispiel für eine Anomalie-Zeitreihe über 1 Tag. Es ist jedoch nicht sicher anzunehmen, dass jede Anomalie-Zeitreihe so aussehen wird. In diesem speziellen Beispiel wäre eine Anomalieschwelle wie das .99-Quantil sinnvoll, da die wenigen Punkte ganz rechts als Anomalien angesehen werden können.
Und die gleiche Häufigkeitsverteilung wie bei Zeitreihen (sie reicht nur von 0 bis 1, da es in den Zeitreihen keine höheren Anomaliewerte gibt):
Leider kann die Häufigkeitsverteilung Formen haben, bei denen das .99-Quantil nicht nützlich ist . Ein Beispiel ist unten. Der rechte Schwanz ist sehr niedrig. Wenn also das 0,99-Quantil als Schwellenwert verwendet wird, kann dies zu vielen falsch positiven Ergebnissen führen. Diese Häufigkeitsverteilung scheint keine Anomalien zu enthalten, daher sollte der Schwellenwert bei etwa 0,25 außerhalb der Verteilung liegen.
Zusammenfassend besteht der Unterschied zwischen diesen beiden Beispielen darin, dass das erste Anomalien zu zeigen scheint, während das zweite keine Anomalien aufweist.
Aus meiner naiven Sicht sollte der Algorithmus diese beiden Fälle berücksichtigen:
- Wenn die Häufigkeitsverteilung einen großen rechten Schwanz hat (dh ein paar abnormale Werte), kann das 0,99-Quantil ein guter Schwellenwert sein.
- Wenn die Häufigkeitsverteilung einen sehr kurzen rechten Schwanz hat (dh keine abnormalen Werte), sollte der Schwellenwert außerhalb der Verteilung liegen.
/ edit: Es gibt auch keine Grundwahrheit, dh beschriftete Datensätze verfügbar. Der Algorithmus ist also "blind" gegenüber der Art der Anomalie-Scores.
Jetzt bin ich mir nicht sicher, wie diese Beobachtungen in Form eines Algorithmus oder einer Formel ausgedrückt werden können. Hat jemand einen Vorschlag, wie dieses Problem gelöst werden könnte? Ich hoffe, dass meine Erklärungen ausreichen, da mein statistischer Hintergrund sehr begrenzt ist.
Danke für Ihre Hilfe!
quelle
Antworten:
Möglicherweise finden Sie dieses Papier von Interesse. Siehe auch detailliertere Darstellung ähnlicher Modelle in West & Harrison . Es gibt auch andere Beispiele für diese Art der Überwachung, viele davon sind neueren Datums, aber das ist nicht gerade mein Steuerhaus :). Zweifellos gibt es geeignete Implementierungen dieser Modelle, aber ich weiß nicht, was sie ohne weiteres sein könnten ...
Die Grundidee ist, dass Sie ein Schaltmodell haben, bei dem einige Beobachtungen / Beobachtungssequenzen abnormalen Netzwerkzuständen zugeordnet werden, während der Rest als normal betrachtet wird. Eine Mischung wie diese könnte für den langen rechten Schwanz in Ihrer ersten Handlung verantwortlich sein. Ein dynamisches Modell kann Sie auch in Echtzeit auf abnormale Sprünge wie 8:00 und 4:00 Uhr aufmerksam machen, indem neuen Beobachtungen, die zu einem Problemzustand gehören, eine hohe Wahrscheinlichkeit zugewiesen wird. Es könnte auch leicht erweitert werden, um Dinge wie Prädiktoren, periodische Komponenten (vielleicht steigt / fällt Ihre Punktzahl mit der Aktivität ein wenig) und dergleichen einzubeziehen.
Bearbeiten: Ich sollte auch hinzufügen, dass diese Art von Modell in dem Sinne "unbeaufsichtigt" ist, dass Anomalien entweder durch eine große mittlere Verschiebung oder durch eine Zunahme der Varianz erfasst werden. Während Sie Daten sammeln, können Sie das Modell mit informativeren vorherigen Verteilungen verbessern. Aber wenn Sie genug Daten haben (und hart erkämpfte Trainingsbeispiele durch den Umgang mit Netzwerkproblemen!), Können Sie vielleicht einige einfache Überwachungsregeln (Schwellenwerte usw.) entwickeln.
quelle
Haben Sie "beschriftete" Beispiele für eine Anomalie? dh Werte, die mit einem Netzwerkfehler verbunden sind, oder so etwas?
Eine Idee, die Sie möglicherweise anwenden möchten, ist eine ROC-Kurve, die nützlich ist, um Schwellenwerte auszuwählen, die bestimmte Kriterien erfüllen, z. B. das Maximieren von echten Positiven oder das Minimieren von falschen Negativen.
Um eine ROC-Kurve zu verwenden, müssen Sie Ihre Daten natürlich auf irgendeine Weise kennzeichnen.
quelle
Der Graph der "Originalserie" muss keine vordefinierte Struktur aufweisen. Entscheidend ist, dass der Graph der "Residuen aus einer geeigneten Modellreihe" entweder eine Gaußsche Struktur aufweisen muss. Diese "Gaußsche Struktur" kann normalerweise erhalten werden, indem eine oder mehrere der folgenden "Transformationen" einbezogen werden: 1. ein Arima-MODELL 2. Anpassungen für lokale Pegelverschiebungen oder lokale Zeittrends oder saisonale Impulse oder gewöhnliche Impulse 3. eine gewichtete Analyse unter Ausnutzung der nachgewiesenen Varianzheterogenität 4. eine mögliche Leistungstransformation (Protokolle usw.) zur Bewältigung einer bestimmten Varianzheterogenität 5. Erkennung von Zeitpunkten, an denen sich das Modell / die Parameter möglicherweise geändert haben.
Die Interventionserkennung liefert eine Aussage über die statistische Signifikanz des jüngsten Ereignisses, die entweder auf Normalität oder auf eine Anomalie hindeutet
quelle
In der Antwort des OP auf meine vorherige Antwort hat er seine Daten ins Internet gestellt. 60 Ablesungen pro Stunde für 24 Stunden für 6 Tage . Da es sich um Zeitreihen handelt, haben Querschnittswerkzeuge wie DBSCAN eine begrenzte Relevanz, da die Daten zeitlich abhängig sind. Bei Daten wie diesen wird normalerweise nach einer Intra-Hour- und Intra-Day-Struktur gesucht. Zusätzlich zu diesen Arten von Strukturen kann man die Erkennung von Anomalien verfolgen, die entweder nur einmal (Puls) oder systematisch (Pegelverschiebung) sein können, indem man Methoden verwendet, die gut dokumentiert sind (siehe die Literatur von Tsay, Tiao, Chen et. al.) Diese Verfahren ergaben die folgenden "Anomalien". Beachten Sie, dass eine Pegelverschiebung im Wesentlichen auf separate "Cluster" hindeutet.
quelle
Nachdem mich ein Freund in die Richtung von Clustering-Algorithmen geführt hatte , stieß ich auf DBSCAN , das Cluster im n-dimensionalen Raum nach zwei vordefinierten Parametern erstellt. Die Grundidee ist dichtebasiertes Clustering, dh dichte Regionen bilden Cluster. Ausreißer werden vom Algorithmus separat zurückgegeben. Wenn DBSCAN auf mein eindimensionales Histogramm angewendet wird, kann es mir also sagen, ob meine Anomalie-Scores Ausreißer aufweisen. Hinweis: In DBSCAN ist ein Ausreißer nur ein Punkt, der keinem Cluster angehört. Während des normalen Betriebs erwarte ich, dass der Algorithmus nur einen einzigen Cluster (und keine Ausreißer) liefert.
Nach einigen Experimenten fand ich heraus, dass die Parameter gut funktionieren. Dies bedeutet, dass Punkte einen Abstand von mindestens 0,1 zum "normalen" Cluster aufweisen müssen, um als Ausreißer angesehen zu werden.ϵ≈0.1
Nachdem Sie Ausreißer identifiziert haben, läuft das Ermitteln des Schwellenwerts auf einfache Regeln wie:
Trotzdem danke für all die hilfreichen Antworten!
quelle