news 2026/9/13 17:38:49

Time-Series-Library 时间序列预测快速上手:跑通 TimesNet 拿到预测结果的 5 步

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Time-Series-Library 时间序列预测快速上手:跑通 TimesNet 拿到预测结果的 5 步

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 个地方

  1. torch 装完报错或 GPU 不可用。torch 的预编译包与 CUDA 版本绑定,版本不匹配会在启动时报错;先查本地 CUDA 版本,再按 PyTorch 官方版本表选对应包。
  2. 启动时 FileNotFoundError。数据必须放在./dataset(如./dataset/ETT-small/ETTh1.csv),放错位置框架会立刻报错,先核对路径再排查模型。
  3. 脚本指定了不存在的显卡。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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 17:38:37

CAN自定义协议设计实战:ID规划、帧结构与状态机

1. 为什么“CAN自定义协议”不是填空题,而是系统工程CAN总线本身不定义应用层——它只管把一帧数据(最多8字节)从A点可靠地送到B点,中间靠硬件仲裁、CRC校验、错误帧重传兜底。但“这8个字节里到底放什么?谁发&#xf…

作者头像 李华
网站建设 2026/9/13 17:38:31

51单片机与DAC0832波形发生器设计与Proteus仿真实现

简介:一份基于51单片机与DAC0832的多种信号发生器/波形发生器设计资源,面向电子类学生、嵌入式初学者及电路调试人员,用于快速获取正弦波、三角波、矩形波、锯齿波和梯形波等常用测试信号。压缩包共21个文件,包含Proteus仿真工程&…

作者头像 李华
网站建设 2026/9/13 17:36:49

DAM0808B工业I/O模块:RS485+Modbus可靠接入实战指南

1. 这不是一块普通继电器板——DAM0808B到底在工业现场解决什么真问题?你拆开过一台正在跑的PLC柜吗?里面密密麻麻的线缆,一半是24V DC电源,另一半几乎全是信号线:温度变送器的4–20mA、液位开关的干接点、电磁阀的控制…

作者头像 李华
网站建设 2026/9/13 17:36:11

高效PPT制作:5类必备模板工具与实用技巧

1. 为什么我们需要PPT模板工具?做PPT这件事,估计是每个职场人的噩梦。明明内容都准备好了,却要花大把时间在排版设计上。我见过太多同事为了调一个色块的位置折腾半小时,也见过不少人在deadline前熬夜改格式。其实PPT制作完全可以…

作者头像 李华