BP神经网络代码超通俗解释(MATLAB)
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)相关推荐
- LSTM时间序列预测代码超通俗解释(MATLAB)
数据在评论区 可以查看这一篇博客有更好的代码和可视化: 多序列:http://t.csdn.cn/a4pM0 单序列:https://blog.csdn.net/m0_62526778/article ...
- ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比)
ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...
- PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码
PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据,也可以加载本地数据.mat,使用换自 ...
- 【回归预测-BP预测】基于灰狼算法优化BP神经网络实现数据回归预测附matlab代码
1 内容介绍 Mirjalili 等在 2014 年 提 出 了 灰 狼 优 化 ( Grey Wolf Optimizer,GWO) 算法,是一种新型群智能优化算法,通过模拟自然界中灰狼寻找.包围和 ...
- 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码
基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...
- SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比
SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...
- bp 预测 matlab代码,bp神经网络进行交通预测的Matlab源代码.docx
%bp神经网络进行交通预测的Matlab源代码% BP 神经网络用于预测% 使用平台 - Matlab7.0% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% 15组数据,其中9组为正 ...
- bp神经网络代码_机器学习(周志华)课后习题——第五章——神经网络
5.1 试述将线性函数 用作神经元激活函数的缺陷. 答: 使用线性函数作为激活函数时,无论是在隐藏层还是在输出层(无论传递几层),其单元值(在使用激活函数之前)都还是输入 的线性组合,这个时候的神经网 ...
- 【停车位预测】基于matlab BP神经网络停车位预测【含Matlab源码 765期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[停车位预测]基于matlab BP神经网络停车位预测[含Matlab源码 765期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...
最新文章
- C++设置每屏显示的行数简易办法
- 北京清华长庚医院与数据院签约,医工结合促医疗大健康发展
- react native 的TextInput组件问题
- [Oracle] oracle统计信息
- sentinel 限流熔断神器详细介绍
- springboot 1.5.x 升级 spring-kafka 2.x NoSuchMethodError
- 用 CSS 实现元素垂直居中,有哪些好的方案?
- 调试器工作原理--CPU软件断点/硬件断点/单步执行标识
- [Ubuntu Error]无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
- spring5.0学习笔记10
- 【Linux应用】SAN(存储区域网络)技术
- 怎么用计算机算lnx,lnx等于多少怎么算
- CentOS 搭建NFS
- 群体智能的发展现状:AI网络安全现状、新一代AI发展现状
- 微信小程序-百度AI语音识别——(一)
- 2018上海市六一计算机创新活动,《梦幻西游》电脑版2018六一儿童节活动
- JS 面向对象
- ORACLE审计管理
- C语言--经典100题
- 稳定wow60级服务器,魔兽世界:永久60级与TBC该怎么选,60级服务器真的会有玩家么?...