
Liste von Tools & Datensätzen für die Anomalieerkennung in Zeitreihendaten.
Liste von Tools & Datensätzen für Anomalieerkennung in Zeitreihen-Daten.
Alle Listen sind in alphabetischer Reihenfolge. In den Listen werden gepflegte Projekte gegenüber nicht gepflegten priorisiert. Ein Repository gilt als „nicht gepflegt“, wenn der letzte Commit älter als 1 Jahr ist oder dies von den Autoren ausdrücklich erwähnt wird.
🎓 Wenn du diese Sammlung nützlich findest und sie zitieren möchtest, folge bitte der Zitierrichtlinie.
| Name | Sprache | Kurzbeschreibung | Lizenz | Gepflegt |
|---|---|---|---|---|
| Cuebook's CueObserve | Python3 | Anomalieerkennung auf SQL-Data-Warehouses und Datenbanken. | Apache-2.0 | ✔️ |
| Yahoo's EGADS | Java | GADS ist eine Bibliothek, die eine Reihe von Techniken zur Anomalieerkennung enthält, die in einem einzigen Paket auf viele Anwendungsfälle anwendbar sind, wobei Java die einzige Abhängigkeit ist. | GPL | ✔️ |
| AIStream's flow-forecast | Python | PyTorch-Deep-Learning-Bibliothek für Zeitreihenprognose, Klassifikation und Anomalieerkennung (ursprünglich für Hochwasservorhersage). | GPL-3 | ✔️ |
| Hastic | Python + node.js | Tool zur Anomalieerkennung für Zeitreihendaten mit Grafana-basierter Benutzeroberfläche. | GPL | ✔️ |
| Zillow's Luminaire | Python | Luminaire ist ein Python-Paket, das ML-gesteuerte Anomalieerkennungs- und Prognoselösungen für Zeitreihendaten bereitstellt. | Apache-2.0 | ✔️ |
| MIDAS | C++ | MIDAS (kurz für Microcluster-Based Detector of Anomalies in Edge Streams) erkennt Mikrocluster-Anomalien aus einem Edge-Stream in konstanter Zeit und mit konstantem Speicher. | Apache-2.0 | ✔️ |
| Orion | Python | Orion ist eine Machine-Learning-Bibliothek für unüberwachte Anomalieerkennung in Zeitreihen. Sie bietet eine Reihe „verifizierter“ ML-Pipelines (a.k.a. Orion-Pipelines), die seltene Muster identifizieren und zur Expertenprüfung markieren. | MIT | ✔️ |
Dieser Abschnitt enthält einige Zeitreihen-Software für Aufgaben im Zusammenhang mit Anomalieerkennung, wie Prognose, allgemeine Zeitreihenanalyse und Beschriftung.
NAB ist ein neuartiger Benchmark zur Bewertung von Algorithmen für die Anomalieerkennung in Streaming- und Echtzeitanwendungen. Er besteht aus über 50 beschrifteten realen und künstlichen Zeitreihen-Datendateien sowie einem neuartigen Bewertungsmechanismus, der für Echtzeitanwendungen entwickelt wurde.
Der Datensatz besteht aus realen und synthetischen Zeitreihen mit markierten Anomaliepunkten. Der Datensatz testet die Erkennungsgenauigkeit verschiedener Anomaliearten, einschließlich Ausreißern und Change-Points.
SKAB (Skoltech Anomaly Benchmark) wurde für die Bewertung von Algorithmen zur Anomalieerkennung entwickelt. Der Benchmark umfasst derzeit mehr als 30 Datensätze sowie Python-Module zur Bewertung von Algorithmen. Jeder Datensatz repräsentiert eine multivariate Zeitreihe, die von den auf dem Prüfstand installierten Sensoren erfasst wurde. Alle Instanzen sind beschriftet, um die Ergebnisse der Lösung von Ausreißererkennungs- und Change-Point-Erkennungsproblemen zu bewerten.
Der Datensatz besteht aus KPI-Zeitreihendaten (Key Performance Index) aus vielen realen Szenarien von Internetunternehmen mit Ground-Truth-Labeln. Klicke unten für eine detailliertere Beschreibung.
Der Datensatz besteht aus KPI-Zeitreihendaten (Key Performance Index) aus vielen realen Szenarien von Internetunternehmen mit Ground-Truth-Labeln. KPIs fallen in zwei große Kategorien: Service-KPIs und Maschinen-KPIs. Service-KPIs sind Leistungsmetriken, die Größe und Qualität eines Webdienstes widerspiegeln, wie Seitenantwortzeit, Seitenaufrufe und Anzahl der Verbindungsfehler. Maschinen-KPIs sind Leistungsindikatoren, die den Zustand der Maschine (Server, Router, Switch) widerspiegeln, wie CPU-Auslastung, Speicherauslastung, Disk-IO, Netzwerkkartendurchsatz usw.
Datensatzbeschreibungen:
Um den Anomalieerkennungsalgorithmus zu trainieren, sind die von uns bereitgestellten KPI-Trainingsdaten in Tabelle 1 dargestellt, einschließlich vier Spalten: KPI-ID, Zeitstempel, der Wert des KPI zu diesem Zeitpunkt und ob der Zeitpunkt abnormal ist (Label).
Tabelle 1: Beispiel für KPI-Trainingsdaten
Wenn du dieses Repository zitieren möchtest, verwende bitte die folgende DOI:
oder verwende dieses 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}}
| OutlierDetection.jl | Julia | Schnelle, skalierbare und flexible Ausreißererkennung mit Julia. | MIT | ✔️ |
| PyOD | Python | PyOD ist ein umfassendes und skalierbares Python-Toolkit zur Erkennung von Ausreißern in multivariaten Daten. | BSD 2-Clause | ✔️ |
| ruptures | Python | Ruptures ist eine Python-Bibliothek für Offline-Change-Point-Erkennung. Dieses Paket bietet Methoden zur Analyse und Segmentierung nichtstationärer Signale. | BSD 2-Clause | ✔️ |
| EarthGecko Skyline | Python3 | Skyline ist ein Echtzeit-Anomalieerkennungssystem, das passives Monitoring von Hunderttausenden von Metriken ermöglicht. | MIT | ✔️ |
| Expedia.com's Adaptive Alerting | Java | Streaming-Anomalieerkennung mit automatisierter Modellauswahl und -anpassung. | Apache-2.0 | ❌ |
| Arundo's ADTK | Python | Anomaly Detection Toolkit (ADTK) ist ein Python-Paket für unüberwachte / regelbasierte Anomalieerkennung in Zeitreihen. | MPL 2.0 | ❌ |
| Twitter's AnomalyDetection | R | AnomalyDetection ist ein Open-Source-R-Paket zur Erkennung von Anomalien, das aus statistischer Sicht robust gegenüber Saisonalität und einem zugrunde liegenden Trend ist. | GPL | ❌ |
| Lytics' Anomalyzer | Go | Anomalyzer implementiert eine Reihe statistischer Tests, die die Wahrscheinlichkeit liefern, dass eine gegebene Menge numerischer Eingaben, typischerweise eine Zeitreihe, anomalies Verhalten enthält. | Apache-2.0 | ❌ |
| banpei | Python | Ausreißererkennung (Hotellings Theorie) und Change-Point-Erkennung (Singular-Spektrum-Transformation) für Zeitreihen. | MIT | ❌ |
| Ele.me's banshee | Go | System zur Erkennung von Anomalien bei periodischen Metriken. | MIT | ❌ |
| CAD | Python | Kontextuelle Anomalieerkennung für Echtzeit-Anomalieerkennung auf Streaming-Daten (Siegeralgorithmus des NAB-Wettbewerbs 2016). | AGPL | ❌ |
| Chaos Genius | Python | ML-gestützte Analyse-Engine für Ausreißer-/Anomalieerkennung und Ursachenanalyse (Root Cause Analysis). | MIT | ❌ |
| Mentat's datastream.io | Python | Ein Open-Source-Framework für Echtzeit-Anomalieerkennung mit Python, Elasticsearch und Kibana. | Apache-2.0 | ❌ |
| DeepADoTS | Python | Implementierung und Evaluierung von 7 Deep-Learning-Techniken zur Anomalieerkennung auf Zeitreihendaten. | MIT | ❌ |
| Donut | Python | Donut ist ein unüberwachter Anomalieerkennungsalgorithmus für saisonale KPIs, der auf Variational Autoencoders basiert. | - | ❌ |
| LoudML | Python | Loud ML ist eine Open-Source-Inferenz-Engine für Zeitreihen, die auf TensorFlow aufbaut. Sie ist nützlich, um Daten vorherzusagen, Ausreißer zu erkennen und Prozesse mithilfe von Zukunftswissen zu automatisieren. | MIT | ❌ |
| Linkedin's luminol | Python | Luminol ist eine leichtgewichtige Python-Bibliothek für die Analyse von Zeitreihendaten. Die beiden Hauptfunktionen sind Anomalieerkennung und Korrelation. Es kann verwendet werden, um mögliche Ursachen von Anomalien zu untersuchen. | Apache-2.0 | ❌ |
| Numenta's Nupic | C++ | Die Numenta Platform for Intelligent Computing ist eine Implementierung von Hierarchical Temporal Memory (HTM). | AGPL | ❌ |
| oddstream | R | oddstream (Outlier Detection in Data Streams) bietet Echtzeitunterstützung für die frühzeitige Erkennung anomaler Reihen innerhalb einer großen Sammlung von Streaming-Zeitreihendaten. | GPL-3 | ❌ |
| PyOdds | Python | PyODDS ist ein End-to-End-Python-System zur Ausreißererkennung mit Datenbankunterstützung. PyODDS bietet Algorithmen zur Ausreißererkennung, die sowohl statische als auch Zeitreihendaten unterstützen. | MIT | ❌ |
| PySAD | Python | PySAD ist ein Streaming-Framework zur Anomalieerkennung mit verschiedenen Online-Modellen und einem vollständigen Satz von Werkzeugen für Experimente. | BSD 3-Clause | ❌ |
| rrcf | Python | Implementierung des Robust Random Cut Forest-Algorithmus zur Anomalieerkennung auf Streams. | MIT | ❌ |
| Netflix's Surus | Java | Robust Anomaly Detection (RAD) – eine Implementierung der Robust PCA. | Apache-2.0 | ❌ |
| NASA's Telemanom | Python | Ein Framework zur Verwendung von LSTMs zur Erkennung von Anomalien in multivariaten Zeitreihendaten. Enthält Raumfahrzeug-Anomaliedaten und Experimente aus den Missionen Mars Science Laboratory und SMAP. | custom | ❌ |
| Name | Sprache | Kurzbeschreibung | Lizenz | Gepflegt |
|---|
| darts | Python | darts ist eine Python-Bibliothek zur einfachen Manipulation und Prognose von Zeitreihen. Sie enthält eine Vielzahl von Modellen, von Klassikern wie ARIMA bis hin zu neuronalen Netzen. | Apache-2.0 | ✔️ |
| ETNA | Python | etna ist eine Python-Bibliothek für Zeitreihenprognose und -analyse, die die zeitliche Datenstruktur immer im Blick hat. Enthält eine Vielzahl von Vorhersagemodellen mit einheitlicher Schnittstelle sowie EDA- und Validierungsmethoden. | Apache-2.0 | ✔️ |
| Amazon's GluonTS | Python | GluonTS ist ein Python-Toolkit für probabilistische Zeitreihenmodellierung, das um MXNet herum aufgebaut ist. GluonTS bietet Werkzeuge zum Laden und Iterieren über Zeitreihen-Datensätze, hochmoderne Modelle, die direkt trainierbar sind, sowie Bausteine zur Definition eigener Modelle. | Apache-2.0 | ✔️ |
| pmdarima | Python | Portierung von R's auto.arima mit einer scikit-learn-freundlichen Schnittstelle. | MIT | ✔️ |
| Facebook's Prophet | Python/R | Prophet ist ein Verfahren zur Prognose von Zeitreihendaten. Es basiert auf einem additiven Modell, bei dem nichtlineare Trends mit jährlicher und wöchentlicher Saisonalität sowie Feiertagen angepasst werden. | BSD | ✔️ |
| PyFlux | Python | Die Bibliothek bietet eine gute Auswahl moderner Zeitreihenmodelle sowie eine flexible Reihe von Inferenzoptionen (frequentistisch und bayesianisch), die auf diese Modelle angewendet werden können. | BSD 3-Clause | ❌ |
| Name | Sprache | Kurzbeschreibung | Lizenz | Gepflegt |
|---|
| Facebook's Kats | Python | Kats möchte die Komplettlösung für Zeitreihenanalyse bieten, einschließlich Erkennung, Prognose, Feature-Extraktion/-Einbettung, multivariate Analyse usw. | MIT | ✔️ |
| MatrixProfile | Python | Eine Python-3-Bibliothek, die Zeitreihen-Data-Mining-Aufgaben mithilfe von Matrix-Profile-Algorithmen für alle zugänglich macht. | Apache-2.0 | ✔️ |
| Salesforce's Merlion | Python | Merlion: Ein Machine-Learning-Framework für Zeitreihen-Intelligenz, unterstützt mehrere Modelle, einschließlich ARIMA | BSD 3-Clause | ✔️ |
| SaxPy | Python | Allgemeine Implementierung von SAX sowie HOTSAX zur Anomalieerkennung. | GPLv2.0 | ✔️ |
| sktime | Python | Ein einheitliches Framework für maschinelles Lernen mit Zeitreihen. Es bietet spezialisierte Zeitreihenalgorithmen und scikit-learn-kompatible Werkzeuge zum Erstellen, Abstimmen und Validieren von Zeitreihenmodellen für mehrere Lernprobleme. | BSD 3-Clause | ✔️ |
| sktime-dl | Python | Ein Erweiterungspaket für Deep Learning mit Tensorflow/Keras für sktime. | BSD 3-Clause | ✔️ |
| Squey | C++ | Visualisierungssoftware, die eine eingehende Erkundung von Zeitreihen ermöglicht und dabei alle Ausreißer anzeigt. | MIT | ✔️ |
| Tigramite | Python | Tigramite ist ein Python-Paket für kausale Zeitreihenanalyse. Es ermöglicht die effiziente Rekonstruktion kausaler Graphen aus hochdimensionalen Zeitreihendatensätzen und die Modellierung der erhaltenen kausalen Abhängigkeiten für kausale Mediations- und Vorhersageanalysen. | GPLv3.0 | ✔️ |
| tsflex | Python | tsflex ist ein Zeitreihen-Toolkit für Feature-Extraktion & -Verarbeitung, das sowohl flexibel als auch effizient ist. Dieses Paket unterstützt Feature-Extraktion mit versetzten Fenstern (strided-window) auf multivariaten, unregelmäßig abgetasteten Sequenzdaten. | MIT | ✔️ |
| tslearn | Python | tslearn ist ein Python-Paket, das Machine-Learning-Werkzeuge für die Analyse von Zeitreihen bereitstellt. Das Paket baut auf den Bibliotheken scikit-learn, numpy und scipy auf. | BSD 2-Clause | ✔️ |
| seglearn | Python | Seglearn ist ein Python-Paket für maschinelles Lernen auf Zeitreihen oder Sequenzen. Es bietet eine integrierte Pipeline für Segmentierung, Feature-Extraktion, Feature-Verarbeitung und finalen Schätzer. | BSD 3-Clause | ❌ |
| Name | Sprache | Kurzbeschreibung | Lizenz | Gepflegt |
|---|
| Baidu's Curve | Python | Curve ist ein Open-Source-Tool, das beim Beschriften von Anomalien auf Zeitreihendaten hilft. | Apache-2.0 | ❌ |
| Microsoft's Taganomaly | R (dockerisierte Web-App) | Einfaches Tool zum Beschriften von Zeitreihendaten. Funktioniert für univariate und multivariate Daten und liefert eine Referenz-Anomalievorhersage mithilfe des AnomalyDetection-Pakets von Twitter. | MIT | ❌ |
| KPI ID | Timestamp | Value | Label |
|---|
| 0 | 1503831000 | 10.8 | 0 |
| 0 | 1503831060 | 12.3 | 1 |
| ... | ... | ... | ... |
Um den Anomalieerkennungsalgorithmus zu bewerten, sind die von uns bereitgestellten KPI-Testdaten in Tabelle 2 dargestellt, einschließlich der Spalten: KPI-ID, Zeitstempel und der Wert, der dem KPI zu diesem Zeitpunkt entspricht.
Tabelle 2: Beispiel für KPI-Testdaten
| KPI ID | Timestamp | Value |
|---|---|---|
| 0 | 1503831000 | 10.8 |
| 0 | 1503831060 | 12.3 |
| ... | ... | ... |