Problem Hintergrund: Ich arbeite an einem Projekt, das Protokolldateien umfasst, die denen im IT-Überwachungsbereich ähneln (nach meinem besten Verständnis des IT-Bereichs). Diese Protokolldateien sind Zeitreihendaten, die in Hunderten / Tausenden von Zeilen mit verschiedenen Parametern organisiert sind. Jeder Parameter ist numerisch (float) und es gibt einen nicht trivialen / fehlerfreien Wert für jeden Zeitpunkt. Meine Aufgabe ist es, diese Protokolldateien auf Anomalien zu überwachen (Spitzen, Stürze, ungewöhnliche Muster, bei denen einige Parameter nicht synchron sind, seltsames Verhalten der ersten / zweiten / usw. Ableitung usw.).
Bei einem ähnlichen Auftrag habe ich Splunk mit Prelert ausprobiert, aber ich untersuche derzeit Open-Source-Optionen.
Einschränkungen: Ich beschränke mich auf Python, weil ich es gut kenne, und möchte die Umstellung auf R und die damit verbundene Lernkurve verzögern. Sofern es keine überwältigende Unterstützung für R (oder andere Sprachen / Software) zu geben scheint, möchte ich mich bei dieser Aufgabe an Python halten.
Außerdem arbeite ich momentan in einer Windows-Umgebung. Ich möchte in Windows weiterhin mit kleinen Protokolldateien arbeiten, kann aber bei Bedarf auf eine Linux-Umgebung umsteigen.
Ressourcen: Ich habe Folgendes mit Sackgassen als Ergebnis überprüft:
Python oder R zur Implementierung maschineller Lernalgorithmen zur Betrugserkennung . Einige Informationen hier sind hilfreich, aber leider habe ich Probleme, das richtige Paket zu finden, weil:
Twitters "AnomalyDetection" ist in R und ich möchte mich an Python halten. Darüber hinaus scheint die Python-Port- Besonderheit Probleme bei der Implementierung in der Windows-Umgebung für mich zu verursachen.
Skyline, mein nächster Versuch, scheint ziemlich eingestellt worden zu sein (aufgrund von Github-Problemen ). Ich habe mich nicht eingehend damit befasst, da es anscheinend nur wenig Online-Support gibt.
scikit-learn erforsche ich noch, aber dies scheint viel mehr manuell zu sein. Der Down-in-the-Weeds-Ansatz ist für mich in Ordnung, aber mein Hintergrund in Bezug auf Lernwerkzeuge ist schwach. Daher hätte ich gerne eine Blackbox für technische Aspekte wie Algorithmen, ähnlich wie bei Splunk + Prelert.
Problemdefinition und Fragen: Ich suche Open-Source-Software, die mir bei der Automatisierung des Prozesses der Erkennung von Anomalien aus Zeitreihenprotokolldateien in Python über Pakete oder Bibliotheken helfen kann.
- Gibt es solche Dinge, um meine unmittelbare Aufgabe zu unterstützen, oder sind sie in meinem Kopf imaginär?
- Kann mir jemand bei konkreten Schritten helfen, um mein Ziel zu erreichen, einschließlich Hintergrundinformationen oder Konzepten?
- Ist dies die beste StackExchange-Community, in der Sie nachfragen können, oder sind Statistik, Mathematik oder sogar Sicherheit oder Stapelüberlauf die besseren Optionen?
EDIT [2015.07.23] Beachten Sie, dass das neueste Update zu pyculiarity zu sein scheint festgelegt für die Windows - Umgebung! Ich muss noch bestätigen, sollte aber ein weiteres nützliches Werkzeug für die Community sein.
EDIT [2016-01-19] Ein kleines Update. Ich hatte keine Zeit, mich damit zu befassen und zu recherchieren, aber ich mache einen Schritt zurück, um die Grundlagen dieses Problems zu verstehen, bevor ich weiter in Einzelheiten recherchiere. Zum Beispiel sind zwei konkrete Schritte, die ich unternehme:
Beginnen Sie mit den Wikipedia-Artikeln zur Erkennung von Anomalien [ https://en.wikipedia.org/wiki/Anomaly_detection ], verstehen Sie alles und bewegen Sie sich dann in der Konzepthierarchie anderer verknüpfter Wikipedia-Artikel nach oben oder unten, z. B. [ https: // en.wikipedia.org/wiki/K-nearest_neighbors_algorithm ] und dann zu [ https://en.wikipedia.org/wiki/Machine_learning ].
Erkundungstechniken in den großartigen Umfragen von Chandola et al. 2009 "Anomaly Detection: A Survey" [ http://www-users.cs.umn.edu/~banerjee/papers/09/anomaly.pdf ] und Hodge et al. 2004 "Eine Übersicht über Methoden zur Erkennung von Ausreißern" [ http://eprints.whiterose.ac.uk/767/1/hodgevj4.pdf ].
Sobald die Konzepte besser verstanden sind (ich hoffe, bei der Entwicklung der praktischen Seite auch mit Spielzeugbeispielen herumzuspielen), hoffe ich zu verstehen, welche Open-Source-Python-Tools besser für meine Probleme geeignet sind.