BP神经网络预测的matlab代码.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
附录5: BP神经网络预测的matlab代码: P=[ 0 0.1386 0.2197 0.2773 0.3219 0.3584 0.3892 0.4159 0.4394 0.4605 0.4796 0.4970 0.5278 0.5545 0.5991 0.6089 0.6182 0.6271 0.6356 0.6438 0.6516 0.6592 0.6664 0.6735 0.7222 0.7275 0.7327 0.7378 0.7427 0.7475 0.7522 0.7568 0.7613 0.7657 0.7700] T=[0.4455 0.323 0.4116 0.3255 0.4486 0.2999 0.4926 0.2249 0.4893 0.2357 0.4866 0.2249 0.4819 0.2217 0.4997 0.2269 0.5027 0.217 0.5155 0.1918 0.5058 0.2395 0.4541 0.2408 0.4054 0.2701 0.3942 0.3316 0.2197 0.2963 0.5576 0.1061 0.4956 0.267 0.5126 0.2238 0.5314 0.2083 0.5191 0.208 0.5133 0.1848 0.5089 0.242 0.4812 0.2129 0.4927 0.287 0.4832 0.2742 0.5969 0.2403 0.5056 0.2173 0.5364 0.1994 0.5278 0.2015 0.5164 0.2239 0.4489 0.2404 0.4869 0.2963 0.4898 0.1987 0.5075 0.2917 0.4943 0.2902 ] threshold=[0 1] net=newff(threshold,[11,2],{tansig,logsig},trainlm); net.trainParam.epochs=6000 net.trainParam.goal=0.01 LP.lr=0.1; net=train(net,P,T) P_test=[ 0.7742 0.7784 0.7824 0.7864 0.7902 0.7941 ] out=sim(net,P_test) 友情提示:以上面0.7742为例0.7742=ln(47+1)/5 因为网络输入有一个元素,对应的是测试时间,所以P只有一列,Pi=log(t+1)/10,这样做的目的是使得这些数据的范围处在[0 1]区间之内,但是事实上对于logsin命令而言输入参数是正负区间的任意值,而将输出值限定于0到1之间。可能只有当输入值在0到1之间,输出的函数才可以通过返归依化得到正确的对应的答案,因此在后面有threshold来限制输入值的区间 n=-5:0.1:5; a=logsig(n); plot(n,logsig(n)) 图像如右图所示 T是指CD4Count*0.02,与HIV分别对应的值,是输出值,有两组数据, T的第一列数据= 表格当中(CD4Count*0.02)÷0.02,再取对数,再÷10 T的第一列数据= 表格当中(HIV)的对数,再÷5 这样就完成了最开始的数据导入工作,即为了训练神经而进行的输入与输出。 threshold=[0 1]--------- 变量threshold用于规定输入向量的最大值和最小值,最大值为1,最小值为0 net=newff(threshold,[11,2],{tansig,logsig},trainlm); 网络中间层神经元函数采用S型正切函数tansig,设定网络的训练函数为trainlm,它采用Levenberg-Marquardt算法进行网络学习。 输出层神经元函数采用S型对数函数logsig net.trainParam.epochs=6000 net.trainParam.goal=0.01 LP.lr=0.1; 经多次尝试,当模型的训练次数取6000,训练目标为0.01,学习速率为0.1,中间神经元个数取11时误差最小(下图为训练误差曲线) 怎样看数据的误差?难道只能通过看图像的方法?. 参考资料

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档