还在用单步预测?ALA-BiTCN-BiGRU一键实现多步预测吸引审稿人!附Matlab代码

📅 发布时间:2026/8/2 20:08:14
还在用单步预测?ALA-BiTCN-BiGRU一键实现多步预测吸引审稿人!附Matlab代码
目录多步预测教程数据输入格式结果展示模型原理1.BiTCN层2.BiGRU层3.ALA优化算法部分代码展示完整代码获取今天给大家带来一期利用25年最新旅鼠优化算法ALA优化BiTCN-BiGRU深度学习模型多步预测的代码这个方法也是我们原创的一个新模型任何学术平台都搜不到非常适合作为创新点。为什么我说非常适合作为创新点首先目前市面上所有预测程序基本上都是单步的实际上单步预测容易造成精度很高的假象并且没有任何实际意义会被审稿人质疑而市面上出现的几种多步预测程序大多存在错误或者不科学的地方。比如很多小伙伴手里有超前24步或96步预测程序实际上这并不是真正的多步预测只是预测24行数据与真实值进行比较。而论文里通常用的3步、4步、6步预测又该如何解决呢难不成只预测三个点吗而我们本期推出的多步预测程序不仅可以显著增加工作量防止大家工作量不够而且利用25年最新的优化算法对模型进行优化能够吸引审稿人更能够真正反映出预测效果。您只需做的工作替换Excel数据一键运行main文件即可非常适合新手小白多步预测教程时间序列的多步预测是以一维或多维的多个历史数据为输入变量输入到设定的预测模型中去再由模型对数据进行拟合最终输出某区间时刻的未来值可以看下面这张图多步预测也分很多类型比如直接策略、递归策略、多输出策略等等。在我们的代码中是一次性收集了连续多个历史时刻作为输入并将紧随其后的多个时刻作为输出。因此模型的目标是kim表示历史时间步长度(即连续 kim 个历史时刻作为输入)而zim表示预测的步长。模型每次会一次性输出多个未来时刻的预测值因此我们的模型采用的是直接多步预测Direct Multi-step。数据输入格式本期推文采用的案例数据是经典的多变量时间序列预测数据集是为了方便大家替换自己的数据集各个变量采用特征1、特征2…表示无实际含义最后一列即为输出。同时设置延时步长即滑动窗口为6。更换自己的数据时只需最后一列放想要预测的列其余列放特征即可无需更改代码时间不用放因为程序不会读取时间非常方便结果展示在模型超参数方面统一设置最大迭代次数为100Adam 梯度下降算法初始学习率为0.01最大位置编码长度为256。划分80%为训练集20%为测试集其余参数均为默认参数。同时设置历史时间步即滑动窗口与预测步长不同为6。为了体现出多步预测的特点我们分别设置步长为2、4、6看一下各个步长预测的效果其他步长小伙伴们也可以自行尝试首先是2步预测即同时预测未来2个时刻效果如下2步预测时R2达到了0.926精度还是非常高的再来看下4步预测4步预测时精度相比于2步有下降R2下降RMSE上升这也完美符合多步预测的规律预测的步长越长难度也就越高精度肯定越低。最后看下6步预测6步预测时精度下降的更多毕竟直接预测未来6个时刻还是非常有难度的图中预测值的曲线相比上面两张图也偏移较多。总体上看我们的多步预测是非常成功的很多论文里都会列一张表格记录每个步长的各个误差指标比如下面这个论文中的表格小伙伴们也可以参考下当然我们代码中还有很多其他图片小伙伴们也可以自行选用~迭代曲线图回归图误差直方图网络结构图最后命令行窗口也会清楚地显示R2、MAE、RMSE、MAPE的误差指标~以上结果展示中所有图片作者都已精心整理过代码都可以一键运行main直接出图不信的话可以看下面文件夹截图非常清晰明了适用平台Matlab2023及以上没有的文件夹里已经免费提供安装包直接下载即可模型原理这里再简单给小伙伴们介绍下ALA-BiTCN-BiGRU的模型预测原理没有任何公式可以放心查看防止大家不会写1.BiTCN层传统的TCN只对输入序列进行正向卷积计算只提取正向数据特征忽略了反向中的隐含信息。在输入序列的每一层卷积之后扩张因子呈指数增长。经过几次卷积BiTCN获得了更大的接受域。BiTCN接受域的增加带来了梯度消失和收敛缓慢等问题。残差块的引入可以避免这些问题同时实现对序列的高效特征提取。因此采用双向时间卷积结构BiTCN来捕捉前后方向的隐藏特征以更好地获得序列的长时间依赖性BiTCN的网络结构如下图所示非常新颖2.BiGRU层接着利用BiGRU层来进一步处理BiTCN的输出通过考虑的前后文信息来提高预测的准确性进一步提高预测精度BiGRU 本质上是一个双层 GRU 网络在前向 GRU 层中通过前向传播将特征输入到网络训练中并挖掘数据的前向相关性。在逆向 GRU 层中输入序列通过反向传播进行训练挖掘数据的逆相关性。这种网络架构可以对输入的特征进行双向提取更好地提高特征的完整性和全局性。3.ALA优化算法旅鼠优化算法ALA于2025年1月发表在SCITop期刊《Artificial Intelligence Review》上实验结果表明ALA算法在大部分测试函数上均取得了最优结果该算法性能非常不错解决了BiTCN-BiGRU模型参数难以人工准确设定的问题之前推文有做过ALA和经典算法SCA的比较效果显而易见链接如下2025年SCI顶刊新算法-旅鼠优化算法(ALA)-公式原理详解与性能测评 Matlab代码免费获取部分代码展示%% 导入数据 X xlsread(数据集.xlsx); %% 数据分析 num_samples size(X, 1); % 样本行数 or_dim size(X, 2); % 每条数据的列数 kim 6; % 历史时间步长度(用连续 kim 个历史时刻作为输入) zim 2; % 想要一次性预测的步数(多步预测) %% 重构数据集 res []; for i 1 : (num_samples - kim - zim 1) input_part 略 % 输入部分 output_part 略 % 输出部分 res(i, :) [input_part, output_part]; % 拼接部分 end %% 训练集和测试集划分 outdim zim; % 多步预测输出维度 zim num_size 0.8; % 训练集占比 num_train_s round(num_size * size(res,1)); % 训练集样本个数 f_ size(res, 2) - outdim; % 输入特征维度 kim*or_dim P res(:, 1 : f_); T res(:, f_ 1 : end); %% 划分训练集和测试集 P_train P(1 : num_train_s, :); T_train T(1 : num_train_s, :); M size(P_train, 2); P_test P(num_train_s 1 : end, :); T_test T(num_train_s 1 : end, :); N size(P_test, 2);完整代码获取如果需要以上完整代码只需点击下方小卡片再后台回复关键字不区分大小写多步预测单品