
建立BP神经网络预测 模型,可按下列步骤进行:
1、提供原始数据
2、训练数据预测数据提取及归一化
3、BP网络训练
4、BP网络预测
5、结果分析
现用一个实际的例子,来预测2015年和2016年某地区的人口数。
已知2009年——2014年某地区人口数分别为3583、4150、5062、4628、5270、5340万人
执行BP_main程序,得到
[ 2015, 5128631704710423946380615234375]
[ 2016, 51005797325642779469490051269531]
代码及图形如下。
BP网络训练图:
P = [1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009];%输入向量
T = [1154 2121 2597 2518 352 4634 509 558 614 700 696 712];%期望输出
Z=[2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020]
%创建两层的BP网络:
net = newff([1998 2009],[100 1],{'tansig' 'purelin'});
nettrainparamshow=50;
%每次循环50次
nettrainParamepochs = 500;
%最大循环500次
net = train(net,P,T);
%对网络进行反复训练
只给出了一部分程序,其余的QQ传给你,留你的QQ。
结果:
Y =
Columns 1 through 7
1154067 2120911 2597029 2517979 3520027 4634023 5089910
Columns 8 through 12
5580155 6139892 6999980 6960063 7119970
预测值a =
Columns 1 through 7
7119970 7117126 7494216 7492672 7467096 7467096 7510786
Columns 8 through 11
7602729 7573316 6965151 6965151
分别是2010-2020年的预测数据。
问题:
1:隐含层的节点数应该小于训练样本数(你这里et_1=newff(minmax(P),[150,1],{'tansig','purelin'},'traingdm')中的150远远大于训练样本数10个(1989:2003))
2:如果把时间当做样本输入的话,这是不太合适的。如果那样还不如用时间序列求解。而且在现在的这个程序中还会会出现ynhj88311说的那种情况。(这里还应该做归一化处理更好)
clc
clear
date=1988:2003;
P0=[ 01093 01110 01127 01141 01154 01164 01171 01175 01178 01179 01179 01178 01179 01180 01182 01186];% 样本数据这里数据在0~1之间就不用归一化处理了
plot(date,P0,'b+'); %原数据随时间变化的曲线
hold on
title('原数据曲线图')
for i=1:13
P(:,i)=P0(i:i+2);
T(:,i)=P0(i+3);
end
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')
% 设置训练参数
net_1trainParamshow = 1;
net_1trainParamlr = 02;
net_1trainParammc = 09;
net_1trainParamepochs=10000000;
net_1trainParamgoal = 1e-10;
% 调用 TRAINGDM算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P)
E = T - A;
MSE=mse(E)
P2001=sim(net_1,[01179 01178 01179 ]');
P2002=sim(net_1,[01178 01179 01180 ]');
P2003=sim(net_1,[01179 01180 01182 ]');
p2=P0(14:16)';
yuce2004=sim(net_1,p2)
figure
Y=[A(1,:),P2001,P2002,P2003,yuce2004];
Date=[date,2004];
plot(Date,Y,'r+')
以上就是关于如何建立bp神经网络预测 模型全部的内容,包括:如何建立bp神经网络预测 模型、对于一个时间序列怎么编写bp神经网络matlab程序实现预测、求助检查BP神经网络预测程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)