Serverprotokollanalyse mit maschinellem Lernen

10

Mir wurde diese Aufgabe zugewiesen, um die Serverprotokolle unserer Anwendung zu analysieren, die Ausnahmeprotokolle, Datenbankprotokolle, Ereignisprotokolle usw. enthalten. Ich bin neu im maschinellen Lernen. Wir verwenden Spark mit elastischer Suche und Sparks MLlib (oder PredictionIO). Ein Beispiel für das gewünschte Das Ergebnis wäre, anhand der gesammelten Ausnahmeprotokolle vorhersagen zu können, welcher Benutzer mit größerer Wahrscheinlichkeit die nächste Ausnahme verursacht und bei welcher Funktion (und einer Reihe anderer Dinge, um den Überblick zu behalten und die Optimierung der Anwendung zu verbessern).

Ich konnte erfolgreich Daten von ElasticSearch in spark aufnehmen und DataFrames erstellen und die benötigten Daten zuordnen. Ich würde gerne wissen, wie ich mich dem Aspekt des maschinellen Lernens meiner Implementierung nähere. Ich habe Artikel und Artikel gelesen, in denen es um die Datenvorverarbeitung, das Training der Datenmodelle, das Erstellen von Labels und das Generieren von Vorhersagen geht.

Die Fragen, die ich habe, sind

  • Wie gehe ich vor, um die vorhandenen Protokolldaten in numerische Vektoren umzuwandeln, die für zu trainierende Datensätze verwendet werden können?

  • Welche Algorithmen verwende ich, um meinen Datensatz zu trainieren? (Mit dem begrenzten Wissen, das ich in den letzten Tagen gesammelt habe, habe ich über die Implementierung einer linearen Regression nachgedacht. Bitte schlagen Sie vor, welche Implementierung am besten wäre.)

Ich suche nur nach Vorschlägen, wie ich dieses Problem angehen kann.

Danke.

elric
quelle
Was würden Sie tun, wenn Sie vorhersagen könnten, dass ein bestimmter Benutzer mit hoher Wahrscheinlichkeit eine Ausnahme hat? Ziel ist es, die Anwendung zu optimieren. Versuchen Sie zu verfeinern, für welche Fehler Ingenieure ihre Zeit aufwenden sollten, anstatt nur bekannte Fehler in der Anwendung zu beheben? Feature Engineering kann für diese Aufgabe sehr wichtig sein. Möglicherweise möchten Sie auch eine logistische Regression in Betracht ziehen, die einen 0..1-Wert erzeugt, der als Wahrscheinlichkeit interpretiert werden kann.
5
Ich denke, Sie überschreiten die Ziele. Behandle ML nicht als Black Box, um Magie zu wirken. Sie müssen die richtigen Fragen stellen (und über ausreichende Daten verfügen), um ein Ergebnis zu erzielen.
Hat aufgehört - Anony-Mousse
Wurde Ihr Problem behoben, um vorherzusagen, welcher Benutzer mit größerer Wahrscheinlichkeit die nächste Ausnahme verursacht und bei welcher Funktion (und einer Reihe anderer Dinge, um den Überblick zu behalten und die Optimierung der Anwendung zu verbessern) ? Wenn ja, können Sie bitte Ihren Lösungsansatz teilen oder kann jemand anderes teilen?
Ashish Tyagi

Antworten:

12

Ich denke nicht, dass Sie die einzelnen Protokolleinträge unbedingt in Vektoren konvertieren müssen, um sie in einem Algorithmus zu verwenden. Ich würde vermuten, dass Sie an einer Folge von Protokolleinträgen interessiert sind, die eine Reihe von zeitlich geordneten Ereignissen darstellen, die zusammen eine Reihe von "Fällen" bilden. Hier ist die Beziehung zwischen einer Reihe von gesammelten Protokolleinträgen wichtig.

Wenn dies der Fall ist, sollten Sie die Verwendung von Process Mining- Techniken in Betracht ziehen . Auf diese Weise können Sie Modelle Ihres Prozesses (die Verwendung Ihrer Anwendung) erstellen und Muster von Prozessschritten sowie Fehler und Nacharbeitsschritte bestimmen.

Es gibt einen guten Einführungskurs auf Coursera, hier . Es gibt sogar einige entwickelte, kommerzielle Pakete wie "Disco", die Ihnen bei der Analyse und Visualisierung helfen

Oliver
quelle