时间序列库 (TSLib)
TSLib 是一个开源库,专为深度学习研究人员设计,特别是深度时间序列分析领域。
我们提供了一个干净的代码库,可以评估先进的深度时间序列模型或开发您自己的模型,涵盖了五个主流任务:长期和短期预测、插补、异常检测和分类。
:triangular_flag_on_post:新闻 (2024.07) 我们撰写了一篇全面的 [深度时间序列模型] 调查文献,基于 TSLib 进行了严格的基准测试。在本文中,我们总结了当前时间序列模型的设计原则,并通过有见地的实验提供了支持,希望对未来的研究有所帮助。
:triangular_flag_on_post:新闻 (2024.04) 感谢 frecklebars 的卓越工作。著名的序列模型 Mamba 已包含在我们的库中。请参阅此文件,首先需要用 pip 安装 mamba_ssm
。
:triangular_flag_on_post:新闻 (2024.03) 鉴于不同论文的不一致回溯长度,我们在排行榜中将长期预测分为两类:Look-Back-96 和 Look-Back-Searching。我们建议研究人员阅读TimeMixer,其中在实验中包含了两种回溯长度设置,以确保科学严谨。
:triangular_flag_on_post:新闻 (2023.10) 我们添加了 iTransformer 的实现,这是目前最先进的长期预测模型。iTransformer 的官方代码和完整脚本可在此处找到。
:triangular_flag_on_post:新闻 (2023.09) 我们为 TimesNet 和本库添加了一个详细的教程,对深度时间序列分析的初学者非常友好。
:triangular_flag_on_post:新闻 (2023.02) 我们发布了 TSlib 作为时间序列模型的综合基准和代码库,这是从我们之前的 GitHub 仓库 Autoformer 扩展而来的。
时间序列分析排行榜
截至2024年3月,五个不同任务的前三名模型如下:
模型 排名 | 长期 预测 Look-Back-96 | 长期 预测 Look-Back-Searching | 短期 预测 | 插补 | 分类 | 异常 检测 |
---|---|---|---|---|---|---|
🥇 第1名 | iTransformer | TimeMixer | TimesNet | TimesNet | TimesNet | TimesNet |
🥈 第2名 | TimeMixer | PatchTST | 非平稳 Transformer | 非平稳 Transformer | 非平稳 Transformer | FEDformer |
🥉 第3名 | TimesNet | DLinear | FEDformer | Autoformer | Informer | Autoformer |
注意:我们将持续更新此排行榜。 如果您提出了先进且出色的模型,可以发送您的论文/代码链接或提交拉取请求。我们会尽快将它们添加到这个仓库并更新排行榜。
比较此排行榜的模型。 ☑ 表示其代码已包含在本仓库中。
- TimeMixer - TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting [ICLR 2024] [代码]
- TSMixer - TSMixer: An All-MLP Architecture for Time Series Forecasting [arXiv 2023] [代码]
- iTransformer - iTransformer: Inverted Transformers Are Effective for Time Series Forecasting [ICLR 2024] [代码]
- PatchTST - A Time Series is Worth 64 Words: Long-term Forecasting with Transformers [ICLR 2023] [代码]
- TimesNet - TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis [ICLR 2023] [代码]
- DLinear - Are Transformers Effective for Time Series Forecasting? [AAAI 2023] [代码]
- LightTS - Less Is More: Fast Multivariate Time Series Forecasting with Light Sampling-oriented MLP Structures [arXiv 2022] [代码]
- ETSformer - ETSformer: Exponential Smoothing Transformers for Time-series Forecasting [arXiv 2022] [代码]
- 非平稳 Transformer - 非平稳 Transformers: Exploring the Stationarity in Time Series Forecasting [NeurIPS 2022] [代码]
- FEDformer - FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting [ICML 2022] [代码]
- Pyraformer - Pyraformer: Low-complexity Pyramidal Attention for Long-range Time Series Modeling and Forecasting [ICLR 2022] [代码]
- Autoformer - Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting [NeurIPS 2021] [代码]
- Informer - Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting [AAAI 2021] [代码]
- Reformer - Reformer: The Efficient Transformer [ICLR 2020] [代码]
- Transformer - Attention is All You Need [NeurIPS 2017] [代码]
请参阅我们的最新论文 [TimesNet] 获取全面基准测试。我们将很快发布一个实时更新的在线版本。 新增基准线。 在全面评估后我们会将它们添加到排行榜中。
- Mamba - Mamba: 具有选择性状态空间的线性时间序列建模 [arXiv 2023] [代码]
- SegRNN - SegRNN: 用于长期时间序列预测的分段递归神经网络 [arXiv 2023] [代码]
- Koopa - Koopa: 使用Koopman预测器学习非平稳时间序列动态 [NeurIPS 2023] [代码]
- FreTS - 频域MLP在时间序列预测中是更有效的学习者 [NeurIPS 2023] [代码]
- TiDE - TiDE: 用于长期预测的时间序列密集编码器 [arXiv 2023] [代码]
- FiLM - FiLM: 用于长期时间序列预测的频率改进勒让德记忆模型 [NeurIPS 2022] [代码]
- MICN - MICN: 用于长期序列预测的多尺度本地和全局上下文建模 [ICLR 2023] [代码]
- Crossformer - Crossformer: 利用跨维度依赖的Transformer进行多变量时间序列预测 [ICLR 2023] [代码]
- TFT - 可解释的多地平线时间序列预测的时序融合Transformer [arXiv 2019] [代码]
使用说明
- 安装Python 3.8。为了方便执行以下命令。
pip install -r requirements.txt
- 训练和评估模型。我们在
./scripts/
文件夹下为所有基准提供了实验脚本。你可以按照以下示例复现实验结果:
# 长期预测
bash ./scripts/long_term_forecast/ETT_script/TimesNet_ETTh1.sh
# 短期预测
bash ./scripts/short_term_forecast/TimesNet_M4.sh
# 插补
bash ./scripts/imputation/ETT_script/TimesNet_ETTh1.sh
# 异常检测
bash ./scripts/anomaly_detection/PSM/TimesNet.sh
# 分类
bash ./scripts/classification/TimesNet.sh
- 开发你自己的模型。
- 将模型文件添加到
./models
文件夹中。你可以参考./models/Transformer.py
。 - 将新添加的模型包含在
./exp/exp_basic.py
的Exp_Basic.model_dict
中。 - 在
./scripts
文件夹下创建相应的脚本。
注意:分类任务的原始代码可以在这里找到。将所有五个任务整合到一个库中是很困难的。我们仍在进行这项任务。
引用
如果你觉得此仓库有用,请引用我们的论文。
@inproceedings{wu2023timesnet,
title={TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis},
author={Haixu Wu and Tengge Hu and Yong Liu and Hang Zhou and Jianmin Wang and Mingsheng Long},
booktitle={International Conference on Learning Representations},
year={2023},
}
@article{wang2024tssurvey,
title={Deep Time Series Models: A Comprehensive Survey and Benchmark},
author={Yuxuan Wang and Haixu Wu and Jiaxiang Dong and Yong Liu and Mingsheng Long and Jianmin Wang},
booktitle={arXiv preprint arXiv:2407.13278},
year={2024},
}
联系方式
如果你有任何问题或建议,请随时联系我们的维护团队:
- Haixu Wu(博士生,wuhx23@mails.tsinghua.edu.cn)
- Yong Liu(博士生,liuyong21@mails.tsinghua.edu.cn)
- Yuxuan Wang(博士生,wangyuxu22@mails.tsinghua.edu.cn)
- Tengge Hu(硕士生,htg21@mails.tsinghua.edu.cn)
- Haoran Zhang(硕士生,z-hr20@mails.tsinghua.edu.cn)
- Jiawei Guo(本科生,guo-jw21@mails.tsinghua.edu.cn)
- Huikun Weng(本科生,wenghk22@mails.tsinghua.edu.cn)
或者在Issues中描述。
致谢
该项目得到中国国家重点研发计划(2021YFB1715200)支持。
此库基于以下资源构建:
所有实验数据集都是公开的,我们从以下链接获取: