bp神经网络预测销售额

2019-01-18 22:08

一,说明

对销售额进行bp神经网络预测,销售额如表1

其中前17月数据用作训练样本,来预测第18个月的数据,然后利用前18个月的数据来预测第19个月的数据,以此来预测全部月份的数据,并最终给出真实值与预测值之间的误差 二,程序

程序包括两部分,main.m为主程序,NNetwork.m为训练及预测程序,NNetwork输入为真实数据,输出为预测数据。程序如下 main程序

clear all %清除变量空间

clc %清除命令窗口所有数据 close all %关闭所有figure窗口 % 数据,前17组为训练数据

t=[124.2 117.1 108.4 102.8 99.2 98.6 100.4 100. 99.4 101.2 103.9 101.8 101.5 104.8 105.9 99.3 103.3 113.2 116.5 117.1 116.9 115.8]; %%原始数据(数据的观测值) n=1; %每次预测个数 for i=17:21 s=t(1:i);

[a, anew]=NNetwork(s,n); %调用神经网络预测程序 disp(['预测的第',num2str(i+1),'个值为']); anew %预测值 pred=a(1,:) ;

pred(end+1)=anew; %加上预测值新数据 end

%画图部分

figure xx=1:i+1;

plot(xx,pred,'r-*',xx,t,'k--+'); legend('预测值','实际值'); xlabel('点数'); ylabel('数据');

figure

s=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); %%数据的个数 warning off %数据归一化

[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.05 net.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神经网络预测销售额.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:巢湖市一中2009—2010学年度第一学期第一次月考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: