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

本文涉及的产品
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
服务治理 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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
打赏
0
0
0
0
847
分享
相关文章
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
103 3
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
基于模糊神经网络的金融序列预测算法matlab仿真
本程序为基于模糊神经网络的金融序列预测算法MATLAB仿真,适用于非线性、不确定性金融数据预测。通过MAD、RSI、KD等指标实现序列预测与收益分析,运行环境为MATLAB2022A,完整程序无水印。算法结合模糊逻辑与神经网络技术,包含输入层、模糊化层、规则层等结构,可有效处理金融市场中的复杂关系,助力投资者制定交易策略。
YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
112 9
YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
245 80
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
基于BP神经网络的金融序列预测matlab仿真
本项目基于BP神经网络实现金融序列预测,使用MATLAB2022A版本进行开发与测试。通过构建多层前馈神经网络模型,利用历史金融数据训练模型,实现对未来金融时间序列如股票价格、汇率等的预测,并展示了预测误差及训练曲线。
109 12
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
104 0
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为"Ttttttt111222",优化后为"Tttttttt333444",明显改进体现为"Tttttttttt5555"。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用'adam'优化器和超参数调整,最终评估并保存预测结果。
118 0
|
8月前
|
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
310 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
190 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现

热门文章

最新文章