基于灰色神经网络的预测算法——订单需求预测

大家好,我是带我去滑雪!

灰色系统理论的不确定性处理与神经网络的非线性建模相结合,有望更好地处理实际问题中的不确定性和复杂性。本期使用灰色神经网络实现预测冰箱订单需求。

一、问题背景与模型建立

(1)灰色理论

灰色系统理论(Grey System Theory)是由中国学者李明提出的一种系统科学理论,它主要应用于处理那些信息不完备、不确定性较大、难以精确描述的系统问题。该理论最初应用于经济领域,但后来被拓展到了工程、环境科学、社会科学等多个领域。

灰色系统中建立的模型称为灰色模型,该模型是以原始数据序列为基础建立微分方程。灰色建模中最有代表的模型是针对时间序列的GM建模,它直接将时间序列数据转化为微分方程,利用系统信息,使抽象的模型量化。进而在缺乏系统特性知识的情况下预测系统输出。

(2)灰色神经网络

灰色神经网络是指一种基于神经网络框架,同时结合了灰色系统理论的方法。包括使用神经网络进行数据建模和模式识别,同时考虑到灰色系统理论中处理不完整信息的特点。灰色神经网络的学习流程如下:

  • 步骤1:根据训练数据特征初始化网络结构,初始化参数a,b,并根据a,b的值计算u;
  • 步骤2:根据网络权值定义计算权值;
  • 步骤3:对每一个输入序列,计算每层的输出;
  • 步骤4:计算网络预测输出和期望输出的误差,并根据误差调整权值和阈值;
  • 步骤5:判断训练是否结束,若否,返回步骤3。

(3)冰箱订单预测背景

对于冰箱市场来说,影响需求量的因素很多,比如季节性因素、成本、产品质量、品牌认可度、售后服务、产品结构、产品生命周期、价格波动及销售力度、竞争对手、市场特征、性能价格比等,根据各因素对订单需求影响的大小,从中选取需求趋势、产品市场份额预测、销售价格波动、订单缺货情况和分销商的联合预测情况5个因素作为主要因素预测冰箱订单量。

需求趋势:涉及分析市场对产品或服务的需求如何变化的趋势。这可能包括季节性变化、长期趋势、新兴市场的增长等。了解需求趋势有助于企业调整生产计划、库存策略和市场营销活动,以满足不断变化的市场需求。

产品市场份额预测:预测产品在市场上的份额变化。这包括了解竞争对手的动态、消费者偏好的变化、市场份额的增长或减少等。有效的市场份额预测有助于企业制定竞争策略、定价策略和产品创新战略。

销售价格波动:考察销售价格的波动情况,即产品或服务价格如何随时间变化。这可能受到原材料成本、竞争状况、市场需求等多种因素的影响。了解销售价格波动有助于企业确定合适的定价策略,最大化盈利并保持市场竞争力。

订单缺货情况:分析订单履行过程中产品缺货的情况。这包括了解导致缺货的原因,如生产问题、供应链中断等。解决订单缺货问题对于维护客户满意度和保持业务正常运作至关重要。

和分销商的联合预测情况:与分销商合作,共同预测产品的需求。这有助于建立更为准确的供应链和库存管理系统,减少库存过剩或缺货的风险。有效的合作预测可以提高供应链的敏捷性,同时确保分销商和制造商之间的合作更为紧密。

(4)模型建立

基于灰色神经网络的冰箱订单预测算法流程:其中,灰色神经网络构建根据输入、输出数据维数确定灰色神经网络结构。由于本案例输入数据为5维,输出数据为1维,所以灰色神经网络结构维1-1-6-1,即LA层有1个节点,输入为时间序列,LB层有1个节点,LC层有6个节点,第2-6个分别输入需求趋势、产品市场份额预测、销售价格波动、订单缺货情况和分销商的联合预测5个因素的归一化数据,输出为预测订单需求。

二、代码实现与结果分析

(1)数据处理

Matlab 复制代码
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

(2)网络初始化

Matlab 复制代码
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.0015;
u2=0.0015;
u3=0.0015;
u4=0.0015;
u5=0.0015;

t=1;
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;

(3)网络学习

Matlab 复制代码
for j=1:10
%循环迭代
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  

(4)结果预测

Matlab 复制代码
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

(5)结果分析

灰色神经网络训练过程:

可以看出,灰色神经网络收敛速度很快,但是网络很快陷入局部最优,无法进一步修正参数。用训练好的灰色神经网络预测冰箱订单,预测结果:


更多优质内容持续发布中,请移步主页查看。

若有问题可邮箱联系:1736732074@qq.com

博主的WeChat:TCB1736732074

点赞+关注,下次不迷路!

相关推荐
埃菲尔铁塔_CV算法1 分钟前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR1 分钟前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
打羽毛球吗️8 分钟前
机器学习中的两种主要思路:数据驱动与模型驱动
人工智能·机器学习
好喜欢吃红柚子25 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python29 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯38 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
正义的彬彬侠41 分钟前
《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析
人工智能·决策树·机器学习·集成学习·boosting·xgboost
Debroon1 小时前
RuleAlign 规则对齐框架:将医生的诊断规则形式化并注入模型,无需额外人工标注的自动对齐方法
人工智能
羊小猪~~1 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
AI小杨1 小时前
【车道线检测】一、传统车道线检测:基于霍夫变换的车道线检测史诗级详细教程
人工智能·opencv·计算机视觉·霍夫变换·车道线检测