MATLAB中BP神经网络用于回归拟合算法实现(另附GRNN代码)

BP神经网络:是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。神经网络是把生活中的常见情节推广到计算仿真的范畴,这样的启发式算法还有许多,例如:遗传算法、烟花算法、蚁群算法、模拟退火算法等等。

一、神经网络算法步骤

1、导入需要处理的数据,随机获取实验数据和目标数据。

2、构建训练网络,函数:newwff。

3、对网络训练,函数:train。

4、仿真操作,函数:sin(net,x)。

5、评价。

6、模拟训练的效果可视化。

在神经网络训练中,我们构建神经网络的实验数据和目标收敛数据都是从原始数据中随机获取的。

二、神经网络学习主要函数说明

  1. newff:前馈网络创建函数
    函数结构:net = newff(A,B,{C},’trainFun’,’BLF’,’PF’)。
    参数:
    A:一个n*2的矩阵,第i行元素为输入信号Xi的最大最小值;
    B:一个K维行向量,其元素为网络中各个节点的数量;
    C:一个K维字符串行向量,每一个分量为对应层的神经元的激活函数,默认为“tansig”;
    trainFun:为学习规则的采用的训练算法。默认为:“trainlm”;
    BLF:BP权值/偏差学习函数。默认为:“learngdm”;
    PF:性能函数,默认为“mse”;

  2. train函数
    函数结构
    网络学习函数:[net,tr,YI,E] = train(net,X,Y) 。
    参数:
    X:网络实际输入;
    Y:网络应有输出;
    tr:网络跟踪信息;
    YI:网络实际输出;
    E:误差矩阵。

  3. sim函数
    函数结构:Y = sim(net,X) 。
    参数
    X:输入给网络的KN矩阵,K为网络输入个数,N为样本数据量;
    Y:输出矩阵Q
    N,其中Q为网络输出个数。

三、案例

1.案例1

利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。

clear; clc;X=-1:0.1:1;D=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609...0.1336 -0.2013 -0.4344
-0.5000 -0.3930 -0.1647 -.0988...0.3072 0.3960 0.3449
0.1816 -0.312 -0.2189 -0.3201];net=newff([-1,1],[5,1],{'tansig','tansig'});%初始网络net.trainParam.epochs=1000;%最大训练次数net.trainParam.goal=0.005;%训练要求精度net=train(net,X,D);%网络训练figureplot(X,D,'*',X,Y); %绘制实际曲线点和预测曲线% 利用得到的神经网络和数据仿真预测Y=sim(net,X)  %Y为预测结果

在这里插入图片描述

2.案例2

clear;clc;P=[-1 -1 2 2 4;0
5 0 5 7];T=[-1 -1 1 1
-1];% 样本数据归一化处理[input_n,input_ps]=mapminmax(P);[output_n,output_ps]=mapminmax(T);% 初始化网络结果(利用minmax函数求输入样本范围)net=newff(input_n,output_n,[5,1]);%三个数据为输入样本数据,输出样本数据和隐含层节点数%设置参数net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.epochs=300;net.trainParam.goal=0.005;%网络训练[net,tr]=train(net,P,T);%利用得到的神经网络和数据仿真预测Y=sim(net,P)%Y为预测结果

在这里插入图片描述
以上是BP神经网络的相关介绍,BP神经网络适用于大样本数据的预测,至于小样本还有灰色理论、最小二乘支持向量机、广义回归神经网络、灰色神经网络,不同的数据需要根据其自身特点选择不同的预测方法。在很多次实验之后,我比较钟情于BP神经网络和组合预测,组合预测是大趋势,客观上有道理,主观上有更大的操作可能性。
下面给出广义回归神经网络(包含交叉验证过程的GRNN)用于小样本量预测的代码,包括BP神经网络预测结果的对比。
GRNN预测,BP对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端性能优化知识,包括css和js

作者:野次链接:http://www.zhihu.com/question/33032042/answer/95948831来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. 减少HTTP请求次数 尽量合并图片、CSS、JS。比如加载一个页面&#xf…

快速理解编程结构_为什么系统编程全都用英文而不用中文?听完专家的解释恍然大悟!...

全球博弈(quanqiuboyi)——不一样的观点,不一样的解读,8000万人订阅的超级微信大号。不关注时事,你将会被这个世界抛弃,点击标题下蓝字“全球博弈”关注,我们将为您提供有价值、有意思的时事解读。人类走进科技发展的道…

用了十年的昵称badboy_怎样用5秒钟看清一对夫妻的真实感情状况?

“只要一分钟,我就能看清一对夫妻感情的状况。”从事情感咨询几十年的行业前辈告诉我,她的诀窍就是——听他们之间如何称呼对方。“大部分情侣在恋爱时都会给对方起一个专属的爱称,比如:小白猪、大宝宝之类的,总之很亲…

MATLAB—经纬度坐标转换为平面坐标

原理示意图: Mercator投影变换示意图 2. 公式: XY平面被当作Mercator投影平面,Y轴和X轴原点分别设为0纬度和0经度。通过如下公式将地理坐标变换到Mercator投影平面。由于标准电子海图/航道图使用WGS84坐标系,本文使用WGS84参数进行变换。投影…

java.util.TimeZone 新加方法 getTimeZone(ZoneId zoneId) 导致的问题

最近接受的项目中用spring配置了一个TimeZone对象&#xff1a; <bean id "timeZone4Job" class"java.util.TimeZone" factory-method"getTimeZone"><constructor-arg value"GMT8:00"/> </bean> 以前是运行在 1.7 中…

