(2023.3)基于MATLAB NAR和NARx神经网络时序预测+数据集 |
您所在的位置:网站首页 › matlab中预测模型 › (2023.3)基于MATLAB NAR和NARx神经网络时序预测+数据集 |
针对Math老师提到的《MATLAB时间序列神经网络训练好以后怎么预测》MATLAB时间序列神经网络训练好以后怎么预测 – MATLAB中文论坛 (ilovematlab.cn) 目录 一、循环预测(不常用) 二、一次性预测(官方指定方法) 三、代码实现 一、循环预测(不常用)循环预测的原理即是利用开环网络(open-loop)在循环中进行多步预测。开环网络的特点就是一次只能预测出一个,训练的时候就是用的开环网络。可以发现在训练的时候,其输出的performance都特别的好,误差也很小。至于训练神经网络的代码,利用工具箱或者网上各种教程,特别多了。开环网络如图: 下面是循环预测的代码:每一步只能预测出一个,然后手动编写代码将其输出y(t)添加到输入中,不断更新输入,然后就能实现多步预测(multi-step prediction)。其中force_raw是延迟delay,(在工具箱中显示为d,在代码段中显示为feedbackDelays),其含义为输入向量的个数,是用多少个数去预测下一个。一般来说,输出其下一个时间步的值结果最为准确。 for j=1:31 force_prediction(j)=net(force_raw); force_raw=[force_raw(2:end);force_prediction(j)]; end需要注意的是,这里的j=1:31,31在这里即指代的是预测范围(prediction horizon),由于该神经网络本身的结构原因(通过上述代码可以更加清晰地发现),其预测误差是随着预测范围的增加不断累积的,然而我们是无法规避这种误差的,除非更换更加适合长序列预测的神经网络,在后面会提到,我会用到一种长短时记忆时序预测网络(LSTM, Long-short term Memory),它能够解决该神经网络在预测上的一些问题。 二、一次性预测(官方指定方法)一次性预测的原理即是利用了闭环网络(close-loop)。它能够通过nar_net_closed = closeloop(net)这段代码将开环网络变成闭环的。闭环网络的特点是它代替了我们上述编写代码的步骤 ,即它自己在内部就会不断迭代反馈循环,然后能够实现一次性预测。 p1、Pi1均为空矩阵(因为nar没有输入矩阵,那么p1和Pi1也就不存在),然后p1这个空矩阵的维度直接决定了预测的长度(至于空矩阵为什么还有维度,应该跟计算机里面的线性存储和数据划分方式有关),只有Ai1是有实际意义的,其矩阵的形式为——列长度方面:层与层之间最长延迟向量为长度,因此为30(可以看到图中为1:30)。行长度方面:分为两个部分,蓝色所示部分跟隐藏层层数有关,该部分数值全部为零,该网络只有一个隐藏层,因此只有一个维度,同时每个维度中还内含维度,回馈层维度中的数值就是延迟向量(为1),维度数为每层的节点数为20。Ai1数据结构如下图所示: 其中t1为扣除了delay个(这里是新的设定,delay=5)之后的数据,T为目标输出值。 NAR-RNN时间序列预测代码(数据集+训练+预测+预测效果对比)-深度学习文档类资源-CSDN文库 图 1‑1 NAR-RNN时间序列预测效果 2.NARX-RNN网络预测 clc clear load data.mat; load net.mat %% 解释输入输出,这里输入不需要时间,只有事件发生的先后顺序 %% NARX网络不用归一化 iinput=data(2000:3000,2:7); %这里选用2000:3000的来验证 ooutput=data(2000:3000,8); %这里选用2000:3000的来验证 %% 预测 narx_net_closed = closeloop(net); %% 迭代循环 %% 准备数据 X = tonndata(iinput,false,false); T = tonndata(ooutput,false,false); %如果原始样本定向为列,则为True;如果为行,则为false [p1,Pi1,Ai1,t1] = preparets(narx_net_closed,X,{},T); %% 多步预测 data_pred = narx_net_closed(p1,Pi1,Ai1); e = gsubtract(t1,data_pred); performance = perform(narx_net_closed,t1,data_pred); Pred=cell2mat(data_pred); Observed=cell2mat(t1); %% 显示图的预测对比 plot(Pred) hold on; plot(Observed)(29条消息) NARX-RNN时间序列预测代码(数据集+训练+预测+预测效果对比)-深度学习文档类资源-CSDN文库 图 1‑2 NARX-RNN时间序列预测效果 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |