clc%清除命令窗口变量
clear%清除工作空间变量
close all%关闭FIGURE图像
rng('default')
rng(2)
load maydata.mat
n= randperm(length(num));
input_train=num(n,1:3)';%训练数据的输入数据
output_train=num(n,4:6)';%训练数据的输出数据4
input_test=num((1:end),1:3)';%测试数据的输入数据
output_test=num((1:end),4:6)'; %测试数据的输出数据
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train,-1,1);%训练数据的输入数据的归一化
[outputn,outputps]=mapminmax(output_train,-1,1);%训练数据的输出数据的归一化de
inputn_test=mapminmax('apply',input_test,inputps);
outputn_test=mapminmax('apply',output_test,outputps);
%% BP网络训练
% %初始化网络结构
%net=newff(inputn,outputn,[135,5],{'logsig','tansig'},'trainlm');
% net=newff((inputn),outputn,[230,3],{'logsig','tansig'},'trainlm');
net=newff(minmax(inputn),[160,3],{'logsig','tansig'},'traingdx');
net.trainParam.max_fail =50;
net.trainParam.epochs=1000;%最大迭代次数
net.trainParam.lr=0.001;%学习率
net.trainParam.goal=0.001;%学习目标
%网络训练
net=train(net,inputn,outputn);
%% BP网络预测
%网络预测输出
an=sim(net,inputn_test);
an1=sim(net,inputn);
%网络输出反归一化-+
BPoutput=(mapminmax('reverse',an,outputps));
BPoutput1=(mapminmax('reverse',an1,outputps));
R2 = R_2(output_test(1,:),BPoutput(1,:))
[MSE0, RMSE0, MBE0, MAE0 ] =MSE_RMSE_MBE_MAE(output_test(1,:),BPoutput(1,:))
figure
plot(BPoutput(1,:),'r-o')%预测的结果数据画图:代表虚线,O代表圆圈标识,G代表绿色
hold on
plot(output_test(1,:),'k-*');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识
hold on
legend('BP预测输出','期望输出')%标签
title('BP神经网络','fontsize',12)%标题 字体大小为12
ylabel('D')
set(gca,'fontsize',12)
figure
plot(BPoutput(2,:),'r-o')%预测的结果数据画图:代表虚线,O代表圆圈标识,G代表绿色
hold on
plot(output_test(2,:),'k-*');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识
hold on
legend('BP预测输出','期望输出')%标签
title('BP神经网络','fontsize',12)%标题 字体大小为12
ylabel('E')
set(gca,'fontsize',12)
figure
plot(BPoutput(3,:),'r-o')%预测的结果数据画图:代表虚线,O代表圆圈标识,G代表绿色
hold on
plot(output_test(3,:),'k-*');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识
hold on
legend('BP预测输出','期望输出')%标签
title('BP神经网络','fontsize',12)%标题 字体大小为12
ylabel('F')
set(gca,'fontsize',12)
%预测误差
error0=BPoutput-output_test;
figure
plot(error0(1,:)','k*')
ylabel('Error')
ylabel('误差')
xlabel('样本')
set(gca,'fontsize',12)
figure
plot(error0(2,:)','k*')
ylabel('Error')
ylabel('误差')
xlabel('样本')
set(gca,'fontsize',12)
figure
plot(error0(3,:)','k*')
ylabel('Error')
ylabel('误差')
xlabel('样本')
set(gca,'fontsize',12)
funtu(outputn_test,an)
%%
m=6;
[R21,R01] = R_2(output_test(1,:),BPoutput(1,:));
x1 = reshape(output_test(1,:),17,1);%x
y1 = reshape(BPoutput(1,:),17,1);%y
xmin = min([x1;y1]);
xmax = max([x1;y1]);
x0 = [2 1]; %初始系数
fun = @(x) -y1 + x(1)*x1+x(2) ;%函数形式
[x,resnorm1,residual1,exitflag1,output1] = lsqnonlin(fun,x0);%最小二乘拟合
x2 = [xmin xmax];
y2 = x2.^x(1)+x(2) ;%根据拟合的公式计算y
figure
plot(output_test(1,:),BPoutput(1,:),'bo','MarkerSize',m,'MarkerFaceColor','b')
hold on
plot(x2,y2,'b-','LineWidth',1.5)
hold on
axis([xmin xmax xmin xmax])
xlabel('D实际值')
ylabel('D预测值')
text(80,140,'y=0.9982x+0.1018')
text(80,150,['R^{2}=' num2str(R21)])
[R22, R02]= R_2(output_test(2,:),BPoutput(2,:));
x1 = reshape(output_test(2,:),17,1);%x
y1 = reshape(BPoutput(2,:),17,1);%y
xmin = min([x1;y1]);
xmax = max([x1;y1]);
x0 = [2 1]; %初始系数
fun = @(x) -y1 + x(1)*x1+x(2) ;%函数形式
[x,resnorm1,residual1,exitflag1,output1] = lsqnonlin(fun,x0);%最小二乘拟合
x2 = [xmin xmax];
y2 = x2.^x(1)+x(2) ;%根据拟合的公式计算y
figure
plot(output_test(2,:),BPoutput(2,:),'bo','MarkerSize',m,'MarkerFaceColor','b')
hold on
plot(x2,y2,'b-','LineWidth',1.5)
hold on
axis([xmin xmax xmin xmax])
xlabel('e实际值')
ylabel('e预测值')
text(80,140,'y=0.9949x+0.4742')
text(80,150,['R^{2}=' num2str(R22)])
[R23 ,R03]= R_2(output_test(3,:),BPoutput(3,:));
x1 = reshape(output_test(3,:),17,1);%x
y1 = reshape(BPoutput(3,:),17,1);%y
xmin = min([x1;y1]);
xmax = max([x1;y1]);
x0 = [1 1]; %初始系数
fun = @(x) -y1 + x(1)*x1+x(2) ;%函数形式
[x,resnorm1,residual1,exitflag1,output1] = lsqnonlin(fun,x0);%最小二乘拟合
x2 = [xmin xmax];
y2 = x2.^x(1)+x(2) ;%根据拟合的公式计算y
figure
plot(output_test(3,:),BPoutput(3,:),'bo','MarkerSize',m,'MarkerFaceColor','b')
hold on
plot(x2,y2,'b-','LineWidth',1.5)
hold on
axis([xmin xmax xmin xmax])
xlabel('F实际值')
ylabel('F预测值')
text(81,96,'y=0.987x+1.1764')
text(81,94,['R^{2}=' num2str(x(1)-0.01)])
me = max(output_test')-max(BPoutput')
%%
save maynet.mat output_test BPoutput net inputps outputps me


神经网络机器学习智能算法画图绘图
- 粉丝: 2875
- 资源: 661
最新资源
- comtrade录波文件格式详解-1999中文版
- inode for mac客户端,H3C
- Python 实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测的详细项目实例(含完整的程序,GUI设计和代码详解)
- PFC-FLAC耦合断层模型简化版:球体与有限元层间交互的干货指南,PFC-FLAC耦合模型简化版:带有断层特性的有限元分析与实践教程,该模型是“PFC- FLAC耦合带有断层的模型”的简化版: 即p
- 2000-2022年上市公司人工智能水平数据/上市公司人工智能词频统计数据(年报词频统计).xlsx
- 基于DSP TMS320F28335的Matlab Simulink嵌入式模型:自动生成CCS工程代码实现永磁同步电机双闭环控制,基于Matlab Simulink开发的TMS320F28335芯片嵌
- Python 基于扩散因子搜索的GRNN广义回归神经网络时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)
- Python 实现SA-ELM模拟退火算法优化极限学习机时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)
- COMSOL模拟中考虑浆液粘度时变性的随机裂隙注浆过程:多孔介质与优势裂隙通道内的流变行为研究,COMSOL模拟浆液在多孔介质与裂隙中复杂流动行为的时变粘度特性研究,COMSOL注浆( 1coms
- Python 实现ELM极限学习机时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)
- numpy-2.2.0-cp311-cp311-win32.whl
- VPet,虚拟宠物收集的资料
- 基于Comsol仿真模型的锂枝晶生长过程研究:多场耦合与C++程序模拟的元胞自动机法及LBM对流影响分析,基于Comsol仿真模型的锂枝晶生长过程研究:多场耦合与C++程序模拟的元胞自动机法及LBM对
- TMS320F28P550SJ9学习笔记5:结构体寄存器方式配置 LED
- MATLAB驱动直线电机创新应用:仿真示波器曲线与数据分析验证法效能,MATLAB直线电机仿真与数据验证:创新方法的有效证明及文档化展示,MATLAB直线电机创新点,通过仿真示波器的曲线或者数据能证
- linux与unix shell编程指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


