多元回归预测 | Matlab基于卷积神经网络-双向门控循环单元结合注意力机制(CNN-BIGRU-Attention)回归预测,多变量输入模型

文章目录

      • 效果一览
      • 文章概述
      • 部分源码
      • 参考资料


效果一览

多元回归预测 | Matlab基于卷积神经网络-双向门控循环单元结合注意力机制(CNN-BIGRU-Attention)回归预测,多变量输入模型_第1张图片

文章概述

多元回归预测 | Matlab基于卷积神经网络-双向门控循环单元结合注意力机制(CNN-BIGRU-Attention)回归预测,多变量输入模型
评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2021版本及以上。

部分源码

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
tic
restoredefaultpath


M = size(P_train, 2);
N = size(P_test, 2);
f_ = size(P_train, 1);

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);



%% 测试集误差图
figure  
ERROR3=T_test-T_sim2;
plot(T_test-T_sim2,'b-*','LineWidth',1.5)
xlabel('测试集样本编号')
ylabel('预测误差')
title('测试集预测误差')
grid on;
legend('PSO-RF预测输出误差')
%% 绘制线性拟合图
%% 训练集拟合效果图
figure
plot(T_train,T_sim1,'*r');
xlabel('真实值')
ylabel('预测值')
string = {'训练集效果图';['R^2_c=' num2str(R1)  '  RMSEC=' num2str(error1) ]};
title(string)
hold on ;h=lsline;
set(h,'LineWidth',1,'LineStyle','-','Color',[1 0 1])
%% 预测集拟合效果图
figure
plot(T_test,T_sim2,'ob');
xlabel('真实值')
ylabel('预测值')
string1 = {'测试集效果图';['R^2_p=' num2str(R2)  '  RMSEP=' num2str(error2) ]};
title(string1)
hold on ;h=lsline();
set(h,'LineWidth',1,'LineStyle','-','Color',[1 0 1])
%% 求平均
R3=(R1+R2)./2;
error3=(error1+error2)./2;
%% 总数据线性预测拟合图
tsim=[T_sim1,T_sim2]';
S=[T_train,T_test]';
figure
plot(S,tsim,'ob');
xlabel('真实值')
ylabel('预测值')
string1 = {'所有样本拟合预测图';['R^2_p=' num2str(R3)  '  RMSEP=' num2str(error3) ]};
title(string1)
hold on ;h=lsline();
set(h,'LineWidth',1,'LineStyle','-','Color',[1 0 1])
%% 打印出评价指标
disp(['-----------------------误差计算--------------------------'])
disp(['评价结果如下所示:'])
disp(['平均绝对误差MAE为:',num2str(MAE2)])
disp(['均方误差MSE为:       ',num2str(mse2)])
disp(['均方根误差RMSEP为:  ',num2str(error2)])
disp(['决定系数R^2为:  ',num2str(R2)])
disp(['剩余预测残差RPD为:  ',num2str(RPD2)])
disp(['平均绝对百分比误差MAPE为:  ',num2str(MAPE2)])
grid


参考资料

[1] https://blog.csdn.net/m0_57362105/article/details/130383523?spm=1001.2014.3001.5502

你可能感兴趣的:(matlab,cnn,gru,CNN-BIGRU,Attention)