%% gru network
% Programmed by qq,2027771338
% Updated 20 jun. 2024.
clc
clear
close all
%读取double格式数据
[a,ax,ay] = xlsread('数据.xlsx',1);
% t=[];
% for ii =1:4
% y(ii)=myPearson(a(:,ii),a(:,5));
% end
% plot(y)
for ii =1:2
a(:,5) =smooth(a(:,5),5);
end
num = [];
for ii = 1:length(a)-1
num = [num;a(ii,5) a(ii+1,:)];
end
m1=569;
n = randperm(m1);
m=500;
input_train=num(n(1:569),1:5)';%训练数据的输入数据
output_train=num(n(1:569),6)';%训练数据的输出数据
input_test=num((m+1:end),1:5)';%测试数据的输入数据
output_test=num((m+1:end),6)'; %测试数据的输出数据
[inputn,inputps]=mapminmax(input_train,-20,100);%训练数据的输入数据的归一化
[outputn,outputps]=mapminmax(output_train,-20,100);%训练数据的输出数据的归一化de
inputn_test=mapminmax('apply',input_test,inputps);
%% Define Network Architecture
% Define the network architecture.
numFeatures = size(num(:,1:5),2);%输入层维度
numResponses = size(num(:,end),2);%输出维度
% 200 hidden units
numHiddenUnits = 150;%第一层维度
% a fully connected layer of size 50 & a dropout layer with dropout probability 0.5
fungru
%
% Specify the training options.
% Train for 60 epochs with mini-batches of size 20 using the solver 'adam'
maxEpochs = 100;%最大迭代次数
miniBatchSize = 2;%最小批量
% the learning rate == 0.01
% set the gradient threshold to 1
% set 'Shuffle' to 'never'
options = trainingOptions('adam', ... %解算器
'MaxEpochs',maxEpochs, ... %最大迭代次数
'MiniBatchSize',miniBatchSize, ... %最小批次
'InitialLearnRate',0.01, ... %初始学习率
'GradientThreshold',inf, ... %梯度阈值
'Shuffle','every-epoch', ... %打乱顺序
'Plots','training-progress',... %画图
'Verbose',0); %不输出训练过程
%% Train the Network
net = trainNetwork(inputn,outputn,layers,options);%开始训练
%% Test the Network
y_pred = predict(net,inputn_test,'MiniBatchSize',100)';%测试仿真输出
y_pred =(mapminmax('reverse',y_pred,outputps))';
% load maydatalstm.mat
% save maydatalstm.mat net y_pred outputps inputps
%%
figure%打开一个图像窗口
plot(y_pred,'r-')%蓝色实线,点的形状^
hold on%停止画图
plot(output_test,'k-')%黑色实线,点的形状为*
hold off%继续画图
title('测试图')%标题
ylabel('')%Y轴名称
legend('测试值','实际值')%标签
error1 = y_pred-output_test;%误差
figure
plot(error1,'k-')
title('测试误差图')
ylabel('误差')
[MSE,RMSE,MBE,MAE ] =MSE_RMSE_MBE_MAE(output_test,y_pred)
R2 = R_2(output_test,y_pred)
numz = [num((m+1:end),:) y_pred'];
result_table = table;
result_table.Mpa0 = num(m+1:end,1);
result_table.ps = num(m+1:end,2);
result_table.A = num(m+1:end,3);
result_table.AB = num(m+1:end,4);
result_table.K = num(m+1:end,5);
result_table.true = output_test';
result_table.sim = y_pred';
writetable(result_table,'./结果.csv')
神经网络机器学习智能算法画图绘图
- 粉丝: 2823
- 资源: 660
最新资源
- AI视觉云台_案例程序的加载方法.zip
- Python实现HTML压缩功能
- 云原生-k8s知识学习-CKA考前培训
- 对象检测23-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 快速排序在Go中的高效实现与应用
- 根据SQL代码查询数据后,自动打印
- 用HTML5和JavaScript实现动态过年鞭炮场景
- Windows检查电池健康度的批处理脚本实现
- 贝尔金F9L1101V2 无线网卡驱动 V1027.2.1001.2014-11-13-2014-6.1-x64,WIN7 X64亲测可用 下载并解压后只有4个小文件,需手动更新,浏览指到下载文件夹
- 中科岩创桥梁自动化监测解决方案
- An End-to-End Learning Framework for Video Compression
- jieba分词哈工大停用词表
- C#自定义事件 2024年12月23日
- (2147634)经典C程序100例 很经典的例子
- (22151828)图书管理系统!
- 快速排序算法详解及Python实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