TimesNet 时间序列预测实战:3 步跑通 + 4 个必须调的参数
TimesNet 时间序列预测实战3 步跑通 4 个必须调的参数【免费下载链接】Time-Series-LibraryA Library for Advanced Deep Time Series Models for General Time Series Analysis.项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Library电网运维组要预测变压器未来 720 小时温度线性模型已经接不住了。Time-Series-Library 里的 TimesNet 用 FFT 做周期检测把一维时间序列重塑成二维矩阵再交给 2D 卷积做多尺度特征提取一条命令就能跑。本文带你 3 步从 clone 到出图再讲清楚 4 个直接决定精度的参数。跑通第一个时间序列预测从 clone 到出图先克隆仓库并安装依赖地址在文末然后对 ETT 数据集执行python -u run.py \ --task_name long_term_forecast \ --is_training 1 \ --root_path ./dataset/ETT-small/ \ --data_path ETTh1.csv \ --model TimesNet \ --data ETTh1 \ --seq_len 96 --pred_len 96 \ --e_layers 2 --top_k 5 \ --d_model 16 --d_ff 32 --itr 1参数速览--task_name long_term_forecast长期预测任务同样支持插补、异常检测、分类--root_path--data_path数据目录与文件名ETTh1.csv 是 15 分钟粒度的电力数据--seq_len 96输入最近 96 个时间步--pred_len 96向未来预测 96 步--e_layers 2TimesBlock 堆叠数即 2D 卷积深度--top_k 5只关注最强的前 5 个周期成分--d_model / --d_ff隐层宽度小数据集用 16/32 就够覆盖 ETT、ECL、Traffic 等多套真实数据跑完控制台会打印 MAE、MSE 等评估指标拿自己的曲线图对照即可判断效果。读懂 2D 卷积与周期检测的实现实现全在 models/TimesNet.py核心两步。第一步周期检测FFT_for_Period对序列做 rfft按幅值取 top_k 个最强频率分量换算成周期 T/k。不用人工标注模型自己找数据的节奏。FFT 找周期多尺度特征分解第二步 2D 卷积把一维序列按检测到的周期切成周期数 × 周期长度的二维矩阵相当于把时间线按周期折行成一张表。随后两级 Inception 2D 卷积多核宽度跟进核沿周期方向看周期内模式沿周期数方向看周期间漂移。各周期结果按幅值权重加权和再加残差连接。1D 时间序列转 2D周期内/周期间联合建模为什么要折成二维一维卷积只能看到时间邻域第 1 个周期的模式与第 10 个周期的模式是割裂的。折成二维后周期内位置和周期序号成为两个独立维度同一个卷积核天然跨周期复用模式——这是多周期时间序列建模的关键。时间序列预测 4 个参数调参指南基线跑通后精度主要看这 4 个--top_k周期成分数推荐 5。频谱峰值尖锐可降到 3–4叠加周期多如日周可升到 7--seq_len输入长度推荐 96 起。要覆盖主周期的整数倍周期长就扩到 336/720--pred_len预测步长96–720。业务定多少就填多少步长越长越依赖足够长的 seq_len--e_layers块数推荐 2。出现过拟合降到 1小数据不建议超过 2两组常见场景配置可直接替换上面命令短期M4 月度单变量seq_len 96、pred_len 28、top_k 3、e_layers 1、d_model 32长期ETTh1 多变量seq_len 96、pred_len 720、top_k 5、e_layers 2、d_model 16720 步预测值与真实值对照它能做到什么做不到什么多周期能力强FFT 自动检测周期省去人工标周期多尺度提取多核 2D 卷积同时捕捉周期内波动与周期间趋势自带实例归一化对非平稳数据相对稳边界FFT 默认序列近似平稳周期漂移或结构性突变的序列精度会掉每个块要循环 top_k 个周期各跑一遍 2D 卷积序列很长且 top_k 调大时训练时长明显增加按场景选下一步想读核心实现看 models/TimesNet.py重点在FFT_for_Period与TimesBlock200 行内能读完想换数据集抄 scripts/long_term_forecast/ETT_script/TimesNet_ETTh1.sh 的完整配置改root_path和data_path即可想改卷积核配置看 layers/Conv_Blocks.py 里的Inception_Block_V1git clone https://gitcode.com/GitHub_Trending/ti/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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考