ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BP神经网络matlab代码

2021-12-07 13:00:44  阅读:165  来源: 互联网

标签:%% 神经网络 BP matlab input test output net


文章目录

1. BP神经网络matlab代码实现

%%随机权重→前向计算→误差→权重更新,再来一遍→达到误差限,停止

%% 初始化
clear
close all
clc

%% 读取数据
input=rand(2,200);
output=input(1,:).*input(2,:);

%% 训练集、测试集
input_train = input(:,1:150);
output_train =output(1:150);
input_test =input(:,151:end);
output_test =output(151: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,8);

% 网络参数
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;                   % 学习速率
net.trainParam.goal=0.000001;        % 训练目标最小误差
% net.dividefcn='';
%% 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',12)
%计算误差
[~,len]=size(output_test);
MAE1=sum(abs(error./output_test))/len;
MSE1=error*error'/len;
RMSE1=MSE1^(1/2);
disp(['-----------------------误差计算--------------------------'])
disp(['平均绝对误差MAE为:',num2str(MAE1)])
disp(['均方误差MSE为:       ',num2str(MSE1)])
disp(['均方根误差RMSE为:  ',num2str(RMSE1)])

web https://blog.csdn.net/qq_57971471/article/details/121766454 %CSDN

2. BP神经网络预测的讲解视频

1. BP神经网络MATLAB代码实现步骤附件地址

请参考早期的博文进行学习。

2. 代码与视频附件下载地址

视频主要内容:BP原理概括与代码编写过程的讲解。附件代码可直接在外部EXCEL中更换自己的数据集运行。

标签:%%,神经网络,BP,matlab,input,test,output,net
来源: https://blog.csdn.net/qq_57971471/article/details/121766404

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有