Time-Series-Library 快速上手:零门槛时序预测,三步跑通第一条预测曲线
【免费下载链接】Time-Series-LibraryA Library for Advanced Deep Time Series Models for General Time Series Analysis.项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Library
没写过一行 PyTorch,今天能跑起一个时间序列预测模型吗?能。只需三步:装依赖、把数据放进指定文件夹、执行一条 DLinear 命令,用 Time-Series-Library 十分钟内就能看到第一条预测曲线,全程 CPU 就能完成。
先看成果:一条曲线、两个数 📈
动手前先验收目标。下面是官方教程里一次完整预测跑完的输出,蓝线是真实值(GroundTruth),橙线是模型预测值(Prediction):
- 除了这张图,终端最后还会打印 test mse 与 test mae 两个数值,越小代表预测越准;
- 下文所有步骤,都是为复现这张图和这两个数。
本文按“结果前置”讲:先看到效果,再倒推怎么做,每一步你都知道自己在验证什么。
三条命令装好 PyTorch 与依赖
唯一硬要求:Python 3.8 及以上。依赖清单已锁定在 requirements.txt 里,直接整包安装,不用猜版本:
git clone https://gitcode.com/GitHub_Trending/ti/Time-Series-Library cd Time-Series-Library python -m venv venv && source venv/bin/activate pip install -r requirements.txtPyTorch 不在 requirements 里,需要单独装:
pip install torch torchvision- 有 NVIDIA 显卡:自行改装 CUDA 版本,训练更快;
- 没有显卡:上面这条 CPU 版完全够用,本文示例在 CPU 上几分钟跑完。
下载 ETT 数据,放进 ./dataset 文件夹
仓库刻意不带数据文件以保持轻量,下载渠道在 README.md 里列了多个镜像,选一个能打开的即可。关键只有一条:解压后,项目根目录下必须存在./dataset/ETT-small/,里面能看到ETTh1.csv:
| 检查项 | 期望结果 |
|---|---|
./dataset/ETT-small/ETTh1.csv存在 | 长时序预测(本文主线)就能跑 |
| 其他 ETT 子集、Weather、Traffic 等 | 放好即可被对应脚本识别 |
库支持五类任务,全部由--task_name一个参数切换,实验逻辑都在 exp/ 目录:
| --task_name 取值 | 任务 |
|---|---|
| long_term_forecast | 长时序预测(本文主线) |
| short_term_forecast | 短时序预测(M4 竞赛数据) |
| imputation | 缺失值填补 |
| classification | 时序分类 |
| anomaly_detection | 异常检测 |
用一条 DLinear 命令跑通首次预测 🚀
第一次别贪大。选最轻的 DLinear(本质是两层线性模型,训练极快),只跑 1 轮,目的就是验证链路通了。入口是 run.py,把下面这段原样复制执行:
python -u run.py --task_name long_term_forecast --is_training 1 \ --root_path ./dataset/ETT-small/ --data_path ETTh1.csv \ --model_id test_long --model DLinear --data ETTh1 --features M \ --seq_len 96 --pred_len 96 --enc_in 7 --dec_in 7 --c_out 7 \ --train_epochs 1 --num_workers 2几个参数各管一件事:
| 参数 | 作用 | 示例值 |
|---|---|---|
| --seq_len | 回看多少步作为输入 | 96(按小时频率约 4 天) |
| --pred_len | 向未来预测多少步 | 96 |
| --features | M:7 变量预测 7 变量;S:单变量预测单变量;MS:多变量预测单变量 | M |
| --enc_in / --dec_in / --c_out | ETT 数据集的变量数 | 7 |
| --train_epochs | 训练轮数,先 1 轮跑通,正式跑改 10 | 1 |
跑完你会在结果目录看到第一节那张图,终端末尾打印 test mse、test mae——到此,链路已验证成功。
训练挂了?OOM、缺文件、CPU 问题直接查表 🛠️
| 症状 | 先看哪里 | 直接怎么改 |
|---|---|---|
| CUDA out of memory | 显存不够 | 加--batch_size 8(默认 32)降批量 |
| 机器没 GPU 想强制 CPU | 默认会自动探测设备 | 加--no_use_gpu明确走 CPU |
| 提示找不到 ETTh1.csv | 数据没放对 | 确认./dataset/ETT-small/ETTh1.csv真实存在 |
| pip 安装时依赖冲突 | 版本被全局环境污染 | 坚持用 venv,按 requirements.txt 固定版本重装 |
跑通之后:换 TimesNet、换任务
链路验证完成后,换模型只改一个参数:--model可取 TimesNet、Autoformer、PatchTST、Mamba 等,全部实现在 models/ 目录。现成脚本也备好了,比如 scripts/long_term_forecast/ETT_script/Autoformer_ETTh1.sh 会把 ETTh1 的 96→96、96→192、96→336、96→720 四组预测一次跑完:
bash scripts/long_term_forecast/ETT_script/Autoformer_ETTh1.sh想逐行理解模型怎么被训练和测试,打开 tutorial/TimesNet_tutorial.ipynb,官方教程把每一步都走了一遍,可以直接对照本文的命令读。
今天的最小下一步:先把那条 DLinear 命令跑通,看到 test mse 打印出来,这个库就算在你手里了;之后只需改--model和--pred_len,就能横向对比不同模型在不同预测长度下的表现。后续新模型、新数据集的更新,跟着项目 README 走即可。
【免费下载链接】Time-Series-LibraryA Library for Advanced Deep Time Series Models for General Time Series Analysis.项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Library
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考