Project Icon

BasicTS

公平且标准的时间序列预测基准和工具包

BasicTS是一个开源的时间序列预测基准和工具包,支持空间-时间预测和长时间序列预测等任务。它提供统一标准的评估流程,实现对主流深度学习模型的公平对比。BasicTS还提供易用的接口,便于设计和评估新模型。该项目内置多个数据集和基线模型,支持多种计算设备,并有完善的日志系统。BasicTS致力于推动时间序列预测研究的发展。

标准公平的时间序列预测基准与工具包


EasyTorch LICENSE PyTorch python lint

$\text{BasicTS}^{+}$(Basic Time Series Plus)是一个增强型的时间序列预测基准和工具箱。$\text{BasicTS}^{+}$由其前身BasicTS演变而来,现在对空间-时间预测和长时间序列预测以及更一般的任务(如M4竞赛)提供了强大支持。为简洁起见,我们将交替使用$\text{BasicTS}^{+}$和$\text{BasicTS}$来指代本项目。

一方面,BasicTS利用统一标准的流程对流行的基于深度学习的模型进行公平全面的复现和比较

另一方面,BasicTS为用户提供易用且可扩展的接口,便于快速设计和评估新模型。用户至少只需定义模型架构即可。

我们正在收集待办事项操作指南,如果您需要更多功能(如更多数据集或基线),或有任何问题,请随时创建问题或在此处留言。

如果您发现本仓库对您的工作有用,请按以下方式引用此处:

@article{shao2023exploring,
  title={Exploring Progress in Multivariate Time Series Forecasting: Comprehensive Benchmarking and Heterogeneity Analysis},
  author={Shao, Zezhi and Wang, Fei and Xu, Yongjun and Wei, Wei and Yu, Chengqing and Zhang, Zhao and Yao, Di and Jin, Guangyin and Cao, Xin and Cong, Gao and others},
  journal={arXiv preprint arXiv:2310.06119},
  year={2023}
}

✨ 亮点特性

公平性能评估

用户可以基于统一全面的流程公平全面地比较不同模型在任意数据集上的性能。

使用BasicTS进行开发

最少代码 用户只需实现模型架构和数据预处理/后处理等关键代码,即可构建自己的深度学习项目。
一切基于配置 用户可以通过配置文件控制流程的所有细节,如数据加载器的超参数、优化和其他技巧(如课程学习)。
支持所有设备 得益于使用EasyTorch作为后端,BasicTS支持CPU、GPU和GPU分布式训练(包括单节点多GPU和多节点)。用户无需修改任何代码,只需设置参数即可使用。
保存训练日志 支持`logging`日志系统和`Tensorboard`,并将其封装为统一接口,用户可以通过调用简单接口保存自定义训练日志。

📦 内置数据集和基线

数据集

BasicTS支持多种数据集,包括空间-时间预测、长时间序列预测和大规模数据集,例如:

  • METR-LA、PEMS-BAY、PEMS03、PEMS04、PEMS07、PEMS08
  • ETTh1、ETTh2、ETTm1、ETTm2、Electricity、Exchange Rate、Weather、Traffic、Illness、Beijing Air Quality
  • SD、GLA、GBA、CA
  • ...

基线

BasicTS实现了丰富的模型,包括经典模型、时空预测模型和长时间序列预测模型,例如:

  • HI、DeepAR、LightGBM等
  • DCRNN、Graph WaveNet、MTGNN、STID、D2STGNN、STEP、DGCRN、STNorm、AGCRN、GTS、StemGNN、MegaCRN、STGCN、STWave、STAEformer、GMSDR等
  • Informer、Autoformer、FEDformer、Pyraformer、DLinear、NLinear、Triformer、Crossformer等

💿 依赖

前提条件

操作系统

我们建议在Linux系统(如Ubuntu和CentOS)上使用BasicTS。 其他系统(如Windows和macOS)尚未经过测试。

Python

Python版本 >= 3.6(推荐 >= 3.9)。

推荐使用MinicondaAnaconda创建虚拟Python环境。

其他依赖

BasicTS基于PyTorch和EasyTorch构建。 您可以按照PyTorch的说明安装PyTorch。例如:

pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html

确保PyTorch正确安装后,您可以通过以下方式安装其他依赖:

pip install -r requirements.txt

警告

BasicTS基于PyTorch 1.9.1或1.10.0构建,其他版本尚未经过测试。

🎯 使用BasicTS进行开发的入门指南

准备数据

  • 克隆BasicTS

    cd /path/to/your/project
    git clone https://github.com/zezhishao/BasicTS.git
    
  • 下载原始数据

    您可以从Google Drive百度网盘(密码:6v0a)下载所有原始数据集,并将它们解压到datasets/raw_data/目录。

  • 预处理数据

    cd /path/to/your/project
    python scripts/data_preparation/${DATASET_NAME}/generate_training_data.py
    

    ${DATASET_NAME}替换为METR-LAPEMS-BAYPEMS03PEMS04PEMS07PEMS08或任何其他支持的数据集。处理后的数据将放置在datasets/${DATASET_NAME}中。

评估您的模型的3个步骤

  • 定义您的模型架构

    forward函数需要遵循BasicTS的约定。您可以在baselines/MLP/mlp_arch.py中找到多层感知器(MLP)模型的示例。

  • 为您的模型定义Runner(可选)

    BasicTS在basicts.runner.BaseTimeSeriesForecastingRunner中提供了统一的标准流程。 尽管如此,您仍需要定义具体的前向过程(runner中的forward函数)。 幸运的是,BasicTS还在basicts.runner.SimpleTimeSeriesForecastingRunner中提供了这样的实现,可以覆盖大多数情况。 MLP模型的runner也可以使用这个内置runner。 您还可以在basicts.runners.runner_zoo中找到更多runner,以了解更多关于runner设计的信息。

  • 配置您的配置文件

    您可以在配置文件中配置流程的所有细节和超参数,即一切基于配置。 配置文件是一个.py文件,您可以在其中导入模型和runner,并设置所有选项。BasicTS使用EasyDict作为参数容器,具有可扩展性和灵活性。 您可以在baselines/MLP/MLP_METR-LA.py中找到MLP模型在METR-LA数据集上的配置文件示例。

运行!

  • 复现内置模型

    BasicTS提供了丰富的内置模型。您可以通过运行以下命令来复现这些模型:

    python experiments/train.py -c baselines/${MODEL_NAME}/${DATASET_NAME}.py --gpus '0'
    

    ${DATASET_NAME}${MODEL_NAME}替换为任何支持的模型和数据集。例如,您可以通过以下方式在METR-LA数据集上运行Graph WaveNet:

    python experiments/train.py -c baselines/GWNet/METR-LA.py --gpus '0'
    
  • 自定义您自己的模型

    示例:多层感知器(MLP)

贡献者 ✨

感谢这些优秀的人(emoji key):

本项目遵循all-contributors规范。欢迎任何形式的贡献!

📉 主要结果

详见论文《探索多变量时间序列预测的进展:全面基准测试与异质性分析》。

🔗 致谢

BasicTS基于EasyTorch开发,EasyTorch是一个易用且强大的开源神经网络训练框架。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号