Este repositorio es la implementación oficial de Pytorch de LTSF-LINEAR: "¿Son efectivos los transformadores para el pronóstico de series de tiempo?".
[2024/01/28] Nuestro modelo se ha incluido en NeuralForecast. ¡Un agradecimiento especial al colaborador @cchallu!
[2022/11/23] ¡Aceptado para AAAI 2023 con tres aceptaciones fuertes! También lanzamos un punto de referencia para el pronóstico de series de tiempo a largo plazo para futuras investigaciones.
[2022/08/25] ¡Actualizamos nuestro documento con análisis exhaustivos sobre por qué los transformadores LTSF existentes no funcionan bien en el problema LTSF!
[2022/08/25] Además de Dlinear, estamos emocionados de agregar dos modelos lineales al papel y este repositorio. ¡Ahora tenemos una familia LTSF-Linear!
[2022/08/25] Actualizamos algunos scripts de LTSF-LINEAR.
Además de LTSF-Linear, proporcionamos cinco transformadores de pronóstico significativos para volver a implementar los resultados en el documento.
Proporcionamos todos los archivos de script de experimentos en ./scripts :
| Archivos | Interpretación |
|---|---|
| Exp-Longforecasting | Tarea de pronóstico de series de tiempo a largo plazo |
| Exp-SeevbackWindow | Estudiar el impacto de los diferentes tamaños de ventana de retroceso |
| EXP-Embeding | Estudiar los efectos de diferentes estrategias de incrustación |
Este código simplemente se basa en la base de código de autoformador. Apreciamos mucho los siguientes reposadores de GitHub por su valiosa base de código o conjuntos de datos:
La implementación de AutoFormer, Informer y Transformer es de https://github.com/thuml/autoformer
La implementación de FedFormer es de https://github.com/maziqing/fedformer
La implementación de PyraFormer es de https://github.com/alipay/pyraformer
LTSF-LINEAR es un conjunto de modelos lineales.
Aunque LTSF-Lineal es simple, tiene algunas características convincentes:
Pronóstico univariado:
Pronóstico multivariado:
LTSF-lineal supera todos los métodos basados en transformadores por un gran margen.
Comparación de la eficiencia del método con el tamaño de la ventana de respaldo 96 y los pasos de pronóstico 720 en la electricidad. Las MAC son el número de operaciones de acumulación multiplicada. Usamos dlinear para comparación ya que tiene el doble costo en LTSF-LINEAR. El tiempo de inferencia promedia 5 carreras.
Primero, asegúrese de haber instalado Condo. Entonces, nuestro entorno se puede instalar por:
conda create -n LTSF_Linear python=3.6.9
conda activate LTSF_Linear
pip install -r requirements.txt
Puede obtener los nueve puntos de referencia de Google Drive proporcionados en Autoformer. Todos los conjuntos de datos están bien preprocesados y se pueden usar fácilmente.
mkdir dataset
Póngalos en el directorio ./dataset
scripts/ , proporcionamos la implementación del modelo dlinear/autoformer/informador/transformerFEDformer/scripts/ , proporcionamos la implementación de FedFormerPyraformer/scripts/ , proporcionamos la implementación de PyraFormerPor ejemplo:
Para entrenar el LTSF-Linear en el conjunto de datos de tasa de intercambio , puede usar el script scripts/EXP-LongForecasting/Linear/exchange_rate.sh :
sh scripts/EXP-LongForecasting/Linear/exchange_rate.sh
Comenzará a entrenar dlinear de forma predeterminada, los resultados se mostrarán en logs/LongForecasting . Puede especificar el nombre del modelo en el script. (Lineal, dlinear, nlinear)
Todos los scripts sobre el uso de LTSF-LINEAR en tarea de pronóstico larga están en scripts/EXP-LongForecasting/Linear/ , puede ejecutarlos de manera similar. La ventana de respaldo predeterminada en los scripts es 336, LTSF-LINEAR generalmente logra mejores resultados con una ventana de retroceso más larga como se dice en el papel.
Los scripts sobre el tamaño de la ventana de retroceso y el pronóstico largo de FedFormer y Pyraformer están en FEDformer/scripts y Pyraformer/scripts , respectivamente. Para ejecutarlos, debe primero cd FEDformer o cd Pyraformer . Luego, puede usar SH para ejecutarlos de manera similar. Los registros se almacenarán en logs/ .
Cada experimento en scripts/EXP-LongForecasting/Linear/ toma 5 minutos-20 minutos. Para otros scripts de transformadores, dado que colocamos todos los experimentos relacionados en un archivo de script, ejecutarlos directamente tomará 8 horas por día. Puede mantener los experimentos que le interesan y comentar sobre los demás.
Como se muestra en nuestro documento, los pesos de LTSF-lineal pueden revelar algunas características de los datos, es decir, la periodicidad. Como ejemplo, proporcionamos la visualización de peso de dlinear en weight_plot.py . Para ejecutar la visualización, debe ingresar la ruta del modelo (model_name) de dlinear (el directorio de modelos en ./checkpoint de forma predeterminada). Para obtener patrones suaves y claros, puede usar la inicialización que proporcionamos en el archivo de modelos lineales.

Si encuentra que este repositorio es útil para su trabajo, considere citarlo de la siguiente manera:
@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 }
}Recuerde citar todos los conjuntos de datos y los métodos comparados si los usa en sus experimentos.