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.
Antworten:
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
quelle