clc;clear;
%BP神经网络
xy=rand(2,200);
%随机生成200组自变量,一组变量包含x,y,可以看成第一行为x1,x2,...x200,第二行为y1,y2,...y200;
z=xy(1,:).*xy(2,:);
%这个相当于为z=xy,实际情况一般无函数关系表达式,仅为1*200数组(对于这里)
input_train=xy(:,1:150);%神经网络输入层,训练数据
output_train=z(1:150);%神经网络输出层,训练数据
input_test=xy(:,151:end);%测试数据
output_test=z(151:end);%测试数据
%将前150组数据xyz作为训练数据,训练出最佳的权重,找到xy与z的关系
%为了验证我们训练效果,将后50组作为测试数据,查看与实际z值的误差
%实际问题中,一般将已知数据全做为训练数据
[input,ip]=mapminmax(input_train,0,1);
[output,op]=mapminmax(output_train,0,1);
%对于机器学习这些原始数据,都要进行归一化
%input和output为归一化的数据,ip和op为它们归一化处理规则
inputn_test=mapminmax('apply',input_test,ip);
%将训练数据相同的归一化处理规则给测试数据,即用到"apply"
net=newff(input,output,8);
%构建BP神经网络,8为隐藏层神经元个数,本神经网络隐藏层1层(一个隐藏层,8个神经元)
net.trainParam.epochs=1000;
%训练次数,即总迭代次数,为了防止一直达不到预期(目标)误差程序不停止
% 过小导致未找到最佳权重,输出值与实际值误差过大,过大导致训练时间过长
net.trainParam.lr=0.01;
%学习速率,即控制误差的步长,影响误差收敛速度
net.trainParam.goal=0.000001;
%训练的目标误差,即误差小于此值时退出
net=train(net,input,output);
%训练浅层神经网络,可命令行输入"doc train"查看使用规则
an=sim(net,input_test);
%对训练好的模型net 进行仿真;sim(model,vaule),class(net)为model
test_simu=mapminmax("reverse",an,op);
%对测试数据输出值反归一化,映射成原始值,op为之前的归一化处理规则
error=test_simu-output_test;
%查看测试数据输出值与对应真实值的误差
figure(1),plot(output_test,"*");hold on
plot(test_simu,"+");hold on
plot(error);legend
%生成一个图窗,hold on反正前面的曲线被覆盖,
% 将测试数据在神经网络的输出值与实际值放到同一图中,可视化比较误差
plot(error);legend("期望值","神经网络输出值","误差");
%legend给3条曲线加图例,注释
len=length(output_test);
MAE=sum(abs(error./output_test))/len%计算平均绝对误差MAE,公式网上可查
MSE=error*error'/len%计算均方误差MSE
RMSE=MSE^(1/2)%计算均方跟误差RMSE

运行结果:

BP神经网络代码超通俗解释(MATLAB)相关推荐

  1. LSTM时间序列预测代码超通俗解释(MATLAB)

    数据在评论区 可以查看这一篇博客有更好的代码和可视化: 多序列:http://t.csdn.cn/a4pM0 单序列:https://blog.csdn.net/m0_62526778/article ...

  2. ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比)

    ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...

  3. PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码

    PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据,也可以加载本地数据.mat,使用换自 ...

  4. 【回归预测-BP预测】基于灰狼算法优化BP神经网络实现数据回归预测附matlab代码

    1 内容介绍 Mirjalili 等在 2014 年 提 出 了 灰 狼 优 化 ( Grey Wolf Optimizer,GWO) 算法,是一种新型群智能优化算法,通过模拟自然界中灰狼寻找.包围和 ...

  5. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  6. SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比

    SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...

  7. bp 预测 matlab代码,bp神经网络进行交通预测的Matlab源代码.docx

    %bp神经网络进行交通预测的Matlab源代码% BP 神经网络用于预测% 使用平台 - Matlab7.0% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% 15组数据,其中9组为正 ...

  8. bp神经网络代码_机器学习(周志华)课后习题——第五章——神经网络

    5.1 试述将线性函数 用作神经元激活函数的缺陷. 答: 使用线性函数作为激活函数时,无论是在隐藏层还是在输出层(无论传递几层),其单元值(在使用激活函数之前)都还是输入 的线性组合,这个时候的神经网 ...

  9. 【停车位预测】基于matlab BP神经网络停车位预测【含Matlab源码 765期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[停车位预测]基于matlab BP神经网络停车位预测[含Matlab源码 765期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

最新文章

  1. C++设置每屏显示的行数简易办法
  2. 北京清华长庚医院与数据院签约,医工结合促医疗大健康发展
  3. react native 的TextInput组件问题
  4. [Oracle] oracle统计信息
  5. sentinel 限流熔断神器详细介绍
  6. springboot 1.5.x 升级 spring-kafka 2.x NoSuchMethodError
  7. 用 CSS 实现元素垂直居中,有哪些好的方案?
  8. 调试器工作原理--CPU软件断点/硬件断点/单步执行标识
  9. [Ubuntu Error]无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
  10. spring5.0学习笔记10
  11. 【Linux应用】SAN(存储区域网络)技术
  12. 怎么用计算机算lnx,lnx等于多少怎么算
  13. CentOS 搭建NFS
  14. 群体智能的发展现状:AI网络安全现状、新一代AI发展现状
  15. 微信小程序-百度AI语音识别——(一)
  16. 2018上海市六一计算机创新活动,《梦幻西游》电脑版2018六一儿童节活动
  17. JS 面向对象
  18. ORACLE审计管理
  19. C语言--经典100题
  20. 稳定wow60级服务器,魔兽世界:永久60级与TBC该怎么选,60级服务器真的会有玩家么?...

热门文章

  1. 电影职员表中英文正确翻译及介绍
  2. 学习一项技能要花多少时间?
  3. Pyplot中Scatter三维散点图制作方法记录
  4. 《python 黑帽子》 示例 :UDP客户端
  5. java 中符号_java中的符号
  6. 国际制造执行系统(MES)应用与发展(转)
  7. javaweb-idea调节代码字体大小
  8. DP65HVD23X替代SN65HVD233/234/235 3.3V CAN 总线收发器芯片
  9. html+css+php+mysql实现注册+登录+修改密码(附完整代码)
  10. java学习心得---方法