Time-Series-Library 时间序列预测快速上手:跑通 TimesNet 拿到预测结果的 5 步
【免费下载链接】Time-Series-LibraryA Library for Advanced Deep Time Series Models for General Time Series Analysis.项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Library
你手里有一份电力变压器的 96 小时油温记录,想预测接下来 720 小时——这类时间序列预测任务自己搭模型、配数据集很繁琐。Time-Series-Library(TSLib)把它变成一条命令:这是 Python 写的开源深度时间序列分析库,覆盖预测、填补、异常检测、分类等 5 类任务,内置 TimesNet 等 40 多个主流模型。
📊 项目速览:这套时间序列预测库适合谁
TSLib 是深度时间序列分析的统一代码库和基准测试平台,适合评估新模型性能的研究者,也适合想把深度时间序列模型直接用到预测场景里的工程师。
| 项目 | 信息 |
|---|---|
| 开发语言 | Python(PyTorch) |
| 运行平台 | Linux / Windows / macOS,建议配 GPU |
| 核心能力 | 长期/短期预测、缺失值填补、异常检测、时间序列分类、零样本预测 |
| 内置模型 | TimesNet、iTransformer、PatchTST、TimeMixer、Informer 等 40 多个 |
| 适用人群 | 想入门深度时间序列的新手、研究者、应用工程师 |
核心能力拆解:时间序列预测最实用的 3 个场景
2D 周期建模做长期预测
TimesNet 先用傅里叶频谱(一种把波动拆成不同频率成分的分析方法)找出数据中前几个主要周期,把一维序列按周期重排成二维矩阵,再用 2D 卷积同时捕捉周期内的变化和周期之间的变化。它适合"输入 96 小时、预测未来 720 小时"这类任务,在库内的短期预测、填补、分类、异常检测 4 个任务榜单中排名第一。
一套框架跑 5 类时间序列分析任务
同一个模型靠--task_name参数切换任务,数据加载、训练流程、评估指标都由框架处理。同一份 ETTh1 数据集,这次跑长期预测,下次改成缺失值填补(默认掩掉 12.5% 的数据),流程代码不用改。
内置基准脚本与榜单
scripts/目录存放了"模型 × 数据集 × 任务"组合的现成参数脚本,输出指标与 README 中的榜单一一对应。想核对 TimesNet 在 ETT 数据集上的官方结果,执行一个 bash 命令即可,模型本身可以看源码 models/TimesNet.py。
从零上手:安装环境并跑第一次时间序列预测
准备环境
克隆仓库并创建 Python 3.11 环境:
git clone https://gitcode.com/GitHub_Trending/ti/Time-Series-Library cd Time-Series-Library conda create -n tslib python=3.11 -y && conda activate tslib pip install -r requirements.txt有 NVIDIA GPU 的话,先装与本地 CUDA 匹配的 torch(官方建议 torch 2.5.1)。再把预处理好的数据集(下载入口写在 README 里)放到项目根目录的./dataset文件夹,本文示例用其中体积最小的 ETT-small。
最小运行示例
下面这条快速测试只训练 1 个 epoch,然后立刻在 ETTh1 上完成一次 96 步到 96 步的预测:
python -u run.py --task_name long_term_forecast --is_training 1 --root_path ./dataset/ETT-small/ --data_path ETTh1.csv --model_id quick_test --model TimesNet --data ETTh1 --features M --seq_len 96 --label_len 48 --pred_len 96 --e_layers 2 --d_layers 1 --d_model 16 --d_ff 32 --enc_in 7 --dec_in 7 --c_out 7 --top_k 5 --train_epochs 1看到第一个结果
跑完后终端会打印测试集上的 MSE 和 MAE 两个误差指标,说明环境已完整跑通;模型权重保存在checkpoints/,预测对比图保存在results/。
完整示例走一遍:用 TimesNet 预测 720 小时变压器温度
- 输入:
./dataset/ETT-small/ETTh1.csv,每 15 分钟采样一次的 7 路传感器数据;任务是输入 96 个时间点,预测未来 720 个时间点(约 7 天)。 - 操作:执行官方脚本 scripts/long_term_forecast/ETT_script/TimesNet_ETTh1.sh,它会依次跑 96/192/336/720 四种预测长度;想改参数直接编辑这个文件。其中
top_k是 TimesNet 保留的主要周期数量,数据周期性越强可以调得越大。 - 产出:每个预测长度输出对应的 MSE/MAE,并保存各通道的预测曲线。下图来自官方教程,蓝线为真实值、橙线为模型预测:
⚠️ 避坑与常见疑问:新手最容易卡住的 3 个地方
- torch 装完报错或 GPU 不可用。torch 的预编译包与 CUDA 版本绑定,版本不匹配会在启动时报错;先查本地 CUDA 版本,再按 PyTorch 官方版本表选对应包。
- 启动时 FileNotFoundError。数据必须放在
./dataset(如./dataset/ETT-small/ETTh1.csv),放错位置框架会立刻报错,先核对路径再排查模型。 - 脚本指定了不存在的显卡。
scripts/下部分脚本开头有export CUDA_VISIBLE_DEVICES=N,指定某块 GPU 的编号;机器上没有对应编号时改成实际编号或注释掉这行。
🚀 下一步:往哪里深入
框架和数据流程都替你准备好了,你只需放入数据、执行命令。想逐层看 TimesNet 的结构,从官方教程 tutorial/TimesNet_tutorial.ipynb 开始;更多背景见README_zh.md中文文档,之后可以照着models/和scripts/的写法加入自己的模型。
【免费下载链接】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),仅供参考