Este repo é a implementação oficial do Pytorch do LTSF: "Os Transformers são eficazes para a previsão de séries temporais?".
[2024/01/28] Nosso modelo foi incluído no Neuralforecast. Agradecimentos especiais ao colaborador @cchallu!
[2022/11/23] Aceito para AAAI 2023 com três aceitação forte! Também lançamos uma referência para previsão de séries temporais de longo prazo para mais pesquisas.
[2022/08/25] Atualizamos nosso artigo com análises abrangentes sobre por que os LTSF-Transformadores existentes não funcionam bem no problema da LTSF!
[2022/08/25] Além do Dlinear, estamos empolgados em adicionar dois modelos lineares ao papel e a este repositório. Agora temos uma família LTSF linear!
[2022/08/25] Atualizamos alguns scripts de LTSF-linear.
Além do LTSF linear, fornecemos cinco transformadores de previsão significativos para reimplementar os resultados no artigo.
Fornecemos todos os arquivos de script experimentais em ./scripts :
| Arquivos | Interpretação |
|---|---|
| Exp-Longforecasting | Tarefa de previsão de séries temporais de longo prazo |
| EXP-LOLLOKBABLEWindow | Estude o impacto de diferentes tamanhos de janela de aparência |
| EXP-JABEDDIMENTO | Estude os efeitos de diferentes estratégias de incorporação |
Este código é simplesmente construído na base de código do auto -former. Agradecemos muito os seguintes repositórios do GitHub por sua valiosa base de código ou conjuntos de dados:
A implementação de autoformador, informante e transformador é de https://github.com/thuml/autoformer
A implementação do Fedformer é de https://github.com/maziqing/fedformer
A implementação do pyraformer é de https://github.com/alipay/pyraformer
LTSF-Linear é um conjunto de modelos lineares.
Embora o LTSF-linear seja simples, ele tem algumas características atraentes:
Previsão univariada:
Previsão multivariada:
O LTSF linear supera todos os métodos baseados em transformadores por uma grande margem.
Comparação da eficiência do método com o tamanho da janela de aparência 96 e as etapas de previsão 720 sobre eletricidade. Os MACs são o número de operações multiplinárias acumuladas. Usamos o Dlinear para comparação, pois ele tem o duplo custo no LTSF-linear. O tempo de inferência média de 5 corridas.
Primeiro, verifique se você instalou o CONDA. Então, nosso ambiente pode ser instalado por:
conda create -n LTSF_Linear python=3.6.9
conda activate LTSF_Linear
pip install -r requirements.txt
Você pode obter todos os nove benchmarks do Google Drive fornecidos no Autoformer. Todos os conjuntos de dados são bem pré-processados e podem ser usados facilmente.
mkdir dataset
Por favor, coloque -os no diretório ./dataset
scripts/ , fornecemos a implementação do modelo Dlinear/AutoFormer/Informer/TransformerFEDformer/scripts/ , fornecemos a implementação do FedformerPyraformer/scripts/ , fornecemos a implementação do pyraformerPor exemplo:
Para treinar o LTSF-linear no conjunto de dados de taxa de câmbio , você pode usar os scripts/EXP-LongForecasting/Linear/exchange_rate.sh :
sh scripts/EXP-LongForecasting/Linear/exchange_rate.sh
Começará a treinar o Dlinear por padrão, os resultados serão mostrados no logs/LongForecasting . Você pode especificar o nome do modelo no script. (Linear, Dlinear, Nlinear)
Todos os scripts sobre o uso do LTSF linear na tarefa de previsão longa está em scripts/EXP-LongForecasting/Linear/ , você pode executá-los de maneira semelhante. A janela de aparência padrão nos scripts é 336, o LTSF-linear geralmente atinge melhores resultados com a janela mais longa, como selida no papel.
Os scripts sobre o tamanho da janela Look-Back e a longa previsão de Fedformer e Pyraformer estão no FEDformer/scripts e Pyraformer/scripts , respectivamente. Para executá -los, você precisa primeiro cd FEDformer ou cd Pyraformer . Em seguida, você pode usar o SH para executá -los de maneira semelhante. Os logs serão armazenados em logs/ .
Cada experimento em scripts/EXP-LongForecasting/Linear/ leva 5 minutos-20min. Para outros scripts do transformador, uma vez que colocamos todas as experiências relacionadas em um arquivo de script, executá -los diretamente levará 8 horas por dia. Você pode manter os experimentos em que está interessado e comentar sobre os outros.
Como mostrado em nosso artigo, os pesos do LTSF-linear podem revelar algumas características dos dados, ou seja, a periodicidade. Como exemplo, fornecemos a visualização de peso do dlinear em weight_plot.py . Para executar a visualização, você precisa inserir o caminho do modelo (Model_Name) do DLINEAR (o diretório do modelo em ./checkpoint por padrão). Para obter padrões suaves e claros, você pode usar a inicialização que fornecemos no arquivo de modelos lineares.

Se você achar esse repositório útil para o seu trabalho, considere citá -lo da seguinte forma:
@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 }
}Lembre -se de citar todos os conjuntos de dados e métodos comparados se você os usar em seus experimentos.