数学建模神经网络预测模型及程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学建模神经网络预测模型及程序

年 份 年 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的数据) 从题目知道网络的输入-输出数据是这样产生的 输入P 对应输出T 1988-2002--- 2003 1989-2003--- 2004 1990-2004--- 2005 ………… 1994-2008--- 2009 以上构成了1994-1988+1=7组输入输出对。 利用P/T进行训练,训练成功(一般还要设一个确认集进行泛化能力的检测,光是训练误差小是不行的)后。sim net_1,x 这是对网络进行仿真。在这个仿真函数中,给一个输入,(类似训练时用的输入P,列数可以不同,但行数必须一样),网络就给出你想要的输出。 而这个x就是你最后要进行的预测的输入。由于你预测的是2010年的值,那么输入就是为1995-2009,这样“按道理”,网络就给出了2010年的值 明白没?P [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]; T [0.1093 0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175 0.1178 0.1179 0.1179 0.1179 0.1179 0.1180 0.1182 0.1185]; net_1 newff minmax P ,[10,1], tansig,purelin ,traingdm inputWeights net_

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档