(三)【数学建模】Matlab BP神经网络
【数学建模】
文章目录
- Matlab BP神经网络
Matlab BP神经网络
归一化算法:
(0,1):
y=(x−min)/(max−min)y=(x-min)/(max-min)y=(x−min)/(max−min)
(-1,1):
y=2∗(x−min)/(max−min)−1y=2*(x-min)/(max-min)-1y=2∗(x−min)/(max−min)−1
重点函数:
% mapminmax:归一化
[Y, PS]=mapminmax(X,YMIN,YMAX) % 把X归一化到(YMIN.YMAX)
% Y:归一化得到的数据;
% PS:结构体,里面是归一化的信息(最小值,最大值,范围等)
Z=mapminmax('apply',X,PS) % 利用PS信息对X进行归一化输出Z
X=mapminmax('reverse',Y,PS) % 反归一化
S可以是数组[n1,n2,n3,…]设置多个隐藏层,每个神经元数目为n1,n2,n3.
https://www.cnblogs.com/long5683/p/10508012.html
https://blog.csdn.net/ckzhb/article/details/60879570
例子:
NIR(输入数据)是一个60X401矩阵;
octane(目标数据)是一个60X1矩阵;
%% I. 清空环境变量
clear;clc
%% II. 训练集/测试集产生
%%
% 1. 导入数据
load spectra_data.mat
%%
% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1)); % 随机索引
% 训练集——50个样本
P_train = NIR(temp(1:50),:)'; % 输入数据
T_train = octane(temp(1:50),:)'; % 输入数据的目标值
% 测试集——10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);
%% III. 数据归一化
% 输入数据归一化
[p_train, ps_input] = mapminmax(P_train,0,1);
p_test = mapminmax('apply',P_test,ps_input);
% 目标值归一化
[t_train, ps_output] = mapminmax(T_train,0,1);
%% IV. BP神经网络创建、训练及仿真测试
%%
% 1. 创建网络
net = newff(p_train,t_train,9);
%%
% 2. 设置训练参数
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;
%%
% 3. 训练网络
net = train(net,p_train,t_train);
%net = newff(p_train,t_train,[9,4]); %设置两个隐藏层,神经元个数分别为9,4
%%
% 4. 仿真测试
t_sim = sim(net,p_test); % Y=sim()
%%
% 5. 数据反归一化
T_sim = mapminmax('reverse',t_sim,ps_output);
%% V. 性能评价
%%
% 1. 相对误差error
error = abs(T_sim - T_test)./T_test;
%%
% 2. 决定系数R^2
R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));
%%
% 3. 结果对比
result = [T_test' T_sim' error']
%% VI. 绘图
figure
plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
legend('真实值','预测值')
xlabel('预测样本')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};
title(string)
结果:
(三)【数学建模】Matlab BP神经网络相关推荐
- 视频教程-MATLAB数学建模-Matlab
MATLAB数学建模 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+ ...
- 【电力负荷预测】基于matlab BP神经网络电力负荷预测【含Matlab源码 278期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [电力负荷预测]基于matlab BP神经网络电力负荷预测[含Matlab源码 278期] 获取代码方式2: 付费专栏Matlab智能算 ...
- 【故障诊断分析】基于matlab BP神经网络三相逆变器故障诊断研究【含Matlab源码 1736期】
一.BP神经网络三相逆变器故障诊断简介 针对三相桥式逆变电路为研究对象,建立了仿真模型,并对逆变器主电路开关器件的开路故障进行仿 真,提出了基于BP神经网络的故障诊断方法,确定了网络的结构和参数,并以 ...
- 【停车位预测】基于matlab BP神经网络停车位预测【含Matlab源码 765期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[停车位预测]基于matlab BP神经网络停车位预测[含Matlab源码 765期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...
- matlab已知飞机下轮廓线,数学建模matlab插值及拟合.ppt
数学建模matlab插值及拟合 2013数学建模培训 插值与拟合 插值与拟合属数值分析中函数逼近内容.在数学建模竞赛中,插值与拟合是一种常用的数据分析手段,被公认为建模中的十大算法之一. 本节首先通过 ...
- 数学建模之减肥计划 matlab编程,数学建模matlab算法大全第02章整数规划.pdf
数学建模matlab算法大全第02章整数规划 第二章 整数规划 §1 概论 1.1 定义 规划中的变量(部分或全部)限制为整数时,称为整数规划.若在线性规划模型中, 变量限制为整数,则称为整数线性规划 ...
- Matlab BP神经网络拟合四足机器人足端轨迹线积分方程反函数用于足端轨迹规划
Matlab BP神经网络拟合四足机器人足端轨迹线积分方程用于足端轨迹规划 问题描述 一般情况下,在对四足机器人足端轨迹进行规划时分别对足端路径和轨迹加速度进行规划,然后将规划好的加速度进行两次积分得 ...
- 数学建模matlab 优化模型,数学建模实验中三种优化模型的分析
1. 引言 在20世纪中期,数学建模 [1] 就在欧美国度首次被发现,而在中国的呈现稍晚些,但是大约在80年代初始咱们国家也就有了.它的核心即是创立数学模型 [2] ,使得问题获得最优化的解决.而数学 ...
- 数学建模matlab imread,《matlab数学建模方法与实践》第三章 数据的处理
3.1数据的获取 3.1.1从Excel中读取数据 a= xlsread('路径',n(sheetn),'A(n-1):Bn(读入的数据范围)') 3.1.2从TXT中读取数据 3.1.2.1.1 同 ...
最新文章
- windows xp远程桌面没有反应
- kirin710f是什么处理器_如何看待麒麟710F处理器?
- c语言递归函数检测回文,在C中使用递归函数的回文测试
- java x.length_Java中的length和length()
- 昨晚第一次使用了 NUnit,方才发现它是个好东西,似乎好多好东西其实一直在身边,只是没有勇气去尝试而一直无法体会。...
- Git学习系列(三)版本回退和管理文件的修改及删除操作
- 知识图谱特征学习算法
- 指数函数在c语言中怎么输入,指数函数如果想得到整型的值怎样做?
- 三星s8android8.0,三星S8国行升级安卓8.0 系统流畅度提升
- 1.单例(Singleton)模式
- 全新英特尔vPro平台,为数智时代保驾护航
- 力扣772 基本计算器 III
- java中mapper层作用_Java的MyBatis框架中Mapper映射配置的使用及原理解析
- C语言成绩统计源代码,C语言课程设计学生成绩管理系统+源码
- 写一副对子_续《一副对子的传奇故事》
- Altium Designer 21导出ANF到SIwave
- mysql忘记服务器上密码怎么修改密码,MySQL忘记密码怎么办-MySQL修改密码(亲测可用)...
- 使用Python究竟可以做什么?下面是Python的3个主要应用
- IEC 61970 标准系列简介
- 用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器