基于灰色神经网络的订单需求预测算法研究
2020-07-06 15:35
134 查看
基于灰色神经网络的订单需求预测算法研究
这灰色神经网络准确度就尼玛离谱,调试了半天还是那样,太菜了太菜了。
%% 清空环境变量 clc clear load data %% 数据累加作为网络输入 [n,m]=size(X); for i=1:n y(i,1)=sum(X(1:i,1)); y(i,2)=sum(X(1:i,2)); y(i,3)=sum(X(1:i,3)); y(i,4)=sum(X(1:i,4)); y(i,5)=sum(X(1:i,5)); y(i,6)=sum(X(1:i,6)); end %% 网络参数初始化 a=0.3+rand(1)/4; b1=0.3+rand(1)/4; b2=0.3+rand(1)/4; b3=0.3+rand(1)/4; b4=0.3+rand(1)/4; b5=0.3+rand(1)/4; %% 学习速率初始化 u1=0.001; u2=0.003; u3=0.003; u4=0.005; u5=0.006; %% 权值阀值初始化 t=0.5; w11=a; w21=-y(1,1); w22=2*b1/a; w23=2*b2/a; w24=2*b3/a; w25=2*b4/a; w26=2*b5/a; w31=1+exp(-a*t); w32=1+exp(-a*t); w33=1+exp(-a*t); w34=1+exp(-a*t); w35=1+exp(-a*t); w36=1+exp(-a*t); theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a-y(1,1)); kk=1; %% 循环迭代 for j=1:15 %循环迭代 E(j)=0; for i=1:30 %% 网络输出计算 t=i; LB_b=1/(1+exp(-w11*t)); %LB层输出 LC_c1=LB_b*w21; %LC层输出 LC_c2=y(i,2)*LB_b*w22; %LC层输出 LC_c3=y(i,3)*LB_b*w23; %LC层输出 LC_c4=y(i,4)*LB_b*w24; %LC层输出 LC_c5=y(i,5)*LB_b*w25; %LC层输出 LC_c6=y(i,6)*LB_b*w26; %LC层输出 LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6; %LD层输出 theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1)); %阀值 ym=LD_d-theta; %网络输出值 yc(i)=ym; %% 权值修正 error=ym-y(i,1); %计算误差 E(j)=E(j)+abs(error); %误差求和 error1=error*(1+exp(-w11*t)); %计算误差 error2=error*(1+exp(-w11*t)); %计算误差 error3=error*(1+exp(-w11*t)); error4=error*(1+exp(-w11*t)); error5=error*(1+exp(-w11*t)); error6=error*(1+exp(-w11*t)); error7=(1/(1+exp(-w11*t)))*(1-1/(1+exp(-w11*t)))*(w21*error1+w22*error2+w23*error3+w24*error4+w25*error5+w26*error6); %修改权值 w22=w22-u1*error2*LB_b; w23=w23-u2*error3*LB_b; w24=w24-u3*error4*LB_b; w25=w25-u4*error5*LB_b; w26=w26-u5*error6*LB_b; w11=w11+a*t*error7; end end %随进化次数变化趋势 figure(1) plot(E) title('训练误差','fontsize',12); xlabel('进化次数','fontsize',12); ylabel('误差','fontsize',12); %print -dtiff -r600 28-3 %进行预测 for i=31:36 t=i; LB_b=1/(1+exp(-w11*t)); %LB层输出 LC_c1=LB_b*w21; %LC层输出 LC_c2=y(i,2)*LB_b*w22; %LC层输出 LC_c3=y(i,3)*LB_b*w23; %LC层输出 LC_c4=y(i,4)*LB_b*w24; %LC层输出 LC_c5=y(i,5)*LB_b*w25; LC_c6=y(i,6)*LB_b*w26; LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6; %LD层输出 theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1)); %阀值 ym=LD_d-theta; %网络输出值 yc(i)=ym; end yc=yc*100000; y(:,1)=y(:,1)*10000; %计算预测的每月需求量 for j=36:-1:2 ys(j)=(yc(j)-yc(j-1))/10; end figure(2) plot(ys(31:36),'-*'); hold on plot(X(31:36,1)*10000,'r:o'); legend('灰色神经网络','实际订单数') title('灰色系统预测','fontsize',12) xlabel('月份','fontsize',12) ylabel('销量','fontsize',12)
结果显示
讲真,仅供参考,谨慎使用。
完毕
相关文章推荐
- 文献综述--------山东某地区基于深度学习神经网络的配电网负荷预测研究
- 基于MATLAB的遗传算法优化的神经网络房价预测实战(附完整代码)
- 顶会论文:基于神经网络StarNet的行人轨迹交互预测算法
- RBF神经网络——基于近红外光谱的汽油辛烷值预测
- 基于微软案例数据挖掘之Microsoft 神经网络分析算法
- 基于Excel的神经网络工具箱(之一)——DNN神经网络数据结构的算法实现
- 基于微软案例数据挖掘之Microsoft 神经网络分析算法原理篇
- 基于神经网络的验证码实验研究(三)
- 第三章 CHRAS系统简介及其备份恢复需求 --基于mkCDrec的核心网网络运维系统的备份和恢复的研究与实现
- 基于遗传算法优化的神经网络算法
- 基于tensorflow下的神经网络的一维数据的回归算法
- 用神经网络进行预测的MATLAB算法实现?
- 基于.NET实现数据挖掘--神经网络算法原理
- 基于神经网络算法来进行情绪和情境识别进度笔记
- 基于NAR神经网络的化工产品价格预测的实现(Matlab)
- (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 神经网络分析算法原理篇)
- 基于神经网络的预测模型
- 大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 神经网络分析算法原理篇)
- 基于遗传算法(GA)的神经网络训练算法
- 基于NAR神经网络的化工产品价格预测的实现(Matlab)