Ce repo est la mise en œuvre officielle de Pytorch de LTSF-linéaire: "Les transformateurs sont-ils efficaces pour les prévisions de séries chronologiques?".
[2024/01/28] Notre modèle a été inclus dans NeuralForECast. Un merci spécial au contributeur @cchallu!
[2022/11/23] Accepté à AAAI 2023 avec trois acceptations fortes! Nous publions également une référence pour les prévisions de séries chronologiques à long terme pour des recherches supplémentaires.
[2022/08/25] Nous mettons à jour notre article avec des analyses complètes sur les raisons pour lesquelles les transformateurs LTSF existants ne fonctionnent pas bien sur le problème LTSF!
[2022/08/25] Outre Dlinear, nous sommes ravis d'ajouter deux modèles linéaires au papier et à ce repo. Nous avons maintenant une famille LTSF-linéaire!
[2022/08/25] Nous mettons à jour certains scripts de LTSF-linear.
Outre le LTSF-linéaire, nous fournissons cinq transformateurs de prévision importants pour réimplémenter les résultats du document.
Nous fournissons tous les fichiers de script d'expérience dans ./scripts :
| Fichiers | Interprétation |
|---|---|
| Exp-longForECasting | Tâche de prévision des séries chronologiques à long terme |
| Exp-LookBackwindow | Étudiez l'impact de différentes tailles de fenêtre de revers de look |
| Exp-incliné | Étudiez les effets de différentes stratégies d'intégration |
Ce code est simplement construit sur la base de code de l'autoformer. Nous apprécions beaucoup GitHub suivant pour leur précieuse base de code ou ensembles de données:
L'implémentation de l'autoformer, de l'informateur et du transformateur est de https://github.com/thuml/autoformer
L'implémentation de FedFormer est de https://github.com/maziqing/fedformrer
L'implémentation de PyraFormer est de https://github.com/alipay/pyraformer
LTSF-linear est un ensemble de modèles linéaires.
Bien que le LTSF-linéaire soit simple, il a des caractéristiques convaincantes:
Prévisions univariées:
Prévisions multivariées:
LTSF-linéaire surpasse toutes les méthodes basées sur les transformateurs par une grande marge.
Comparaison de l'efficacité de la méthode avec la taille de la fenêtre de look 96 et des étapes de prévision 720 sur l'électricité. Les MAC sont le nombre d'opérations multipliées. Nous utilisons Dlinear pour la comparaison car il a le double coût en LTSF-linéaire. Le temps d'inférence en moyenne 5 courses.
Tout d'abord, assurez-vous d'avoir installé Conda. Ensuite, notre environnement peut être installé par:
conda create -n LTSF_Linear python=3.6.9
conda activate LTSF_Linear
pip install -r requirements.txt
Vous pouvez obtenir les neuf repères de Google Drive fournis en autoformer. Tous les ensembles de données sont bien prétraités et peuvent être utilisés facilement.
mkdir dataset
Veuillez les mettre dans le répertoire ./dataset
scripts/ , nous fournissons la mise en œuvre du modèle Dlinear / autoformer / informateur / transformateurFEDformer/scripts/ , nous fournissons l'implémentation de FedFormerPyraformer/scripts/ , nous fournissons l'implémentation PyraFormerPar exemple:
Pour former le LTSF-linear sur un ensemble de données de taux d'échange , vous pouvez utiliser les scripts/EXP-LongForecasting/Linear/exchange_rate.sh :
sh scripts/EXP-LongForecasting/Linear/exchange_rate.sh
Il commencera à former Dlinear par défaut, les résultats seront affichés dans logs/LongForecasting . Vous pouvez spécifier le nom du modèle dans le script. (Linéaire, dlinéaire, nlinear)
Tous les scripts sur l'utilisation de la tâche LTSF-linéaire sur une longue tâche de prévision se trouvent dans scripts/EXP-LongForecasting/Linear/ , vous pouvez les exécuter de la même manière. La fenêtre de revers par défaut dans les scripts est de 336, LTSF-linéaire obtient généralement de meilleurs résultats avec une fenêtre de revers plus longue telle que dicustée dans le papier.
Les scripts sur la taille de la fenêtre de revers et la longue prévision de FedFormer et PyraFormer sont respectivement dans FEDformer/scripts et Pyraformer/scripts . Pour les exécuter, vous devez d'abord cd FEDformer ou cd Pyraformer . Ensuite, vous pouvez utiliser SH pour les exécuter de la même manière. Les journaux seront stockés dans logs/ .
Chaque expérience dans scripts/EXP-LongForecasting/Linear/ prend 5 minutes-20 minutes. Pour d'autres scripts de transformateur, car nous mettons toutes les expériences connexes dans un fichier de script, les exécuter directement prendra 8 heures par jour. Vous pouvez garder les expériences qui vous intéressent et commenter les autres.
Comme le montre notre article, les poids de LTSF-linéaire peuvent révéler certaines caractéristiques des données, c'est-à-dire la périodicité. Par exemple, nous fournissons la visualisation du poids de Dlinear dans weight_plot.py . Pour exécuter la visualisation, vous devez saisir le chemin du modèle (Model_name) de Dlinear (le répertoire du modèle dans ./checkpoint par défaut). Pour obtenir des modèles lisses et clairs, vous pouvez utiliser l'initialisation que nous avons fournie dans le fichier des modèles linéaires.

Si vous trouvez ce référentiel utile pour votre travail, veuillez envisager de le citer comme suit:
@inproceedings { Zeng2022AreTE ,
title = { Are Transformers Effective for Time Series Forecasting? } ,
author = { Ailing Zeng and Muxi Chen and Lei Zhang and Qiang Xu } ,
journal = { Proceedings of the AAAI Conference on Artificial Intelligence } ,
year = { 2023 }
}N'oubliez pas de citer tous les ensembles de données et de comparer les méthodes si vous les utilisez dans vos expériences.