Katz - Rahmen für die Zeitreihenanalyse
Kats bietet alles aus einer Hand für die Zeitreihenanalyse, vom Verständnis der wichtigsten Statistiken und der Erkennung von Anomalien bis hin zur Vorhersage von Trends, Merkmalsextraktion/-einbettung, multivariater Analyse usw.
Die Zeitreihenanalyse ist ein grundlegender Bereich der Datenwissenschaft und des maschinellen Lernens mit massiven Anwendungen in verschiedenen Bereichen wie E-Commerce, Finanzen, Kapazitätsplanung, Lieferkettenmanagement, Medizin, Wetter, Energie, Astronomie und vielen anderen.
Zeitreihenanalyse
Die Zeitreihenanalyse als statistische Technik wird zur Untersuchung und Modellierung zeitabhängiger Daten verwendet. Zu den gemeinsamen Merkmalen der Tools für die Zeitreihenanalyse gehören:
- Zeitreihenzerlegung: die Fähigkeit, eine Zeitreihe in ihre Bestandteile zu zerlegen, z.B. Trend, Saisonalität und Residuen
- Prognose: die Fähigkeit, zukünftige Werte einer Zeitreihe auf der Grundlage vergangener Daten vorherzusagen
- Anomalie-Erkennung: die Fähigkeit, ungewöhnliches oder unerwartetes Verhalten in einer Zeitreihe zu erkennen
- Multivariate Analyse: die Fähigkeit, mehrere Zeitreihen gleichzeitig zu analysieren und dabei die Beziehungen zwischen ihnen zu berücksichtigen
- Merkmalsextraktion/Einbettung: die Fähigkeit, aussagekräftige Merkmale aus Zeitreihendaten zu extrahieren oder Zeitreihendaten für die weitere Analyse in einem niedrigdimensionalen Raum darzustellen.
Dies sind nur einige Beispiele für die Arten von Funktionen, die in einem Zeitreihenanalyse-Tool enthalten sein können. Schauen wir mal, was Kats uns bieten kann.
Kats ist eine zentrale Anlaufstelle
Kats ist ein leichtgewichtiges, benutzerfreundliches und verallgemeinerbares Framework für die generische Zeitreihenanalyse, einschließlich Vorhersage, Anomalieerkennung, multivariate Analyse und Merkmalsextraktion/-einbettung.
Kats ist die erste umfassende Python-Bibliothek für die generische Zeitreihenanalyse, die sowohl klassische als auch fortgeschrittene Techniken zur Modellierung von Zeitreihendaten bietet.
Kats verbindet verschiedene Bereiche der Zeitreihenanalyse, in denen die Benutzer die grundlegenden Merkmale ihrer Zeitreihendaten erforschen, die zukünftigen Werte vorhersagen, die Anomalien überwachen und sie in ihre ML-Modelle und Pipelines einbauen können.
Was es tut
Kats bietet eine Reihe von Algorithmen und Modellen für vier Bereiche der Zeitreihenanalyse: Vorhersage, Erkennung, Merkmalsextraktion und -einbettung sowie multivariate Analyse.
Vorhersage: Kats bietet ein komplettes Toolset für die Vorhersage, das 10+ individuelle Vorhersagemodelle, Ensembling, ein Modell für selbstüberwachtes Lernen (Meta-Learning), Backtesting, Hyperparameter-Tuning und empirische Vorhersageintervalle umfasst.
Erkennung: Kats unterstützt Funktionen zur Erkennung verschiedener Muster in Zeitreihendaten, einschließlich Saisonalität, Ausreißer, Wendepunkte und langsame Trendänderungen.
Merkmalextraktion und Einbettung: Das Modul zur Extraktion von Zeitreihenmerkmalen (TSFeature) in Kats kann 65 Merkmale mit klaren statistischen Definitionen erzeugen, die in die meisten Modelle für maschinelles Lernen (ML), wie Klassifizierung und Regression, integriert werden können.
Nützliche Dienstprogramme: Kats bietet auch eine Reihe nützlicher Hilfsprogramme, wie z.B. Zeitreihen-Simulatoren.
Installation in Python
Kats befindet sich auf PyPI, so dass Sie pip
verwenden können, um es zu installieren.
|
|
Beispiel für eine Vorhersage
Verwendung des Modells Prophet
zur Vorhersage des Datensatzes air_passengers
.
|
|
Beispiele für die Erkennung
Die folgenden Schlüsse können mit Kats gezogen werden:
- Ausreißer-Erkennung: Es erkennt eine anomale Zunahme oder Abnahme innerhalb der Zeitreihe.
- Erkennung von Veränderungspunkten: Er erkennt plötzliche Veränderungen in der Zeitreihe. Für diesen Prozess gibt es in Kats 3 verschiedene Algorithmen:
- CUSUM-Erkennung
- Bayes’sche Online-Erkennung von Änderungspunkten (BOCPD)
- Stat Sig-Erkennung
- Trend Change Detection: Er erkennt die Trendänderungen der Zeitreihen mit Hilfe des Mann-Kendall Detection Algorithmus.
Ausreißer-Erkennung
Für die Erkennung von Ausreißern sind mindestens 24 Zeilen an Daten erforderlich.
|
|
Mit Kats erkannte Ausreißer können auch mit Hilfe von Kats bereinigt werden. Kats bietet hierfür 2 Methoden:
- Keine Interpolation: Füllt Ausreißer mit NaN auf, ohne die Interpolationsoperation anzuwenden.
- Mit Interpolation: Füllt Ausreißer durch Anwendung einer linearen Interpolation auf.
Erkennung von Änderungspunkten
Mit Kats ist es möglich, die Änderungspunkte in den Zeitreihen zu erkennen. Für diesen Prozess gibt es in Kats 3 verschiedene Algorithmen:
- CUSUMDetector
- BOCPDetector
- RobustStatDetector
Verwendung des Erkennungsalgorithmus CUSUM
auf einem simulierten Datensatz.
|
|
Erkennung von Trendänderungen
Mit Kats ist es auch möglich, die Trendrichtung einer Serie zu erkennen. Kats verwendet dafür den MKDetector-Algorithmus. Die Grundlage dieses Algorithmus ist der Mann-Kendall-Test, ein nicht-parametrischer Test.
|
|
Nützliche Links
- Homepage: https://facebookresearch.github.io/Kats/
- Kats Python package: https://pypi.org/project/kats/0.1.0/
- Facebook Engineering: https://engineering.fb.com/2021/06/21/open-source/kats/
- Source code repository: https://github.com/facebookresearch/kats
- Contributing: https://github.com/facebookresearch/Kats/blob/master/CONTRIBUTING.md
- Tutorials: https://github.com/facebookresearch/Kats/tree/master/tutorials
Fazit
Kats ist ein Tool für die Analyse von Zeitreihen, das eine Metalearning-Methode verwendet, um das am besten geeignete Modell und die entsprechenden Parameter für eine bestimmte Zeitreihe zu ermitteln. Dazu verwendet es die mit TSFeatures gewonnenen Metadaten und wendet den Random Forest-Algorithmus an, um das beste Modell auf der Grundlage dieser Metadaten zu ermitteln. Mit dieser Funktion von Kats können Benutzer ihr eigenes Tool für automatisches maschinelles Lernen (autoML) erstellen.