您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > bp神经网络预测销售额
一,说明对销售额进行bp神经网络预测,销售额如表1其中前17月数据用作训练样本,来预测第18个月的数据,然后利用前18个月的数据来预测第19个月的数据,以此来预测全部月份的数据,并最终给出真实值与预测值之间的误差二,程序程序包括两部分,main.m为主程序,NNetwork.m为训练及预测程序,NNetwork输入为真实数据,输出为预测数据。程序如下main程序clearall%清除变量空间clc%清除命令窗口所有数据closeall%关闭所有figure窗口%数据,前17组为训练数据t=[124.2117.1108.4102.899.298.6100.4100.99.4101.2103.9101.8101.5104.8105.999.3103.3113.2116.5117.1116.9115.8];%%原始数据(数据的观测值)n=1;%每次预测个数fori=17:21s=t(1:i);[a,anew]=NNetwork(s,n);%调用神经网络预测程序disp(['预测的第',num2str(i+1),'个值为']);anew%预测值pred=a(1,:);pred(end+1)=anew;%加上预测值新数据end%画图部分figurexx=1:i+1;plot(xx,pred,'r-*',xx,t,'k--+');legend('预测值','实际值');xlabel('点数');ylabel('数据');figures=abs(pred-t)./t*100;plot(xx,s,'b-*');xlabel('点数');ylabel('误差比例(%)');disp('实际值的标准差为')std(t)%求标准差disp('预测值的标准差为')std(pred)NNetwork程序如下function[a,anew]=NNetwork(x,n)%x为神经网络训练数组%n为预测数据的个数p=1:length(x);%%数据的个数warningoff%数据归一化[pn,minp,maxp,tn,mint,maxt]=premnmx(p,x);%BP网络训练net=newff([-1,1],[5,1],{'tansig','tansig','purelin'},'traingdx');net.trainParam.show=1000;%每1000轮回显示一次结果net.trainParam.Lr=0.05;%学习速率为0.05net.trainParam.epochs=5000;%循环5000次net.trainParam.goal=1e-6;%均方误差net=train(net,pn,tn);%训练an=sim(net,pn);%神经网络仿真a=postmnmx(an,mint,maxt);%还原仿真得到的数据,反归一化%对新数据进行预测xx=1:length(x);pnew=[length(xx):length(xx)+n];%预测数据pnewn=tramnmx(pnew,minp,maxp);%新数据归一化anewn=sim(net,pnewn);anew=postmnmx(anewn,mint,maxt);%还原得到预测值anew=anew(2);三,程序运行截图运行main.m文件,结果如图并给出真实值与预测值的标准差真是值与预测值的对比曲线及误差比例曲线如图
本文标题:bp神经网络预测销售额
链接地址:https://www.777doc.com/doc-5390567 .html