Ich bin ein Anfänger mit maschinellem Lernen (ich habe Ngs Kurs beendet), ich benutze Scikit-Learn in Python. Ich möchte den besten Weg finden, um Anomalien in unserem System zu erkennen.
Wir haben laufende Ereignisse, die nach einem Zeitplan auftreten (alle paar Minuten / Stunden), und ich möchte erkennen, wenn etwas Anormales passiert. Beispieldaten:
ID | epoch-time | duration (Sec) | status | is_manual
0400 | 1488801454 | 500 | completed | 1
0401 | 1488805055 | 500 | completed | 1
0402 | 1488812254 | 40000 | failed | 1
6831 | 1488805050 | 200 | failed | 0
.
... (Millions of examples)
.
0014 | 1488805055 | 1200 | completed | 0
So tritt beispielsweise die Ereignis-ID 0400 einmal pro Stunde auf. Ich möchte sagen, wann es nicht läuft.
Was ich vorhabe, ist, dem Algorithmus alle Ereignisse der letzten 10 Minuten zuzuführen.
Hauptfragen: Wie wird die ID-Spalte behandelt? Was ist der beste Ansatz, den ich wählen sollte?
Antworten:
Ich fand diesen Artikel in meinem Fall sehr hilfreich:
https://mapr.com/blog/deep-learning-tensorflow/
Mit dieser grundlegenden RNN-Struktur konnte ich das Ergebnis des nächsten Zeitschritts vorhersagen. Durch Zentrieren aller Ereignisse auf die nächste Minute konnte das Netzwerk das Muster erkennen, das innerhalb der Zeitachse korreliert.
quelle
Es gibt verschiedene Möglichkeiten, wie Sie dies angehen können. Bevor Sie mit dem Entwerfen von Modellen beginnen, standardisieren Sie Ihre Daten. Ihre Daten scheinen unbeschriftet zu sein. Sie können also zunächst eine t-SNE-Visualisierung durchführen, die Ihnen viele Einblicke in Ihre Daten gibt. Basierend auf dem Ergebnis können Sie sinnvollere Modelle entwickeln, mit denen die Stichproben in normale und Anomalien gruppiert werden können. Mehr zu t-SNE hier
quelle