Description
N-BEATS est un modèle sophistiqué basé sur un réseau neuronal, spécifiquement conçu pour la prévision de séries temporelles univariées. Il représente une contribution significative de ServiceNow Research, ses origines remontant à Element AI. Le projet vise à fournir une implémentation robuste de l'algorithme N-BEATS, permettant aux chercheurs et aux praticiens de reproduire les résultats expérimentaux présentés dans l'article associé.
Le dépôt est structuré pour faciliter l'accès et l'utilisation. L'implémentation PyTorch principale du modèle N-BEATS se trouve dans le fichier `models/nbeats.py`. Pour la gestion des données, les chargeurs de jeux de données pour divers jeux de données utilisés dans l'article sont situés dans le répertoire `datasets/*.py`. Le répertoire `experiments/*` abrite les configurations expérimentales nécessaires pour reproduire les résultats de l'article, chacune contenant un script `main.py` pour la logique d'entraînement et de prévision, ainsi que des fichiers de configuration pour les variantes de modèles génériques et interprétables.
Les résultats et les métriques de performance sont documentés dans le répertoire `notebooks`, avec un notebook dédié pour chaque expérience. Ces notebooks présentent les scores finaux et des informations sur l'efficacité de différentes tailles d'ensembles, notant que les ensembles plus petits donnent souvent des résultats comparables aux plus grands. Cette implémentation est décrite comme une version 'plus légère' du N-BEATS original, offrant des performances généralement au même niveau de pointe, avec des variations occasionnelles dans les résultats.
Le projet met l'accent sur la reproductibilité grâce à Docker, le rendant accessible aux utilisateurs avec ou sans GPU NVIDIA. Le `Makefile` fournit des commandes pour initialiser l'image Docker, télécharger les jeux de données, exécuter les tests, construire les expériences et exécuter les prévisions sur CPU et GPU. Des instructions détaillées sont fournies pour configurer l'environnement, construire l'image Docker, télécharger les jeux de données et exécuter les expériences avec des paramètres personnalisables tels que les répétitions et les périodes de recul. La sortie des expériences, y compris les journaux, les pertes, les instantanés et les prévisions finales, est stockée dans le répertoire `storage/experiments`.
N-BEATS est particulièrement précieux pour les data scientists, les ingénieurs en apprentissage automatique et les chercheurs impliqués dans l'analyse des séries temporelles, la prévision et la modélisation prédictive. Sa nature interprétable et ses performances de pointe en font un outil puissant pour comprendre et prédire les tendances futures dans les données univariées à travers divers domaines.
Points forts de N-BEATS
Modèle basé sur un réseau neuronal pour la prévision de séries temporelles univariées
Implémentation de l'algorithme N-BEATS
Résultats expérimentaux reproductibles
Implémentation PyTorch disponible
Chargeurs de jeux de données pour divers jeux de données
Fichiers de configuration pour les modèles génériques et interprétables
Support Docker pour la configuration de l'environnement
Support d'exécution CPU et GPU
Instructions détaillées pour la reproduction
Stockage pour les journaux d'expériences, les pertes et les prévisions
Premiers pas avec N-BEATS
Configurer l'environnement : Assurez-vous que Docker est installé et ajustez le Makefile pour votre environnement.
Construire l'image Docker : Exécutez `make init` pour construire l'image Docker.
Télécharger les jeux de données : Exécutez `make dataset` pour télécharger les jeux de données requis.
Construire une expérience : Utilisez `make build config=<chemin_vers_config.gin>` pour générer les configurations d'expérience.
Exécuter les expériences : Utilisez `make run command=<chemin_vers_commande>` pour CPU ou `make run command=<chemin_vers_commande> gpu=<id_gpu>` pour GPU.
Obtenir les statistiques d'expérience : Exécutez un notebook JupyterLab via `make notebook port=<port>` pour analyser les performances.
Cas d'utilisation de N-BEATS
- Prévision de séries temporelles
- Analyse prédictive
- Prévision de la demande
- Prévision financière
- Planification des ressources







