Analyse du journal du serveur à l'aide de l'apprentissage automatique

10

On m'a confié cette tâche pour analyser les journaux du serveur de notre application qui contient les journaux d'exceptions, les journaux des événements, les journaux de base de données, etc. Je suis nouveau dans l'apprentissage automatique, nous utilisons Spark avec recherche élastique et Sparks MLlib (ou PredictionIO). Le résultat serait de pouvoir prédire sur la base des journaux d'exceptions collectés pour pouvoir prédire quel utilisateur est le plus susceptible de provoquer la prochaine exception et à quelle fonctionnalité (et un tas d'autres choses pour suivre et améliorer l'optimisation de l'application).

J'ai réussi à ingérer des données d'ElasticSearch dans spark et à créer des DataFrames et à cartographier les données nécessaires. Ce que je voudrais savoir, c'est comment aborder l'aspect Machine Learning de ma mise en œuvre. J'ai parcouru des articles et des articles qui parlent du prétraitement des données, de la formation des modèles de données et de la création d'étiquettes, puis de la génération de prédictions.

Mes questions sont

  • Comment aborder la transformation des données de journal existantes en vecteurs numériques qui peuvent être utilisés pour des ensembles de données à former.

  • Quels algorithmes dois-je utiliser pour former mon ensemble de données (avec les connaissances limitées que j'ai rassemblées ces derniers jours, je pensais à mettre en œuvre une régression linéaire, veuillez suggérer quelle mise en œuvre serait la meilleure)

Je cherche juste des suggestions sur la façon d'aborder ce problème.

Merci.

elric
la source
Si vous aviez une capacité prédictive pour croire qu'un certain utilisateur avait une forte probabilité d'exception, que feriez-vous? L'objectif est d'optimiser l'application. Essayez-vous d'affiner les bogues sur lesquels les ingénieurs devraient consacrer leur temps au lieu de simplement corriger les bogues connus dans l'application? L'ingénierie des fonctionnalités peut être très importante pour cette tâche. De plus, vous voudrez peut-être considérer la régression logistique qui produira une valeur de 0..1 qui peut être interprétée comme une probabilité.
5
Je pense que vous dépassez les objectifs. Ne traitez pas ML comme une boîte noire pour faire de la magie. Vous devez poser les bonnes questions (et disposer de données adéquates pour cela) pour obtenir un résultat.
A QUIT - Anony-Mousse
Votre problème a-t-il été résolu pour prédire quel utilisateur est le plus susceptible de provoquer la prochaine exception et à quelle fonctionnalité (et un tas d'autres choses pour suivre et améliorer l'optimisation de l'application) ? Si oui, pouvez-vous s'il vous plaît partager votre approche de solution ou quelqu'un d'autre peut partager?
Ashish Tyagi

Réponses:

12

Je ne pense pas que vous ayez nécessairement besoin de convertir les entrées de journal individuelles en vecteurs pour les utiliser dans un algorithme. Je suppose que ce qui vous intéresse, c'est une séquence d'entrées de journal, qui représentent une série d'événements, ordonnés dans le temps, qui forment ensemble une série de «cas». Ici, la relation entre une série d'entrées de journal collectées est importante.

Si tel est le cas, vous pouvez envisager d'utiliser des techniques d' exploration de processus . Cela vous permet de créer des modèles de votre processus (l'utilisation de votre application) et de déterminer des modèles d'étapes de processus, ainsi que des erreurs et des étapes de reprise.

Il y a un bon cours d'introduction sur Coursera, ici . Il existe même des packages commerciaux développés comme «disco» pour vous aider dans l'analyse et la visualisation

Oliver
la source