Existe-t-il un package open source complet (de préférence en python ou R) qui peut être utilisé pour la détection d'anomalies dans les séries temporelles?
Il existe un package SVM d'une classe dans scikit-learn, mais ce n'est pas pour les données de séries chronologiques. Je recherche des packages plus sophistiqués qui, par exemple, utilisent des réseaux bayésiens pour la détection d'anomalies.
python
time-series
anomaly-detection
pythinker
la source
la source
Réponses:
Je sais que je suis un peu en retard ici, mais oui, il existe un package pour la détection des anomalies ainsi que des cadres de combinaison aberrants.
Il est encore à ses premiers stades de développement sur github et sera bientôt publié dans JMLR.
Le package est en langage python et le nom du package est pyod ( https://github.com/yzhao062/Pyod ).
Il dispose de plusieurs algorithmes pour suivre les approches individuelles:
Enfin, si vous recherchez spécifiquement des séries chronologiques en soi, ce lien github sera utile.
Il contient les packages de liste suivants pour la détection des valeurs aberrantes de série temporelle:
datastream.io
horizon
banpei
Détection d'une anomalie
la source
Il existe plusieurs façons de gérer les anomalies des séries chronologiques -
1) Si des anomalies sont connues , construisez un modèle de classification. Utilisez ce modèle pour détecter le même type d'anomalies pour les données de séries chronologiques.
2) Si les anomalies sont inconnues , ce que nous avons fait dans notre organisation - est une combinaison de regroupement et de classification -
Utilisez d'abord LOF / K-means / Cook's distance pour identifier les valeurs aberrantes. Convertissez des données entières en problème de classification car nous avons maintenant 2 classes: valeurs aberrantes et normales. Maintenant, créez un modèle de classification et obtenez des règles (modèle de classification) pour identifier les anomalies au moment de l'exécution (données de séries chronologiques).
3) Si les anomalies sont inconnues , au cours de mes recherches, le moyen le plus courant d'identifier les anomalies est de construire un modèle normal et tout écart par rapport au modèle normal (erreur) est anormal, donc dans votre cas, vous prévoyez votre série chronologique pour l'heure suivante, puis comparez avec des valeurs réelles. Si l'erreur est plus importante que prévu, quelque chose d'anormal se produit.
Je n'ai pas pu trouver de paquet direct en python ou R pour le faire, car personne ne savait ce qui est vraiment anormal: P, dans tous les cas, il a été lié à la détection des valeurs aberrantes.
quelques liens utiles-
https://machinelearningstories.blogspot.com/2018/12/easiest-way-of-detection-abnormality.html
https://machinelearningstories.blogspot.com/2018/07/anomaly-detection-anomaly-detection-by.html
la source
Essayez la bibliothèque du prophète
Prophet est une procédure de prévision des données de séries chronologiques basée sur un modèle additif où les tendances non linéaires sont adaptées à la saisonnalité annuelle, hebdomadaire et quotidienne, plus les effets des vacances. Il fonctionne mieux avec des séries chronologiques qui ont de forts effets saisonniers et plusieurs saisons de données historiques. Prophet résiste aux données manquantes et aux changements de tendance, et gère généralement bien les valeurs aberrantes.
Plus d'informations sur: Détection d'anomalies dans les séries temporelles avec la bibliothèque Prophet
la source