【GRU时序预测】基于贝叶斯网络优化门控循环单元BO-GRU实现时间序列数据预测附matlab代码

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【GRU时序预测】基于贝叶斯网络优化门控循环单元BO-GRU实现时间序列数据预测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

石油是世界经济政治发展不能缺少的重要能源之一,它在世界经济发展中产生了重要的影响。减少其负面影响的办法就是了解并掌握石油价格的变化,因此目前全球热衷于的话题就是石油价格。石油价格被种种因素影响,包括供需、经济、国际政治、军事、外交等。由于石油价格的不确定性、复杂非线性、多种影响因素,非数值型的信息,数值型信息的数据噪声也十分大。由于传统石油价格预测方法不可依靠或预测结果精度较低。故此,学术和工业界研究者的目标就是找到一种预测模型,使其研究精度相对较高、性能等各方面均相对较好,同时还可以广泛使用。基于贝叶斯网络优化门控循环单元BO-GRU实现时间序列数据预测附matlab代码。

⛄ 部分代码

%% Mackey Glass Time Series Prediction Using Least Mean Square (LMS)

% Author: SHUJAAT KHAN

clc

clear all

close all


%% Loading Time series data

% I generated a series y(t) for t = 0,1, . . . ,3000, using

% mackey glass series equation with the following configurations:

% b = 0.1, a = 0.2, Tau = 20, and the initial conditions y(t - Tau) = 0.

load Dataset\Data.mat

time_steps=2;

teacher_forcing=1; % recurrent ARMA modelling with forced desired input after defined time steps

%% Training and Testing datasets

% For training

Tr=Data(100:2500,1);    % Selecting a Interval of series data t = 100~2500

Yr(Tr)=Data(Tr,2);      % Selecting a chuck of series data y(t)

% For testing

Ts=Data(2500:3000,1);   % Selecting a Interval of series data t = 2500~3000

Ys(Ts)=Data(Ts,2);      % Selecting a chuck of series data y(t)


%% LMS Parameters


eta=5e-3;       % Learning rate

M=1;            % Order of LMS filter


U=zeros(M+1,1); % Initial values of taps

W=zeros(M+1,1); % Initial weight of LMS


MSE=[];         % Initial mean squared error (MSE)


%% Learning weights of LMS (Training)

tic % start

for t=Tr(1):Tr(end)-time_steps

   U(1:end-1)=U(2:end);    % Shifting of tap window

   

   if (teacher_forcing==1)

       if rem(t,time_steps)==0 || (t==Tr(1))

           U(end)=Yr(t);           % Input (past/current samples)

       else

           U(end)=Yp(t-1);          % Input (past/current samples)          

       end

   else

       U(end)=Yr(t);           % Input (past/current samples)

   end

 

   Yp(t)=W'*U;                         % Predicted output

   e(t)=Yr(t+time_steps)-Yp(t);        % Error in predicted output


   W=W+eta*e(t)*U;     % Weight update rule of LMS

   

   E(t)=e(t).^2;   % Current mean squared error (MSE)

end

training_time=toc; % total time including training and calculation of MSE


%% Prediction of a next outcome of series using previous samples (Testing)

tic % start

U=U*0;  % Reinitialization of taps (optional)

for t=Ts(1):Ts(end)-time_steps+1

   U(1:end-1)=U(2:end);    % Shifting of tap window


   if (teacher_forcing==1)

       if rem(t,time_steps)==0 || (t==Ts(1))

           U(end)=Ys(t);           % Input (past/current samples)

       else

           U(end)=Yp(t-1);          % Input (past/current samples)          

       end

   else

       U(end)=Ys(t);           % Input (past/current samples)

   end

   

   

   Yp(t)=W'*U;             % Calculating output (future value)

   e(t)=Ys(t+time_steps-1)-Yp(t);        % Error in predicted output


   E(t)=e(t).^2;   % Current mean squared error (MSE)

end

testing_time=toc; % total time including testing and calculation of MSE


%% Results

figure(1)

plot(Tr,10*log10(E(Tr)));   % MSE curve

hold on

plot(Ts(1:end-time_steps+1),10*log10(E(Ts(1:end-time_steps+1))),'r');   % MSE curve

grid minor


title('Cost Function');

xlabel('Iterations (samples)');

ylabel('Mean Squared Error (MSE)');

