求高手用matlab神经网络预测的BP网络做预测

只需一步,快速开始
扫一扫,访问微社区
查看: 7835|回复: 26|关注: 0
求帮忙实现一个简单的Matlab BP神经网络预测程序
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
本帖最后由 kaikaisf 于
20:15 编辑
用MATLAB建立一个BP神经网络,对如下图所示的数据进行训练,能量和熵值作为输入,Ra为输出,最后可以通过输入能量和熵值预测出Ra的级别。初涉matlab BP神经网络,用比较简单的一个例子进行入门的学习,望论坛的朋友们不吝赐教!
<h1 style="color:# 麦片财富积分
你用matlab神经网络工具箱里面的nprtool工具箱,将能量和熵值作为输入,RA作为输出,进行训练,然后用sim函数就可以对其进行判别啦。
<h1 style="color:# 麦片财富积分
找不着北北 发表于
你用matlab神经网络工具箱里面的nprtool工具箱,将能量和熵值作为输入,RA作为输出,进行训练,然后用sim函 ...
2004版的matlab7 在命令窗口输入nprtool 没有反应
<h1 style="color:# 麦片财富积分
找不着北北 发表于
你用matlab神经网络工具箱里面的nprtool工具箱,将能量和熵值作为输入,RA作为输出,进行训练,然后用sim函 ...
nprtool工具箱中&&能量和熵作为输入, 放到Inputs中& &dat文件应该怎么写, 就是能量和熵值的2维的矩阵 不会写 求教!
<h1 style="color:# 麦片财富积分
直接把数据复制过去。
<h1 style="color:# 麦片财富积分
找不着北北 发表于
直接把数据复制过去。
复制过去不需要一定的格式?
<h1 style="color:# 麦片财富积分
Input输入需要一个文件
<h1 style="color:# 麦片财富积分
在你的workspace里面新建一个mat文件,然后将数据复制过去,有了数据input就可以识别导入数据了。
<h1 style="color:# 麦片财富积分
新建了Inputs和Target2个mat文件,在Inputs中第1行第1列输入能量值5.4458,第2行第1列输入熵值7.8367,然后在Target中第1行第一列输入0.8& &这样对应下去 就可以了吧?
<h1 style="color:# 麦片财富积分
找不着北北 发表于
你用matlab神经网络工具箱里面的nprtool工具箱,将能量和熵值作为输入,RA作为输出,进行训练,然后用sim函 ...
训练完后 保存为simplenet1的神经网络 如何用sim函数进行预测,比如我想输入[5.7] 应该要得到[0 0]([0 0]代表Ra为0.8)
站长推荐 /3
车辆动力学工具箱介绍:一款集成3D虚拟环境的汽车仿真产品
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区20被浏览2,286分享邀请回答0添加评论分享收藏感谢收起1.具体应用实例。根据表2,预测序号15的跳高成绩。
表2&国内男子跳高运动员各项素质指标
跳高成绩()
30行进跑(s)
立定三级跳远()
助跑摸高()
助跑4&6步跳高()
负重深蹲杠铃()
杠铃半蹲系数
4.4&(序号跳高成绩预测
4.4.1&数据整理
1)我们将前14组国内男子跳高运动员各项素质指标作为输入,即(30m行进跑,立定三级跳远,助跑摸高,助跑步跳高,负重深蹲杠铃,杠铃半蹲系数,,抓举),将对应的跳高成绩作为输出。并用matlab自带的函数将这些数据归一化处理。
数据集:(注意:每一列是一组输入训练集,行数代表输入层神经元个数,列数输入训练集组数)
P=[3.2&3.2&3&3.2&3.2&3.4&3.2&3&3.2&3.2&3.2&3.9&3.1&3.2;
9.6&10.3&9&10.3&10.1&10&9.6&9&9.6&9.2&9.5&9&9.5&9.7;
3.45&3.75&3.5&3.65&3.5&3.4&3.55&3.5&3.55&3.5&3.4&3.1&3.6&3.45;
2.15&2.2&2.2&2.2&2&2.15&2.14&2.1&2.1&2.1&2.15&2&2.1&2.15;
140&120&140&150&80&130&130&100&130&140&115&80&90&130;
2.8&3.4&3.5&2.8&1.5&3.2&3.5&1.8&3.5&2.5&2.8&2.2&2.7&4.6;
11&10.9&11.4&10.8&11.3&11.5&11.8&11.3&11.8&11&11.9&13&11.1&10.85;
50&70&50&80&50&60&65&40&65&50&50&50&70&70];
T=[2.24&2.33&2.24&2.32&2.2&2.27&2.2&2.26&2.2&2.24&2.24&2.2&2.2&2.35];
4.4.2&模型建立
4.4.2.1模型
&&&&BP网络(Back-ProPagation&Network)又称反向传播神经网络,&通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的神经网络模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。
BP网络由输入层、隐层和输出层组成,隐层可以有一层或多层,图2是m&k&n的三层BP网络模型,网络选用S型传递函数,&通过反传误差函数&(&(Ti为期望输出、Oi为网络的计算输出),不断调节网络权值和阈值使误差函数E达到极小。
BP网络具有高度非线性和较强的泛化能力,但也存在收敛速度慢、迭代步数多、易于陷入局部极小和全局搜索能力差等缺点。可以先用遗传算法对&BP网络&进行优化在解析空间找出较好的搜索空间,再用BP网络在较小的搜索空间内搜索最优解。
4.4.2.2&模型求解&
4.4.2.2.1&网络结构设计
1)&输入输出层的设计
该模型由每组数据的各项素质指标作为输入,以跳高成绩作为输出,所以输入层的节点数为8,输出层的节点数为。
2)&隐层设计
有关研究表明有一个隐层的神经网络只要隐节点足够多就可以以任意精度逼近一个非线性函数。因此本文采用含有一个隐层的三层多输入单输出的网络建立预测模型。在网络设计过程中隐层神经元数的确定十分重要。隐层神经元个数过多会加大网络计算量并容易产生过度拟合问题神经元个数过少则会影响网络性能达不到预期效果。网络中隐层神经元的数目与实际问题的复杂程度、输入和输出层的神经元数以及对期望误差的设定有着直接的联系。目前对于隐层中神经元数目的确定并没有明确的公式只有一些经验公式神经元个数的最终确定还是需要根据经验和多次实验来确定。本文在选取隐层神经元个数的问题上参照了以下的经验公式
其中为输入层神经元个数为输出层神经元个数为之间的常数。&
根据上式可以计算出神经元个数为4-13个之间,在本次实验中选择隐层神经元个数为6.
网络结构示意图如下:
4.4.2.2.2&激励函数的选取
BP神经网络通常采用可微函数和线性函数作为网络的激励函数。本文选择型正切函数作为隐层神经元的激励函数。而由于网络的输出归一到范围内因此预测模型选取型对数函数作为输出层神经元的激励函数。
4.4.2.2.3&模型的实现
此次预测选用中的神经网络工具箱进行网络的训练预测模型的具体实现步骤如下
将训练样本数据归一化后输入网络设定网络隐层和输出层激励函数分别为和函数网络训练函数为网络性能函数为mse,隐层神经元数初设为6。设定网络参数。网络迭代次数为次期望误差为,&学习速率为。设定完参数后开始训练网络。
该网络通过次重复学习达到期望误差后则完成学习。详细代码见附录。
网络训练完成后,只需要将各项素质指标输入网络即可得到预测数据。
预测结果为:
?P=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1 3.2;
9.6 10.3 9 10.3 10.1 10 9.6 9 9.6 9.2 9.5 9 9.5 9.7;
3.45 3.75 3.5 3.65 3.5 3.4 3.55 3.5 3.55 3.5 3.4 3.1 3.6 3.45;
2.15 2.2 2.2 2.2 2 2.15 2.14 2.1 2.1 2.1 2.15 2 2.1 2.15;
140 120 140 150 80 130 130 100 130 140 115 80 90 130;
2.8 3.4 3.5 2.8 1.5 3.2 3.5 1.8 3.5 2.5 2.8 2.2 2.7 4.6;
11 10.9 11.4 10.8 11.3 11.5 11.8 11.3 11.8 11 11.9 13 11.1 10.85;
50 70 50 80 50 60 65 40 65 50 50 50 70 70];
?T=[2.24 2.33 2.24 2.32 2.2 2.27 2.2 2.26 2.2 2.24 2.24 2.2 2.2 2.35];
?[p1,minp,maxp,t1,mint,maxt]=premnmx(P,T);
?%创建网络
?net=newff(minmax(P),[8,6,1],{'tansig','tansig','purelin'},'trainlm');
?%设置训练次数
?net.trainParam.epochs = 5000;
?%设置收敛误差
?net.trainParam.goal=0.0000001;
?%训练网络
?[net,tr]=train(net,p1,t1);
TRAINLM, Epoch 0/5000, MSE 0.e-007, Gradient 18.0
TRAINLM, Epoch 24/5000, MSE 8.8e-007, Gradient 0.e-010
TRAINLM, Performance goal met.
?%输入数据
?a=[3.0;9.3;3.3;2.05;100;2.8;11.2;50];
?%将输入数据归一化
?a=premnmx(a);
?%放入到网络输出数据
?b=sim(net,a);
?%将得到的数据反归一化得到预测数据
?c=postmnmx(b,mint,maxt);
阅读(...) 评论()拒绝访问 | www.ggdoc.com | 百度云加速
请打开cookies.
此网站 (www.ggdoc.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(40c6b8ed3c2a43a7-ua98).
重新安装浏览器,或使用别的浏览器Sorry, Page Not Found}

我要回帖

更多关于 灰色预测模型matlab 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信