Beschreibung
N-BEATS ist ein hochentwickeltes, auf neuronalen Netzen basierendes Modell, das speziell für die univariate Zeitreihenprognose entwickelt wurde. Es stellt einen bedeutenden Beitrag von ServiceNow Research dar, dessen Ursprünge auf Element AI zurückgehen. Das Projekt zielt darauf ab, eine robuste Implementierung des N-BEATS-Algorithmus bereitzustellen, die es Forschern und Praktikern ermöglicht, die im zugehörigen Paper vorgestellten experimentellen Ergebnisse zu reproduzieren.
Das Repository ist so strukturiert, dass ein einfacher Zugriff und eine einfache Nutzung ermöglicht werden. Die Kern-PyTorch-Implementierung des N-BEATS-Modells befindet sich in der Datei `models/nbeats.py`. Für die Datenverarbeitung sind die Dataset-Loader für verschiedene im Paper verwendete Datensätze im Verzeichnis `datasets/*.py` untergebracht. Das Verzeichnis `experiments/*` enthält die experimentellen Setups, die zur Replikation der Paper-Ergebnisse erforderlich sind, wobei jedes Verzeichnis ein `main.py`-Skript für die Trainings- und Prognoselogik sowie Konfigurationsdateien für generische und interpretierbare Modellvarianten enthält.
Ergebnisse und Leistungskennzahlen sind im Verzeichnis `notebooks` dokumentiert, wobei für jedes Experiment ein dediziertes Notebook vorhanden ist. Diese Notebooks zeigen die Endergebnisse und Einblicke in die Effektivität verschiedener Ensemblegrößen und stellen fest, dass kleinere Ensembles oft vergleichbare Ergebnisse wie größere erzielen. Diese Implementierung wird als eine "leichtere" Version des ursprünglichen N-BEATS beschrieben und bietet eine Leistung, die im Allgemeinen auf dem gleichen Stand der Technik liegt, mit gelegentlichen Abweichungen bei den Ergebnissen.
Das Projekt legt Wert auf Reproduzierbarkeit durch Docker, wodurch es für Benutzer mit oder ohne NVIDIA-GPUs zugänglich ist. Das `Makefile` bietet Befehle zur Initialisierung des Docker-Images, zum Herunterladen von Datensätzen, zum Ausführen von Tests, zum Erstellen von Experimenten und zum Ausführen von Prognosen auf CPU und GPU. Detaillierte Anweisungen werden für die Einrichtung der Umgebung, das Erstellen des Docker-Images, das Herunterladen von Datensätzen und das Ausführen von Experimenten mit anpassbaren Parametern wie Wiederholungen und Lookback-Perioden bereitgestellt. Die Ausgabe von Experimenten, einschließlich Protokolle, Verluste, Snapshots und endgültige Prognosen, wird im Verzeichnis `storage/experiments` gespeichert.
N-BEATS ist besonders wertvoll für Data Scientists, Machine Learning Engineers und Forscher, die sich mit Zeitreihenanalysen, Prognosen und prädiktiver Modellierung beschäftigen. Seine interpretierbare Natur und seine Spitzenleistung machen es zu einem leistungsstarken Werkzeug für das Verständnis und die Vorhersage zukünftiger Trends in univariaten Daten über verschiedene Domänen hinweg.
N-BEATS im Überblick
Auf neuronalen Netzen basierendes Modell für univariate Zeitreihenprognose
Implementierung des N-BEATS-Algorithmus
Reproduzierbare experimentelle Ergebnisse
PyTorch-Implementierung verfügbar
Dataset-Loader für verschiedene Datensätze
Konfigurationsdateien für generische und interpretierbare Modelle
Docker-Unterstützung für die Umgebungsgestaltung
Unterstützung für CPU- und GPU-Ausführung
Detaillierte Anleitungen zur Reproduktion
Speicher für Experimentprotokolle, Verluste und Prognosen
Erste Schritte mit N-BEATS
Umgebung einrichten: Stellen Sie sicher, dass Docker installiert ist, und passen Sie das Makefile an Ihre Umgebung an.
Docker-Image erstellen: Führen Sie `make init` aus, um das Docker-Image zu erstellen.
Datensätze herunterladen: Führen Sie `make dataset` aus, um die erforderlichen Datensätze herunterzuladen.
Experiment erstellen: Verwenden Sie `make build config=<pfad_zur_config.gin>`, um Experimentkonfigurationen zu generieren.
Experimente ausführen: Verwenden Sie `make run command=<pfad_zum_command>` für CPU oder `make run command=<pfad_zum_command> gpu=<gpu-id>` für GPU.
Experimentstatistiken abrufen: Führen Sie ein JupyterLab-Notebook über `make notebook port=<port>` aus, um die Leistung zu analysieren.
N-BEATS's Anwendungsfälle
- Zeitreihenprognose
- Prädiktive Analytik
- Nachfrageprognose
- Finanzprognose
- Ressourcenplanung







