
Liste d'outils et de jeux de données pour la détection d'anomalies sur les données de séries temporelles.
Liste d'outils et de jeux de données pour la détection d'anomalies sur des données de séries temporelles.
Toutes les listes sont classées par ordre alphabétique. Dans les listes, les projets maintenus sont prioritaires par rapport aux projets non maintenus. Un dépôt est considéré comme « non maintenu » si le dernier commit date de plus d'un an, ou si cela est explicitement mentionné par les auteurs.
🎓 Si vous trouvez cette collection utile et souhaitez la citer, veuillez suivre la politique de citation.
| Nom | Langage | Description | Licence | Maintenu |
|---|---|---|---|---|
| CueObserve de Cuebook | Python3 | Détection d'anomalies sur les entrepôts de données et bases de données SQL. | Apache-2.0 | ✔️ |
| EGADS de Yahoo | Java | EGADS est une bibliothèque qui contient un certain nombre de techniques de détection d'anomalies applicables à de nombreux cas d'usage dans un seul package, avec Java comme seule dépendance. | GPL | ✔️ |
| flow-forecast d'AIStream | Python | Bibliothèque de deep learning PyTorch pour la prévision, la classification et la détection d'anomalies de séries temporelles (initialement conçue pour la prévision des crues). | GPL-3 | ✔️ |
| Hastic | Python + node.js | Outil de détection d'anomalies pour les données de séries temporelles avec une interface basée sur Grafana. | GPL | ✔️ |
| Luminaire de Zillow | Python | Luminaire est un package Python qui fournit des solutions de détection d'anomalies et de prévision basées sur le ML pour les données de séries temporelles. | Apache-2.0 | ✔️ |
| MIDAS | C++ | MIDAS, acronyme de Microcluster-Based Detector of Anomalies in Edge Streams, détecte les anomalies de microclusters à partir d'un flux d'arêtes en temps et en mémoire constants. | Apache-2.0 | ✔️ |
| Orion | Python | Orion est une bibliothèque de machine learning conçue pour la détection non supervisée d'anomalies dans les séries temporelles. Elle fournit un certain nombre de pipelines ML « vérifiés » (appelés pipelines Orion) qui identifient les schémas rares et les signalent pour examen par des experts. |
Cette section inclut des logiciels de séries temporelles pour des tâches liées à la détection d'anomalies, telles que la prévision, l'analyse générique des séries temporelles et l'étiquetage.
NAB est un benchmark inédit pour évaluer les algorithmes de détection d'anomalies dans des applications de streaming en temps réel. Il comprend plus de 50 fichiers de données de séries temporelles étiquetées, réelles et artificielles, ainsi qu'un mécanisme de scoring inédit conçu pour les applications temps réel.
Le jeu de données se compose de séries temporelles réelles et synthétiques avec des points d'anomalie annotés. Il teste la précision de détection de divers types d'anomalies, notamment les valeurs aberrantes et les points de rupture.
SKAB (Skoltech Anomaly Benchmark) est conçu pour évaluer les algorithmes de détection d'anomalies. Le benchmark comprend actuellement plus de 30 jeux de données ainsi que des modules Python pour l'évaluation des algorithmes. Chaque jeu de données représente une série temporelle multivariée collectée à partir des capteurs installés sur le banc d'essai. Toutes les instances sont étiquetées pour évaluer les résultats de la résolution des problèmes de détection de valeurs aberrantes et de détection de points de rupture.
Le jeu de données se compose de données de séries temporelles de KPI (key performance index) issues de nombreux scénarios réels d'entreprises Internet, avec une étiquette de vérité terrain. Cliquez ci-dessous pour une description plus détaillée.
Le jeu de données se compose de données de séries temporelles de KPI (key performance index) issues de nombreux scénarios réels d'entreprises Internet, avec une étiquette de vérité terrain. Les KPI se répartissent en deux grandes catégories : les KPI de service et les KPI machine. Les KPI de service sont des métriques de performance qui reflètent la taille et la qualité d'un service Web, comme le temps de réponse des pages, le nombre de pages vues et le nombre d'erreurs de connexion. Les KPI machine sont des indicateurs de performance qui reflètent la santé de la machine (serveur, routeur, commutateur), comme l'utilisation du CPU, l'utilisation de la mémoire, les E/S disque, le débit de la carte réseau, etc.
Descriptions des jeux de données :
Afin d'entraîner l'algorithme de détection d'anomalies, les données d'entraînement KPI que nous fournissons sont présentées dans le tableau 1, avec quatre colonnes : ID du KPI, horodatage, la valeur du KPI à ce moment, et si l'instant est anormal (étiquette).
Tableau 1 : exemple de données d'entraînement KPI
Si vous souhaitez citer ce dépôt, veuillez utiliser le DOI suivant :
ou utiliser ce BibTex :
@article{medico2020,
title={rob-med/awesome-TS-anomaly-detection},
DOI={10.5281/zenodo.3972944},
abstractNote={A collection of tools and datasets for anomaly detection on time-series data.},
publisher={Zenodo}, author={Roberto Medico}, year={2020}, month={Aug}}
| MIT |
| ✔️ |
| OutlierDetection.jl | Julia | Détection d'anomalies rapide, évolutive et flexible avec Julia. | MIT | ✔️ |
| PyOD | Python | PyOD est une boîte à outils Python complète et évolutive pour détecter les objets aberrants dans les données multivariées. | BSD 2-Clause | ✔️ |
| ruptures | Python | Ruptures est une bibliothèque Python pour la détection hors ligne de points de rupture. Ce package fournit des méthodes pour l'analyse et la segmentation de signaux non stationnaires. | BSD 2-Clause | ✔️ |
| Skyline d'EarthGecko | Python3 | Skyline est un système de détection d'anomalies en temps réel, conçu pour permettre la surveillance passive de centaines de milliers de métriques. | MIT | ✔️ |
| Adaptive Alerting d'Expedia.com | Java | Détection d'anomalies en streaming avec sélection et ajustement automatiques des modèles. | Apache-2.0 | ❌ |
| ADTK d'Arundo | Python | Anomaly Detection Toolkit (ADTK) est un package Python pour la détection d'anomalies non supervisée / basée sur des règles dans les séries temporelles. | MPL 2.0 | ❌ |
| AnomalyDetection de Twitter | R | AnomalyDetection est un package R open source permettant de détecter les anomalies de manière robuste, d'un point de vue statistique, en présence de saisonnalité et d'une tendance sous-jacente. | GPL | ❌ |
| Anomalyzer de Lytics | Go | Anomalyzer implémente une suite de tests statistiques qui renvoient la probabilité qu'un ensemble donné de données numériques, généralement une série temporelle, contienne un comportement anormal. | Apache-2.0 | ❌ |
| banpei | Python | Détection d'anomalies (théorie de Hotelling) et détection de points de rupture (transformation du spectre singulier) pour les séries temporelles. | MIT | ❌ |
| banshee d'Ele.me | Go | Système de détection d'anomalies pour les métriques périodiques. | MIT | ❌ |
| CAD | Python | Détection contextuelle d'anomalies pour la détection d'anomalies en temps réel sur des données en streaming (algorithme vainqueur du concours NAB 2016). | AGPL | ❌ |
| Chaos Genius | Python | Moteur d'analyse propulsé par le ML pour la détection d'anomalies et l'analyse des causes racines. | MIT | ❌ |
| datastream.io de Mentat | Python | Un framework open source pour la détection d'anomalies en temps réel utilisant Python, Elasticsearch et Kibana. | Apache-2.0 | ❌ |
| DeepADoTS | Python | Implémentation et évaluation de 7 techniques basées sur le deep learning pour la détection d'anomalies sur des données de séries temporelles. | MIT | ❌ |
| Donut | Python | Donut est un algorithme non supervisé de détection d'anomalies pour les KPI saisonniers, basé sur les autoencodeurs variationnels. | - | ❌ |
| LoudML | Python | Loud ML est un moteur d'inférence open source pour séries temporelles construit sur TensorFlow. Il est utile pour prévoir des données, détecter des anomalies et automatiser vos processus en utilisant la connaissance du futur. | MIT | ❌ |
| luminol de Linkedin | Python | Luminol est une bibliothèque Python légère pour l'analyse de données de séries temporelles. Les deux principales fonctionnalités qu'elle prend en charge sont la détection d'anomalies et la corrélation. Elle peut être utilisée pour étudier les causes possibles d'une anomalie. | Apache-2.0 | ❌ |
| Nupic de Numenta | C++ | Numenta Platform for Intelligent Computing est une implémentation de la mémoire temporelle hiérarchique (HTM). | AGPL | ❌ |
| oddstream | R | oddstream (Outlier Detection in Data Streams) fournit un support en temps réel pour la détection précoce de séries anormales au sein d'une grande collection de données de séries temporelles en streaming. | GPL-3 | ❌ |
| PyOdds | Python | PyODDS est un système Python de bout en bout pour la détection d'anomalies avec support de base de données. PyODDS fournit des algorithmes de détection d'anomalies qui prennent en charge à la fois les données statiques et les séries temporelles. | MIT | ❌ |
| PySAD | Python | PySAD est un framework de détection d'anomalies en streaming avec divers modèles en ligne et un ensemble complet d'outils pour l'expérimentation. | BSD 3-Clause | ❌ |
| rrcf | Python | Implémentation de l'algorithme Robust Random Cut Forest pour la détection d'anomalies sur des flux de données. | MIT | ❌ |
| Surus de Netflix | Java | Robust Anomaly Detection (RAD) - Une implémentation de la PCA robuste. | Apache-2.0 | ❌ |
| Telemanom de la NASA | Python | Un framework pour utiliser des LSTM afin de détecter des anomalies dans des données de séries temporelles multivariées. Inclut des données d'anomalies de vaisseaux spatiaux et des expériences des missions Mars Science Laboratory et SMAP. | custom | ❌ |
| Nom | Langage | Description | Licence | Maintenu |
|---|
| darts | Python | darts est une bibliothèque Python pour la manipulation et la prévision faciles de séries temporelles. Elle contient une variété de modèles, des classiques comme ARIMA aux réseaux de neurones. | Apache-2.0 | ✔️ |
| ETNA | Python | etna est une bibliothèque Python pour la prévision et l'analyse de séries temporelles, avec la structure temporelle des données toujours à l'esprit. Elle inclut une variété de modèles prédictifs avec une interface unifiée, ainsi que des méthodes d'EDA et de validation. | Apache-2.0 | ✔️ |
| GluonTS d'Amazon | Python | GluonTS est une boîte à outils Python pour la modélisation probabiliste de séries temporelles, construite autour de MXNet. GluonTS fournit des utilitaires pour charger et itérer sur des jeux de données de séries temporelles, des modèles de pointe prêts à être entraînés, et des briques de construction pour définir vos propres modèles. | Apache-2.0 | ✔️ |
| pmdarima | Python | Portage de l'auto.arima de R avec une interface compatible scikit-learn. | MIT | ✔️ |
| Prophet de Facebook | Python/R | Prophet est une procédure pour prévoir des données de séries temporelles. Elle est basée sur un modèle additif où les tendances non linéaires sont ajustées avec une saisonnalité annuelle et hebdomadaire, ainsi que les jours fériés. | BSD | ✔️ |
| PyFlux | Python | La bibliothèque dispose d'un bon éventail de modèles modernes de séries temporelles, ainsi que d'une gamme flexible d'options d'inférence (fréquentiste et bayésienne) pouvant être appliquées à ces modèles. | BSD 3-Clause | ❌ |
| Nom | Langage | Description | Licence | Maintenu |
|---|
| Kats de Facebook | Python | Kats vise à fournir une solution tout-en-un pour l'analyse de séries temporelles, incluant la détection, la prévision, l'extraction/le plongement (embedding) de caractéristiques, l'analyse multivariée, etc. | MIT | ✔️ |
| MatrixProfile | Python | Une bibliothèque Python 3 rendant les tâches de fouille de données (data mining) sur séries temporelles, utilisant les algorithmes de matrix profile, accessibles à tous. | Apache-2.0 | ✔️ |
| Merlion de Salesforce | Python | Merlion : un framework de machine learning pour l'intelligence sur séries temporelles, prenant en charge de nombreux modèles, dont ARIMA. | BSD 3-Clause | ✔️ |
| SaxPy | Python | Implémentation générale de SAX, ainsi que de HOTSAX pour la détection d'anomalies. | GPLv2.0 | ✔️ |
| sktime | Python | Un framework unifié pour le machine learning avec les séries temporelles. Il fournit des algorithmes spécialisés pour les séries temporelles et des outils compatibles scikit-learn pour construire, ajuster et valider des modèles de séries temporelles pour de multiples problèmes d'apprentissage. | BSD 3-Clause | ✔️ |
| sktime-dl | Python | Un package d'extension pour le deep learning avec Tensorflow/Keras pour sktime. | BSD 3-Clause | ✔️ |
| Squey | C++ | Logiciel de visualisation permettant une exploration approfondie des séries temporelles tout en affichant chaque valeur aberrante. | MIT | ✔️ |
| Tigramite | Python | Tigramite est un package Python d'analyse causale de séries temporelles. Il permet de reconstruire efficacement des graphes causaux à partir de jeux de données de séries temporelles de grande dimension et de modéliser les dépendances causales obtenues pour des analyses de médiation causale et de prédiction. | GPLv3.0 | ✔️ |
| tsflex | Python | tsflex est une boîte à outils pour séries temporelles dédiée à l'extraction et au traitement de caractéristiques, à la fois flexible et efficace. Ce package prend en charge l'extraction de caractéristiques par fenêtres glissantes (strided windows) sur des données séquentielles multivariées échantillonnées de manière irrégulière. | MIT | ✔️ |
| tslearn | Python | tslearn est un package Python qui fournit des outils de machine learning pour l'analyse de séries temporelles. Ce package s'appuie sur les bibliothèques scikit-learn, numpy et scipy. | BSD 2-Clause | ✔️ |
| seglearn | Python | Seglearn est un package Python pour le machine learning sur séries temporelles ou séquences. Il fournit un pipeline intégré pour la segmentation, l'extraction de caractéristiques, le traitement des caractéristiques et l'estimateur final. | BSD 3-Clause | ❌ |
| Nom | Langage | Description | Licence | Maintenu |
|---|
| Curve de Baidu | Python | Curve est un outil open source pour aider à étiqueter les anomalies sur des données de séries temporelles. | Apache-2.0 | ❌ |
| Taganomaly de Microsoft | R (application web dockerisée) | Outil simple pour étiqueter des données de séries temporelles. Fonctionne pour les données univariées et multivariées, et fournit une prédiction d'anomalie de référence utilisant le package AnomalyDetection de Twitter. | MIT | ❌ |
| KPI ID | Timestamp | Value | Label |
|---|
| 0 | 1503831000 | 10.8 | 0 |
| 0 | 1503831060 | 12.3 | 1 |
| ... | ... | ... | ... |
Afin d'évaluer l'algorithme de détection d'anomalies, les données de test KPI que nous fournissons sont présentées dans le tableau 2, avec deux colonnes : ID du KPI, horodatage, et la valeur correspondant au KPI à ce moment.
Tableau 2 : exemple de données de test KPI
| KPI ID | Timestamp | Value |
|---|---|---|
| 0 | 1503831000 | 10.8 |
| 0 | 1503831060 | 12.3 |
| ... | ... | ... |