legend('Training Phase','Test Phase');


figure(2)

plot(Tr(2*M:end),Yr(Tr(2*M:end)));      % Actual values of mackey glass series

hold on

plot(Tr(2*M:end),Yp(Tr(2*M:end))','r')   % Predicted values during training

plot(Ts,Ys(Ts),'--b');        % Actual unseen data

plot(Ts(1:end-time_steps+1),Yp(Ts(1:end-time_steps+1))','--r');  % Predicted values of mackey glass series (testing)

xlabel('Time: t');

ylabel('Output: Y(t)');

title('Mackey Glass Time Series Prediction Using Least Mean Square (LMS)')

ylim([min(Ys)-0.5, max(Ys)+0.5])

legend('Training Phase (desired)','Training Phase (predicted)','Test Phase (desired)','Test Phase (predicted)');


mitr=10*log10(mean(E(Tr)));  % Minimum MSE of training

mits=10*log10(mean(E(Ts(1:end-time_steps+1))));  % Minimum MSE of testing


display(sprintf('Total training time is %.5f, \nTotal testing time is %.5f \nMSE value during training %.3f (dB),\nMSE value during testing %.3f (dB)', ...

training_time,testing_time,mitr,mits));

⛄ 运行结果

⛄ 参考文献

[1]周洁超. 基于贝叶斯网络的时间序列预测[D]. 大连海事大学, 2016.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
4小时前
|
存储 算法 Windows
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(下)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
4小时前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】什么是贝叶斯网络?
【5月更文挑战第10天】【机器学习】什么是贝叶斯网络?
|
5小时前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言神经网络模型金融应用预测上证指数时间序列可视化
R语言神经网络模型金融应用预测上证指数时间序列可视化
|
4小时前
|
机器学习/深度学习 算法 数据可视化
基于WOA优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
该文介绍了使用优化后的深度学习模型(基于CNN、LSTM和Attention机制)进行时间序列预测,对比了优化前后的效果,显示了性能提升。算法在MATLAB2022a中实现,利用WOA(鲸鱼优化算法)调整模型超参数。模型通过CNN提取局部特征,LSTM处理序列依赖,Attention机制关注相关历史信息。核心程序展示了WOA如何迭代优化及预测过程,包括数据归一化、网络结构分析和预测误差可视化。
|
4小时前
|
机器学习/深度学习 数据挖掘 计算机视觉
R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
|
5小时前
|
数据可视化 数据挖掘
数据分享|spss modeler用贝叶斯网络分析糯稻品种影响因素数据可视化
数据分享|spss modeler用贝叶斯网络分析糯稻品种影响因素数据可视化
|
4小时前
|
机器学习/深度学习 算法 数据挖掘
基于WOA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
使用MATLAB2022a,结合WOA优化算法调整了CNN-LSTM-Attention模型的超参数。WOA仿照鲸鱼捕食策略解决优化问题,提升时间序列预测准确性。模型先用CNN提取局部特征,接着LSTM处理长期依赖,最后注意力机制聚焦相关历史信息。优化前后效果对比图显示,预测性能显著改善。代码中展示了WOA优化的网络训练及预测过程,并绘制了预测值与真实值的比较图表。
|
4小时前
|
机器学习/深度学习 并行计算 测试技术
BiTCN:基于卷积网络的多元时间序列预测
该文探讨了时间序列预测中模型架构的选择,指出尽管MLP和Transformer模型常见,但CNN在预测领域的应用较少。BiTCN是一种利用两个时间卷积网络来编码历史和未来协变量的模型,提出于《Parameter-efficient deep probabilistic forecasting》(2023年3月)。它包含多个由扩张卷积、GELU激活函数、dropout和全连接层组成的临时块,有效地处理序列数据。实验表明,BiTCN在具有外生特征的预测任务中表现优于N-HiTS和PatchTST。BiTCN的效率和性能展示了CNN在时间序列预测中的潜力。
23 1
|
5小时前
|
机器学习/深度学习 算法 数据可视化
数据报告分享|WEKA贝叶斯网络挖掘学校在校人数影响因素数据分类模型
数据报告分享|WEKA贝叶斯网络挖掘学校在校人数影响因素数据分类模型
|
4小时前
|
前端开发 数据挖掘 数据建模
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(中)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例

热门文章

最新文章