如何建立bp神经网络预测 模型

如何建立bp神经网络预测 模型,第1张

建立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神经网络预测程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9570854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存