欢迎使用 BasicTS 教程!本指南将带您逐步完成使用 BasicTS 训练和评估模型的过程。
在深入之前,我们先简单介绍一下 BasicTS。
什么是 BasicTS?
Important
BasicTS 是一个专为时间序列预测设计的强大且灵活的工具。无论您是该领域的新手,还是经验丰富的专业人士,BasicTS 都能为您提供可靠的支持。使用 BasicTS,您可以轻松构建、训练和评估时间序列预测模型,还能比较各种模型的性能,找到最佳解决方案。我们已经集成了超过30种算法和20个数据集,并在持续添加更多内容。
谁应该使用 BasicTS?
Important
BasicTS 非常适合初学者和专家使用。对于想要进入时间序列预测领域的初学者来说,BasicTS 能帮助你快速掌握基本流程并构建自己的预测模型。对于专家来说,BasicTS 提供了一个强大的平台,用于进行严格的模型比较,确保精准的研究与开发。
核心功能
Important
BasicTS 有两个关键特性:公平性 和 可扩展性。所有模型都在相同条件下训练和评估,消除了由外部因素引入的偏差,确保了可靠的比较。此外,BasicTS 具有高度的可扩展性,允许根据需要自定义数据集、模型结构和评估指标。例如,您只需在配置文件中指定 CFG.TRAIN.LR_SCHEDULER.TYPE = 'MultiStepLR'
,即可添加学习率调度器。
现在,让我们开始探索如何通过 BasicTS 实现您的时间序列预测项目吧!
首先,克隆 BasicTS 仓库:
cd /path/to/your/project
git clone https://github.com/zezhishao/BasicTS.git
我们建议在 Linux 系统(如 Ubuntu 或 CentOS)上使用 BasicTS。
需要 Python 3.6 或更高版本(建议使用 3.8 或更高版本)。
我们推荐使用 Miniconda 或 Anaconda 来创建虚拟 Python 环境。
BasicTS 对 PyTorch 版本非常灵活。您可以根据 Python 版本安装 PyTorch。我们建议使用 pip
进行安装。
确保 PyTorch 正确安装后,您可以安装其他依赖项:
pip install -r requirements.txt
# 安装 Python
conda create -n BasicTS python=3.11
conda activate BasicTS
# 安装 PyTorch
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121
# 安装其他依赖项
pip install -r requirements.txt
# 安装 Python
conda create -n BasicTS python=3.9
conda activate BasicTS
# 安装 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
# 安装其他依赖项
pip install -r requirements.txt
您可以从 Google Drive 或 百度网盘 下载 all_data.zip
文件。将文件解压到 datasets/
目录:
cd /path/to/BasicTS # not BasicTS/basicts
unzip /path/to/all_data.zip -d datasets/
这些数据集已预处理完毕,可以直接使用。
Note
data.dat
文件是以 numpy.memmap
格式存储的数组,包含原始时间序列数据,形状为 [L, N, C],其中 L 是时间步数,N 是时间序列数,C 是特征数。
desc.json
文件是一个字典,存储了数据集的元数据,包括数据集名称、领域、频率、特征描述、常规设置和缺失值。
其他文件是可选的,可能包含附加信息,如表示时间序列间预定义图结构的 adj_mx.pkl
。
Note
如果您对预处理步骤感兴趣,可以参考预处理脚本 和 raw_data.zip
。
forward
函数应该遵循 BasicTS 的规范。多层感知机(MLP
)模型的示例可以在 examples/arch.py 中找到。
BasicTS 提供了一个统一的标准化流程,位于 basicts.runner.BaseTimeSeriesForecastingRunner
。您仍然需要在 执行器 中的 forward
函数中定义具体的前向过程。
幸运的是,BasicTS 已提供了一个可直接使用的实现,basicts.runner.SimpleTimeSeriesForecastingRunner
,可处理大多数情况。MLP
模型的执行器可以使用这个内置执行器。
所有流程细节和超参数都可以在 .py
文件中配置。该配置文件允许您导入模型和执行器,并设置所有选项,如模型、执行器、数据集、数据缩放器、优化器、损失函数和其他超参数。MLP
模型在 PEMS08
数据集上的配置示例可在 examples/regular_config.py 中找到。
Note
配置文件是 BasicTS 中训练和评估的核心。Examples/complete_config.py
列出了所有可配置的选项。
basicts.launch_training
是训练的入口点。您可以运行以下命令来训练您的模型:
-
训练上述提到的 MLP 模型
python experiments/train.py -c examples/regular_config.py -g 0
或者:
-
复现其他内置模型
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'
basicts.launch_evaluation
是评估的入口点。您可以运行以下命令来评估您的模型:
python experiments/evaluate.py -cfg {CONFIG_FILE}.py -ckpt {CHECKPOINT_PATH}.pth -g 0
本教程为您提供了 BasicTS 的基础知识,但还有更多内容等待您探索。在深入其他主题之前,我们先更详细地了解 BasicTS 的结构:
BasicTS 的核心组件包括 Dataset
、Scaler
、Model
、Metrics
、Runner
和 Config
。为简化调试过程,BasicTS 作为一个本地化框架运行,所有代码都直接在您的机器上运行。无需 pip install basicts
,只需克隆仓库,即可本地运行代码。
以下是一些高级主题和附加功能,帮助您充分利用 BasicTS: