- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
年 份
(年 ) 1(1988) 2(1989) 3(1990) 4(1991) 5(1992) 6(1993)
7(1994) 8(1995)
实际值
(ERI) 0.1093 0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175
年 份
(年 ) 9(1996) 10(1997) 11(1998) 12(1999) 13(2000) 14(2001)
15(2002) 16(2003)
实际值
(ERI) 0.1178 0.1179 0.1179 0.1179 0.1179 0.1180 0.1182 0.1185
BP 神经网络的训练过程为 : 先用 1988 年到 2002 年的指标历史数据作为网络的输入 ,用
1989 年到 2003 年的指标历史数据作为网络的输出 ,组成训练集对网络进行训练 ,使之误差
达到满意的程度 ,用这样训练好的网络进行预测 .
采用滚动预测方法进行预测 :滚动预测方法是通过一组历史数据预测未来某一时刻的值 ,然
后把这一预测数据再视为历史数据继续预测下去 ,依次循环进行 ,逐步预测未来一段时期的
值 . 用 1989 年到 2003 年数据作为网络的输入 ,2004 年的预测值作为网络的输出 . 接着用
1990 年到 2004 年的数据作为网络的输入 ,2005 年的预测值作为网络的输出 .依次类推 ,这
样就得到 2010 年的预测值。
目前在 BP 网络的应用中 ,多采用三层结构 . 根据人工神经网络定理可知 ,只要用三层的 BP
网络就可实现任意函数的逼近 . 所以训练结果采用三层 BP 模型进行模拟预测 . 模型训练误
差为 0.00001, 隐层单元数选取 8 个 ,学习速率为 0.05, 动态参数 0.6,Sigmoid 参数 0.9, 最大迭
代次数 3000. 运行 3000 次后 ,样本拟合误差等于 0.00021 。
P=[ 。。。 ]; 输入 T=[ 。。。 ];输出
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{tansig,purelin},traingdm)
% 当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}
% 设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;
% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P);
% 计算仿真误差
E = T - A;
MSE=mse(E)
x=[ 。。。 ];% 测试
sim(net_1,x)
既然题目说的是预测,那么倒数第二行的代码 x=[ 。。。];% 测试, x 的值怎么确定呢,是不
是题目从所给的数据中随便选一组作为测试啊?顺便问一下, 为什么要有这个 x 呢?对未来
的预测和这个 x 有什么关系啊
sim(net_1,x)
net_1 是已经训练好的网络(用的是 1988-2003 的数据)
从题目知道网
文档评论(0)