clear
close all
clc
%打开数据集
input=xlsread('BP训练数据','训练1','B9:M17')
output=xlsread('BP训练数据','训练1','B19:M21')
%训练集、测试集
input_train=input(:,1:7);
output_train=output(:,1:7);
input_test=input(:,8:end);
output_test=output(:,8:end);
%数据归一化
[inputn,inputps]=mapminmax(input_train,0,1);
[outputn,outputps]=mapminmax(output_train);
inputn_test=mapminmax('apply',input_test,inputps);
%构建BP神经网络
net=newff(inputn,outputn,4)
%网络参数
net.trainParam.epochs=1000;
net.trainParam.lr=0.01;
net.trainParam.goal=0.0000001;
%BP神经网络训练
net=train(net,inputn,outputn);
%BP神经网络测试
an=sim(net,inputn_test); %用训练好的模型进行仿真
test_simu=mapminmax('reverse',an,outputps); %预测结果反归一化
error=test_simu-output_test; %预测值与真实值的误差
%真实值与预测值的误差比较
figure(1)
plot(output_test,'bo-')
hold on
plot(test_simu,'r*-')
hold on
plot(error,'square','MarkerFaceColor','b')
legend('期望值','预测值','误差')
xlabel('数据数组'),
ylabel('值')
title('测试集预测值和期望值的误差对比')
set(gca,'fontsize')
%计算误差
[~,len]=size(output_test);
MAE1=sum(abs(error./output_test))/len;
MSE1=sum(error.^2)/len;
RMSE1=MSE1.^(1/2);
disp(['-------------计算误差--------------'])
disp(['平均绝对误差MAE为:',num2str(MAE1)])
disp(['均方误差MSE为:',num2str(MSE1)])
disp(['均方根误差RMSE为:',num2str(MAE1)])
(为什么我插不进图片。。。)
Matlab神经网络预测模型测试验证集与误差集的图中,每个值都出现了四条线,这是为什么呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
悬赏问题
- ¥15 没输出运行不了什么问题
- ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
- ¥15 点云密度大则包围盒小
- ¥15 nginx使用nfs进行服务器的数据共享
- ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
- ¥15 51嵌入式入门按键小项目
- ¥30 海外项目,如何降低Google Map接口费用?
- ¥15 fluentmeshing
- ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
- ¥15 盘古气象大模型调用(python)