io密集型和cpu密集型_和小胖一起理解CPU负载和利用率

作者&#xff1a;小胖前言凌晨一点&#xff0c;正整着炸鸡的小胖&#xff0c;微信一呼“你的服务器CPU持续超载 … “麻溜的连上服务器&#xff0c;先把CPU负载摁下来。仔细一想&#xff0c;最近1分钟平均负载很大&#xff0c;但CPU利用率却≤30%&#xff0c;不经陷入了深思&am…

gui显示文本动态框

软件文本框&#xff0c;显示一些希望被阅读的文本&#xff1b; 包含main函数(kuang)&#xff0c;gui作为子函数&#xff0c;以及必要的txt文件。 直接运行kuang函数即可。时间0.5秒内。 可以顺序显示希望输入的内容&#xff0c;并保存记录&#xff0c;如下 也可以每次只显示新…

生成六位验证码python代码

生成六位验证码python代码 import randomdef Verifi_code():code []for i in range(6):if i random.randint(1,5):code.append(str(random.randint(1,5)))else:temp random.randint(65,90)code.append(chr(temp))a .join(code)return ab Verifi_code()print b转载于:https…

redis5 外部不能连接_【硬见小百科】PCB连接的方法

PCB是电子产品的基本元器件&#xff0c;任何电子产品都需要PCB才能制成。那么&#xff0c;PCB在电子产品之中&#xff0c;必须要与其他器件相互连接在一起&#xff0c;这就是PCB的互连。总的来说&#xff0c;PCB的连接有三个方面&#xff1a;芯片到PCB、PCB内部、PCB与外部器件…

最小费用最大流问题

最小费用最大流问题 解决如下最小费用最大流问题。 以前的资源由于matlab版本问题等已不适用。现在做出修改&#xff0c;适用于matlab2014a以后的版本。 注意&#xff0c;数据格式按代码中的例子的格式&#xff0c;否则需要修改代码。 查了很多资源发现用MATLAB操作的好用的不多…

Web应用中request获取各种获取path或URI,URL的方法

Web应用中有各种获取path或URI&#xff0c;URL的方法&#xff0c;假设网页访问地址: http://localhost:8080/tradeload/TestServlet Web应用context: /tradeload 各路径鉴定如下&#xff1a; request.getContextPath() /tradeload request.getScheme() "://" requ…

windows7无人值守应答文件.rar_数智化赋能人力共享运营,人力管理走向“无人值守”...

关键词&#xff1a;人力共享&#xff0c;HR&#xff0c;数智化&#xff0c;用友&#xff0c;NC Cloud&#xff0c;无人值守人力共享是近几年人力资源从业者持续关注的热点话题。无论是从效率提升、体验改进&#xff0c;还是助力人力资源角色转型&#xff0c;对人力共享能带来的…

android 多线程断点续传下载 三

android 多线程断点续传下载 三转载于:https://www.cnblogs.com/zhujiabin/p/5660093.html

Matlab基本初等函数大全

Matlab基本初等函数大全 方便查阅&#xff0c;适合基础学习者使用。 链接中是完整版 完整版初等函数大全 1、特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN 非数 nargin 输入参数个数 narg…

iphone彻底删除照片如何恢复_手机删除的照片如何恢复?OPPO最新照片恢复

手机删除的照片如何恢复&#xff1f;小编给大家带来了OPPO最新照片恢复方法&#xff0c;可谓是专属福利啊&#xff01;手机照片误删&#xff0c;焕发出来的照片很模糊&#xff1f;这有何难&#xff01;手机照片管家APP竟然可以恢复高清图片&#xff0c; 不过现在安卓机只有OPPO…

社区发现SLPA算法

社区&#xff08;community&#xff09;定义&#xff1a;同一社区内的节点与节点之间关系紧密&#xff0c;而社区与社区之间的关系稀疏。 设图GG(V,E),所谓社区发现是指在图G中确定nc(>1)个社区C{C1,C2,...,Cnv},使得各社区的顶点集合构成V的一个覆盖。 若任意两个社区的顶点…

Matlab绘图--包含各种标示符的输入方法

Matlab绘图–包含各种标示符的输入方法。 文档汇总利润Matlab绘图各种标示符的输入方法 适合MATLAB学习者查阅使用 文档包含了整理的所有内容 完整版 标记符号 实线 b蓝色 . 点 s 方块 : 虚线 g绿色 o 圆圈 d 菱形

bucket sort sample sort 并行_MOOSE: 实现大规模并行多物理场仿真(二)

转载自wx公众号&#xff1a;CS guy来源于文章 MOOSE: Enabling massively parallel multiphysics simulation网址&#xff1a;https://www.sciencedirect.com/science/article/pii/S2352711019302973?via%3Dihub2.软件说明2.1 软件架构MOOSE旨在促进创建FEM工具&#xff0c;以…

URLEncoder编码

客户端在进行网页请求的时候&#xff0c;网址中可能会包含非ASCII码形式的内容&#xff0c;比如中文。 而直接把中文放到网址中请求是不允许的&#xff0c;所以需要用URLEncoder编码地址&#xff0c; 将网址中的非ASCII码内容转换成可以传输的字符 不会被编码的内容 1.大写字母…

matlab生成exe独立运行文件已破解(好用)

相同位置&#xff0c;替换四个文件 2014a的解决办法&#xff1a; 适用于已安装compiler但破解不完全的&#xff0c; 将serial文件夹中的 serial\Matlab64\bin\win64&#xff08;安装matlab是64位的&#xff0c;选择win64,如果是32位请选择win32文件夹&#xff09;下的compiler…