描述
N-BEATS 是一个复杂的、基于神经网络的模型,专门为单变量时间序列预测而设计。它是 ServiceNow Research 的一项重要贡献,其起源可追溯到 Element AI。该项目旨在提供 N-BEATS 算法的稳健实现,使研究人员和从业人员能够复现相关论文中提出的实验结果。
该存储库的结构便于访问和使用。N-BEATS 模型的核心 PyTorch 实现位于 `models/nbeats.py` 文件中。数据处理方面,论文中使用过的各种数据集的加载器位于 `datasets/*.py` 目录中。`experiments/*` 目录包含了复现论文结果所需的实验设置,每个设置都包含一个用于训练和预测逻辑的 `main.py` 脚本,以及通用模型和可解释模型变体的配置文件。
结果和性能指标记录在 `notebooks` 目录中,每个实验都有一个专门的 notebook。这些 notebook 展示了最终分数以及对不同集成大小有效性的见解,并指出较小的集成通常能获得与较大集成相当的结果。此实现被描述为原始 N-BEATS 的“轻量级”版本,其性能通常处于相同的最先进水平,但结果偶尔会有差异。
该项目通过 Docker 强调可复现性,无论用户是否拥有 NVIDIA GPU 都可以使用。`Makefile` 提供了初始化 Docker 镜像、下载数据集、运行测试、构建实验以及在 CPU 和 GPU 上执行预测的命令。提供了详细的说明来设置环境、构建 Docker 镜像、下载数据集以及运行具有可自定义参数(如重复次数和回溯期)的实验。实验的输出,包括日志、损失、快照和最终预测,存储在 `storage/experiments` 目录中。
N-BEATS 对于数据科学家、机器学习工程师和参与时间序列分析、预测和预测建模的研究人员特别有价值。其可解释的特性和最先进的性能使其成为理解和预测各种领域单变量数据未来趋势的强大工具。
N-BEATS亮点
用于单变量时间序列预测的基于神经网络的模型
N-BEATS 算法的实现
可复现的实验结果
提供 PyTorch 实现
各种数据集的数据集加载器
通用模型和可解释模型的配置文件
支持 Docker 进行环境设置
支持 CPU 和 GPU 执行
详细的复现说明
用于存储实验日志、损失和预测的存储
N-BEATS入门
设置环境:确保已安装 Docker,并根据您的环境调整 Makefile。
构建 Docker 镜像:运行 `make init` 来构建 Docker 镜像。
下载数据集:执行 `make dataset` 来下载所需数据集。
构建实验:使用 `make build config=<path_to_config.gin>` 来生成实验配置。
运行实验:使用 `make run command=<path_to_command>` 在 CPU 上运行,或使用 `make run command=<path_to_command> gpu=<gpu-id>` 在 GPU 上运行。
获取实验统计信息:通过 `make notebook port=<port>` 运行 JupyterLab notebook 来分析性能。
N-BEATS的使用案例
- 时间序列预测
- 预测分析
- 需求预测
- 财务预测
- 资源规划







