Je suis un débutant utilisant l'apprentissage automatique (j'ai terminé le cours de Ng), j'utilise scikit-learn en python. Je veux trouver le meilleur moyen de détecter les anomalies dans notre système.
Nous avons des événements en cours qui se produisent à un horaire (toutes les quelques minutes / heures), et je veux détecter quand quelque chose d'anormal se produit. Exemples de données:
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
ainsi, par exemple, l'ID d'événement 0400 se produit toutes les heures. Je veux dire quand il ne fonctionne pas.
Ce que je prévois de faire est d'alimenter l'algorithme de tous les événements des 10 dernières minutes.
Questions principales: Comment traiter la colonne ID? Quelle est la meilleure approche à adopter?
Réponses:
J'ai trouvé cet article très utile dans mon cas:
https://mapr.com/blog/deep-learning-tensorflow/
En utilisant cette structure RNN de base, j'ai pu prédire le résultat du prochain pas de temps. En centrant tous les événements sur la minute la plus proche, le réseau a pu reconnaître le modèle qui correspond à la chronologie.
la source
Vous pouvez résoudre ce problème de plusieurs manières. Avant de vous lancer dans la conception de modèles, standardisez vos données. Vos données ne semblent pas étiquetées, donc au départ, vous pouvez effectuer une visualisation t-SNE qui vous donnera beaucoup d'informations sur vos données. Sur la base de son résultat, vous pouvez développer des modèles plus sensibles qui peuvent regrouper les échantillons en échantillons normaux et anomalies. Plus d'informations sur t-SNE ici
la source