您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > BP神经网络预测代码
x=[5416755196563005748258796602666146562828646536599467207662076585967295691727049972538745427636878534806718299285229871778921190859924209371794974962599754298705100072101654103008104357105851107507109300111026112704114333115823117171118517119850121121122389123626124761125786126743127627128453129227129988130756131448132129132802134480135030135770136460137510]';%该脚本用来做NAR神经网络预测%作者:Macer程lag=3;%自回归阶数iinput=x;%x为原始序列(行向量)n=length(iinput);%准备输入和输出数据inputs=zeros(lag,n-lag);fori=1:n-laginputs(:,i)=iinput(i:i+lag-1)';endtargets=x(lag+1:end);%创建网络hiddenLayerSize=10;%隐藏层神经元个数net=fitnet(hiddenLayerSize);%避免过拟合,划分训练,测试和验证数据的比例net.divideParam.trainRatio=70/100;net.divideParam.valRatio=15/100;net.divideParam.testRatio=15/100;%训练网络[net,tr]=train(net,inputs,targets);%%根据图表判断拟合好坏yn=net(inputs);errors=targets-yn;figure,ploterrcorr(errors)%绘制误差的自相关情况(20lags)figure,parcorr(errors)%绘制偏相关情况%[h,pValue,stat,cValue]=lbqtest(errors)%Ljung-BoxQ检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn))%看预测的趋势与原趋势%figure,ploterrhist(errors)%误差直方图%figure,plotperform(tr)%误差下降线%%下面预测往后预测几个时间段fn=7;%预测步数为fn。f_in=iinput(n-lag+1:end)';f_out=zeros(1,fn);%预测输出%多步预测时,用下面的循环将网络输出重新输入fori=1:fnf_out(i)=net(f_in);f_in=[f_in(2:end);f_out(i)];end%画出预测图figure,plot(1949:2013,iinput,'b',2013:2020,[iinput(end),f_out],'r')
本文标题:BP神经网络预测代码
链接地址:https://www.777doc.com/doc-2901001 .html