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

news2024/12/24 13:53:08

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

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

一、问题背景与模型建立

(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)数据处理

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)网络初始化

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)网络学习

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)结果预测

     

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1227289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物联网AI MicroPython学习之语法 TIMER硬件定时器

学物联网,来万物简单IoT物联网!! TIMER 介绍 模块功能: 硬件定时器模块 接口说明 Timer - 构建Timer对象 函数原型:Timer(id)参数说明: 参数类型必选参数?说明idintY硬件定时器外设模块id&#xff1a…

计算机毕业设计项目选题推荐(免费领源码)java+Springboot+mysql高校自习室座位预约管理系统67512

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校自习室座位预约管理系统等问题&#xf…

IIC 实验

IIC 简介 IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微 控制器以及其外围设备。它是由数据线 SDA 和时钟线 SCL 构成的串行总线,可发送和接收数 据,在 CPU 与被控 IC 之间、IC 与 IC 之间进行双…

VBA之Word应用:文档(Document)的书签

《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实…

虚拟机配置完NAT模式之后可以和主机ping通但是ping 百度显示:网络不可达

具体linux网络配置看这:http://t.csdnimg.cn/KRami 解决方案如下: 如果这里网关为空,那么和我遇到的问题一样网关没有设置上,在这直接配置网关之后重启即可

java--贪吃蛇

import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Random;public class Snake extends JFrame implements KeyListener, ActionListener, MouseListener {int slong 2;//蛇当前长度//蛇坐标int[] Snakex new int[100];int[] Snakey new…

Google codelab WebGPU入门教程源码<2> - 绘制几何形状(源码)

对应的教程文章: https://codelabs.developers.google.com/your-first-webgpu-app?hlzh-cn#3 源码执行效果: 对应的教程源码: 此处源码和教程本身提供的部分代码可能存在一点差异。 class Color4 {r: number;g: number;b: number;a: number;constructor(pr 1.0, pg 1.0, …

Nginx(七) root和alias的区别及详细测试

本篇文章只讲root和alias的区别,配置文件详解请参考 Nginx(三) 配置文件详解,下面开始进行测试。 Nginx配置如下: server {listen 8688 default_server;server_name www.read******.cn;access_log logs/access.log format2;root pages;set …

【信息安全】浅谈SQL注入攻击的概念、原理和防范措施:简单分析六种常见攻击方式

银狼美图镇楼 用户登录 在开发Web应用程序时,用户登录是一个非常常见的功能。然而,不安全的用户登录功能可能会导致安全漏洞,例如SQL注入和跨站脚本攻击。 SQL注入 SQL注入是一种常见的攻击技术,攻击者通过在用户输入的数据中插…

BGP基本配置

配置逻辑 完成所有路由器的IGP配置使用直连接口建立EBGP对等体关系使用环回接口建立IBGP对等体关系使用connect-interface命令修改IBGP建邻源IP地址使用next-hop-local命令修改路由传递时的下一跳属性若存在使用环回接口建立EBGP对等体关系,则需要建立通讯条件&…

FastJson竟然会导致内存泄露?你遇到过吗?

FastJson是一款性能优异的java序列化和反序列框架,广泛应用于日常开发工作中,也许正是因为作者在设计这款框架时,比较注重性能方面的考量,在框架安全性,空间占用等方面做了一些牺牲。 很不幸小编前两天就遇到了一个使…

Ubuntu中apt-get update显示域名解析失败

第一步 检查主机->虚拟机能否ping成功 ping 红色框中的IPv4地址 能通,表示虚拟机ip配置成功;否则,需要先配置虚拟机ip 第二步 检查是否能ping成功百度网址 ping www.baidu.com 若不成功,可能原因 虚拟机没联网,打开火狐浏览器…

go学习之简单项目

项目 文章目录 项目1.项目开发流程图2.家庭收支记账软件项目2)项目代码实现3)具体功能实现 3.客户信息管理系统1)项目需求说明2)界面设计3)项目框架图4)流程5)完成显示客户列表的功能6&#xff…

leetcode刷题日记:190. Reverse Bits(颠倒二进制位)和191. Number of 1 Bits( 位1的个数)

190. Reverse Bits(颠倒二进制位) 题目要求我们将一个数的二进制位进行颠倒,画出图示如下(以8位二进制为例): 显然对于这种问题我们需要用到位操作,我们需要将原数的每一位取出来然后颠倒之后放进另一个数。 我们需要…

被锁总时间

题目描述: 对一个事务进行加锁与解锁,其中有加锁数组,解锁数组,这两个数组长度相等,且数组内数据代表加锁与解锁的具体时间点,求给出数组中事务的总被锁时间。(其中加锁后默认在60秒后解锁&…

【信息安全】浅谈三种XSS(跨站脚本攻击)的攻击流程与防御措施

银狼美图镇楼 XSS 跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的Web安全漏洞,攻击者通过在Web应用中注入恶意脚本,使得浏览器在解析页面时执行该脚本,从而实现攻击目的。 类型 存储型XSS&…

SPASS-回归分析

回归分析概述 确定性关系与非确定性关系 变量与变量之间的关系分为确定性关系和非确定性关系,函数表达确定性关系。研究变量间的非确定性关系,构造变量间经验公式的数理统计方法称为回归分析。 回归分析基本概念 回归分析是指通过提供变量之间的数学表达式来定量描述变量间…

Oracle主备切换,ogg恢复方法(集成模式)

前言: 文章主要介绍Oracle数据库物理ADG主备在发生切换时(switchover,failover),在主库运行的ogg进程(集成模式)如何进行恢复。 测试恢复场景,因为集成模式不能在备库配置,所以场景都是基于主库端: 1 主备发生switchover切换,主库…

LeetCode - 622. 设计循环队列(C语言,顺序存储结构,配图)

622. 设计循环队列 - 力扣(LeetCode) 设计循环队列,我们可以从顺序结构和链式结构来考虑,但因为链式结构实现起来较为复杂,不易理解,且主流使用顺序存储,所以本文就是用顺序存储结构实现。 因为…