欢迎来到天天文库
浏览记录
ID:13051263
大小:51.50 KB
页数:4页
时间:2018-07-20
《bp神经网络预测的matlab代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、附录5:BP神经网络预测的matlab代码:P=[00.13860.21970.27730.32190.35840.38920.41590.43940.46050.47960.49700.52780.55450.59910.60890.61820.62710.63560.64380.65160.65920.66640.67350.72220.72750.73270.73780.74270.74750.75220.75680.76130.76570.7700]T=[0.44550.3230.41160.32550.44860.29990.49260.22490.48930.23570.4
2、8660.22490.48190.22170.49970.22690.50270.2170.51550.19180.50580.23950.45410.24080.40540.27010.39420.33160.21970.29630.55760.10610.49560.2670.51260.22380.53140.20830.51910.2080.51330.18480.50890.2420.48120.21290.49270.2870.48320.27420.59690.24030.50560.21730.53640.19940.52780.20150.51640.22390.44
3、890.24040.48690.29630.48980.19870.50750.29170.49430.2902]threshold=[01]net=newff(threshold,[11,2],{'tansig','logsig'},'trainlm');net.trainParam.epochs=6000net.trainParam.goal=0.01LP.lr=0.1;net=train(net,P',T')P_test=[0.77420.77840.78240.78640.79020.7941]out=sim(net,P_test')友情提示:以上面0.7742为例0.7742
4、=ln(47+1)/5因为网络输入有一个元素,对应的是测试时间,所以P只有一列,Pi=log(t+1)/10,这样做的目的是使得这些数据的范围处在[01]区间之内,但是事实上对于logsin命令而言输入参数是正负区间的任意值,而将输出值限定于0到1之间。可能只有当输入值在0到1之间,输出的函数才可以通过返归依化得到正确的对应的答案,因此在后面有threshold来限制输入值的区间n=-5:0.1:5;a=logsig(n);plot(n,logsig(n))图像如右图所示T是指CD4Count*0.02,与HIV分别对应的值,是输出值,有两组数据,T的第一列数据=表格当中(CD4Cou
5、nt*0.02)÷0.02,再取对数,再÷10T的第一列数据=表格当中(HIV)的对数,再÷5这样就完成了最开始的数据导入工作,即为了训练神经而进行的输入与输出。threshold=[01]---------变量threshold用于规定输入向量的最大值和最小值,最大值为1,最小值为0net=newff(threshold,[11,2],{'tansig','logsig'},'trainlm');网络中间层神经元函数采用S型正切函数tansig,设定网络的训练函数为trainlm,它采用Levenberg-Marquardt算法进行网络学习。输出层神经元函数采用S型对数函数logsi
6、gnet.trainParam.epochs=6000net.trainParam.goal=0.01LP.lr=0.1;经多次尝试,当模型的训练次数取6000,训练目标为0.01,学习速率为0.1,中间神经元个数取11时误差最小(下图为训练误差曲线)怎样看数据的误差?难道只能通过看图像的方法?.参考资料
此文档下载收益归作者所有