首页> 中国专利> 需求预测方法以及需求预测装置

需求预测方法以及需求预测装置

摘要

一种需求预测方法以及需求预测装置。基于历史需求数据,获得料号对应的初步预估量。基于初步预估量,计算料号的需求几率。基于历史需求数据、初步预估量以及需求几率,获得料号对应的预测需求量。

著录项

  • 公开/公告号CN113283924A

    专利类型发明专利

  • 公开/公告日2021-08-20

    原文格式PDF

  • 申请/专利权人 纬创资通股份有限公司;

    申请/专利号CN202010166765.8

  • 申请日2020-03-11

  • 分类号G06Q30/02(20120101);G06Q10/08(20120101);

  • 代理机构72003 隆天知识产权代理有限公司;

  • 代理人聂慧荃;闫华

  • 地址 中国台湾新北市

  • 入库时间 2023-06-19 12:18:04

说明书

技术领域

本发明涉及一种存货模拟技术,且特别涉及一种需求预测方法以及需求预测装置。

背景技术

在存货领域中,精准地预测需求是重要的一环。假如能精准地预测存货则可以在满足顾客需求的前提之下降低大量的不必要的库存,达到节省成本的效果,系统的运行时间越久,省下的金额越可观。以服务零件而言,在产品供货起至到宣布停产后的特定时间内,提供必要的零件供给,以满足客户维修或更换的需要。对供应商而言,越能掌握精准的零件需求预测,就越能在更短时间内流通零件存货、创造营收,并降低呆滞料造成的成本积压。

现有的存货预测技术大多以时间序列的手法搭配数据来进行公式化的预测。现有技术的缺陷大致有下述三点。(1)无法完全充分的利用数据,时间序列的极限通常只能考量少数的变数,所以纵然数据的信息含量丰富,由于人对所述数据的理解有限,因此最后用来产出预测的公式可能考虑的变数只有顶多10个变数。(2)而这些用来产出预测的公式是由人经验累积而出,因此当有人离职或是人员汰换时很难做一个有系统的传承交接。(3)现行系统无法快速地扩展到各个不同的区域。简单来说,欧洲、美国、亚洲的需求形态不同,因此如果要针对不同的地区去进行在地化的预测,就需要三个团队分别去进行经验累积和发展公式。

发明内容

本发明提供一种需求预测方法,可以充分考虑所有数据变数,屏除人为的计算失误,以获得更精准的预测结果。

本发明的一实施例中的需求预测方法,包括:基于历史需求数据,获得料号对应的初步预估量;基于历史需求数据与初步预估量,计算料号的需求几率;以及基于历史需求数据、初步预估量以及需求几率,获得料号对应的预测需求量。

在本发明的一实施例中,上述需求预测方法还包括:转换历史需求数据的格式,以获得对应于料号的多个特征。所述特征包括在多个先前时段对应的多个参数、在多个时段范围内的多个参数平均值以及在所述各时段范围内包括的多个参数中的最大值。

在本发明的一实施例中,上述需求预测方法还包括:建立极端梯度提升(eXtremeGradient Boosting,XGBoost)模型,极端梯度提升模型包括线性模型、分类器以及极端梯度提升回归模型。

在本发明的一实施例中,上述基于历史需求数据,获得料号对应的初步预估量的步骤包括:将所述特征输入至线性模型,借此获得初步预估量。

在本发明的一实施例中,上述需求预测方法还包括:利用极端梯度提升演算法来建立分类器,以将所述特征及初步预估量输入分类器来获得需求几率。所述需求几率为该料号未来的需求为0的几率。

在本发明的一实施例中,上述基于历史需求数据、初步预估量以及需求几率,获得料号对应的预测需求量的步骤包括:将所述特征、需求几率以及初步预估量输入极端梯度提升回归模型,以获得预测需求量。

在本发明的一实施例中,上述需求预测方法还包括:解构极端梯度提升模型,以获得历史需求数据中的每一特征的影响力。其中极端梯度提升模型包括多个树,而解构极端梯度提升模型的步骤包括:自每一棵树的根节点开始走访至最底层的每一个节点;基于每一次所走访的节点对应的规则,将变化量归因至对应的特征;以及加总各特征对应的变化量来作为其对应的影响力。

在本发明的一实施例中,上述在获得料号对应的预测需求量步骤之后,还包括:基于前次实际需求为零的料号占总料号的比例来决定门限值;倘若料号对应的需求几率大于或等于门限值,将预测需求量设定为零;以及倘若料号对应的需求几率小于门限值,输出预测需求量作为最终预测结果。

本发明的一实施例中的需求预测装置,包括:存储装置,存储有多个程序码片段;以及处理器,耦接至存储装置,执行所述程序码片段以:基于历史需求数据,获得料号对应的初步预估量;基于历史需求数据与初步预估量,计算料号的需求几率;以及基于历史需求数据、该初步预估量以及该需求几率,获得该料号对应的一预测需求量。

基于上述,本发明实施例可以充分考虑所有数据变数,屏除人为的计算失误,以获得更精准的预测结果。

附图说明

图1是依照本发明一实施例的电子装置的方框图。

图2是依照本发明一实施例的预测需求方法的流程图。

图3是依照本发明一实施例的进行需求预测程序的流程图。

图4是依照本发明一实施例的XGBoost回归模型中的其中一颗树的示意图。

图5是依照本发明一实施例的特征影响力的比对图。

附图标记说明:

100:电子装置

110:处理器

120:输出装置

130:存储装置

131:XGBoost模型

140:线性模型

150:分类器

160:XGBoost回归模型

S205~S240:预测需求方法的各步骤

S305~S315:进行需求预测程序的各步骤

具体实施方式

图1是依照本发明一实施例的电子装置的方框图。请参照图1,电子装置100包括处理器110、输出装置120以及存储装置130。在此,处理器110耦接至输出装置120及存储装置130。

处理器110例如为中央处理单元(Central Processing Unit,CPU)、物理处理单元(Physics Processing Unit,PPU)、可程序化的微处理器(Microprocessor)、嵌入式控制芯片、数字信号处理器(Digital Signal Processor,DSP)、特殊应用集成电路(ApplicationSpecific Integrated Circuits,ASIC)或其他类似装置。

输出装置120可以是阴极射线管(Cathode Ray Tube,CRT)显示器、液晶显示器(Liquid Crystal Display,LCD)、等离子体显示器(Plasma Display)、触控显示器(TouchDisplay)等显示器。或者,输出装置120可以是印表机。

存储装置130例如是任意形式的固定式或可移动式随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash memory)、硬盘或其他类似装置或这些装置的组合。存储装置130中存储有多个程序码片段,上述程序码片段在被安装后,会由处理器110来执行,以实现下述需求预测方法。

举例来说,存储装置130中存储了存货模拟系统(simulation tool),通过存货模拟系统来建构极端梯度提升(eXtreme Gradient Boosting,XGBoost)模型131。XGBoost模型131包括线性模型140、分类器150以及XGBoost回归模型160。

在此,线性模型140是基于历史需求数据中的多个特征来获得一颗料号对应的初步预估量。分类器150用来预测所述料号未来的需求为零的几率。XGBoost回归模型160用来获得所述料号对应的预测需求量。

XGBoost回归模型160是树状(tree-based)的模型,主要的概念是利用不同的数据特征来建构出能通用于大部分数据的规则,进而达到后续预测的目的。在XGBoost回归模型160中每个分裂的节点是利用信息增益的理论中的熵(entropy)来衡量,期望能在每次的分裂后达到降低信息混乱程度的目标。XGBoost回归模型160的组成可能是上百棵树(分类器),即,XGBoost回归模型160是个将很多弱分类器(小棵的树模型)集成而成的强分类器(大棵的树模型)。

图2是依照本发明一实施例的预测需求方法的流程图。请参照图1及图2,在步骤S205中,处理器110自数据库中读取历史需求数据,并转换格式。在此,在自历史需求数据中取出要输入至线性模型140的特征之前,先对历史需求数据的原始数据进行转换,以确保在建立XGBoost模型131时所考虑的数据更为全面。

具体而言,转换历史需求数据的格式,以获得对应于料号的多个特征。所述特征包括在多个先前时段对应的多个参数、在多个时段范围内的多个参数平均值以及在所述时段范围内各自包括的多个所述参数中的最大值。

表1所示为一部分历史需求数据的原始数据。在表1中仅列出栏位“ord_pn”、栏位“country”、栏位“qty”、栏位“yyyymm”来进行说明,在此并不限定原始数据的栏位数量及内容。栏位“ord_pn”记录料号的编号,栏位“country”记录区域,栏位“qty”记录实际需求量,栏位“yyyymm”记录时间。

表1

表1中,每笔数据都是依照时间排序来存储。如果直接使用原始数据来建立XGBoost模型131,则会造成没有充分考虑前后序列性的缺陷。这是因为XGBoost演算法是树状学习,每个分裂点主要以栏位为考量,如表1所述的原始数据会让这种类型的演算法(树状模型的演算法)无法考虑前后几期的需求。因此,在建立XGBoost模型131之前,将原始数据转换成另一种存储的方式来让XGBoost演算法能同时参考每个料号的前后几期的需求来预测未来的需求。

表2所示为一部分历史需求数据的转换格式后的转换后数据。在表2中,仅列出栏位“GID”、栏位“REGION”、栏位“fcst_date”、栏位“x_month_01”~栏位“x_month_06”来进行说明,在此并不限定转换后数据的栏位数量及内容。栏位“GID”记录群组识别码,亦可记录对应的料号的编号,栏位“REGION”记录区域,栏位“fcst_date”记录每个月底进行预测的日期,栏位“x_month_01”~栏位“x_month_06”分别记录在其对应的预测日期之前的第1个月~第6个月的需求量,栏位“yyyymm”记录时间。栏位“QTY”记录其对应的栏位“yyyymm”该月份的需求量。

表2

在表2中,可以发现数据被转换成同一笔数据中存储了前1个月的用量(x_month01),前2个月的用量(x_month_02)…一直到前6个月的用量(x_month_06)。fcst_date则表示目前的时间点。以“2017.01.31”而言,其代表是在2017.01.31这个时间点要去预测下个月料号“717376-001”的用量。在此,会考虑前6个月该颗料号的用量。也就是说,使用这种数据的格式搭配使用树状模型的演算法去进行预测的话,虽然还是依照栏位去做分裂,但是却会有更多选择性,可以考虑到前几个月的用量的影响,而不是只能参考最近的一个月。值得一提的是,于一实施例中,依据物料规划员建议的序列性参数,例如包括了需求(demand)和保固期(warranty date)内在外流通的用量(wib)都进行了类似的数据转换处理,此举可确保演算法考虑的数据更为全面。当然还有很多其他的转换,表2提及的内容仅为方便说明,在此并不限定转换的特征。

接着,在步骤S210中,处理器110切分历史需求数据为训练集和验证集。为了精准预测未来需求,在切分训练集和验证集时需尽可能地贴近现实会发生的状况来切分和进行验证。在此,按照数据发生的前后顺序来进行切分,以某时间点之前为训练集,用以训练模型,某时间点之后为验证集来验证模型的精度。例如,以时间2017-12-31来进行切分,将2017-12-31之前的数据作为训练集,将2017-12-31之后的数据作为验证集。

值得注意的是,还在建置系统验证的时候的确是需要去切分训练集和验证集,但是验证过后确认系统是可信的之后,便可将所有手边最新的数据都当作训练集然后去预测未来的需求。验证集会用于产出预测值然后输入存货模拟系统,产出报表来看整体预测的表现状况。

在步骤S215中,建立XGBoost模型131。XGBoost模型131包括线性模型140、分类器150以及XGBoost回归模型160。在此,利用线性回归(linear regression)演算法来建立线性模型140。利用XGBoost演算法来建立分类器150以及XGBoost回归模型160。建立线性模型140的原因是因为有些料号使用线性回归就可以有不错的预测,因此,同时使用线性模型140以及XGBoost回归模型160的情况下,能够使得最终预测结果更为准确。

在建立XGBoost模型131之后,在步骤S220中,利用XGBoost模型131来进行需求预测程序。图3是依照本发明一实施例的进行需求预测程序的流程图。请参照图3,在步骤S305中,基于历史需求数据,获得料号对应的初步预估量。接着,在步骤S310中,基于历史需求数据及初步预估量,计算料号的需求几率。之后,在步骤S315中,基于历史需求数据、初步预估量以及需求几率,获得所述料号对应的预测需求量。

首先,自转换后数据中选择多个栏位来作为一颗料号的特征(变数)。在此,可通过试误学习来获得多个特征。另外,亦可视情况来挑选特征,或是选择全部的栏位作为特征。所述特征包括在多个先前时段对应的多个参数(例如前1个月的用量、前2个月的用量…等)、在多个时段范围内的多个参数平均值(例如前1个月的用量平均值、前2个月的用量平均值…等)以及在各时段范围内包括的多个参数中的最大值。接着,将所述特征输入至线性模型140,利用线性模型140来产生所述料号对应的初步预估量。而所述特征与所述初步预估量会成为新的变数输入至分类器150中训练。

在此,利用XGBoost演算法来训练出分类器150,通过分类器150来计算所述料号分类至未来需求为零的需求几率(另一新的变数)。之后,将所述特征以及所产生的新的变数(包括初步预估量以及需求几率)输入至XGBoost回归模型160。

XGBoost回归模型160包括很多棵树,这些树就像是很多规则一样,当有新数据进来需要被预测的时候,便可沿着这些树来看新数据有没有符合规则,然后选择不同的道路走到最低点进而给出预测。

图4是依照本发明一实施例的XGBoost回归模型中的其中一颗树的示意图。请参照图4,图4中的每一个节点都是特征(变数),而每一个节点中最上面的数值代表初始的预测值,“n”代表有几笔数据被分到这个节点。在此,“avg_dmd_past_3mth”代表过去3个月的用量平均值,“max_dmd”代表最大用量。每个节点都有一个判断的规则。在本实施例中,假设倘若满足节点对应的规则,则选择左边分支,倘若未满足节点对应的规则,则选择右边分支。

由图4的最上面的节点(其预测值为1.9)开始,判断该笔数据的过去3个月的用量平均值是否小于41。假如这笔数据的过去3个月的用量平均值小于41,则选择左边的分支,然后预测值会被更新为1.2,反之会走右边,然后预测值会被更新为69。以此类推,每笔数据在进行预测时,会根据每一个节点对应的规则来决定要选择哪一条分支。即,每次遇到分支只会走左或右的其中一条路径,然后一路走到底就会产出预测需求量。

在本实施例中,假设过去3个月的用量平均值小于41,选择左边的分支,然后预测值会被更新为1.2。接着,假设过去3个月的用量平均值小于8.8,选择左边分支,预测值更新为0.69。之后,假设最大用量大于等于4,选择右边分支,预测值更新为4.3。以预测值4.3来作为预测需求量。

在获得料号对应的预测需求量之后,还可进一步根据需求几率来做进一步的筛选。即,基于前次实际需求为零的料号占总料号的比例来决定门限值。倘若料号对应的未来的需求为零的需求几率大于或等于门限值,将预测需求量设定为零。倘若料号对应的未来的需求为零的需求几率小于所述门限值,输出预测需求量作为最终预测结果。

另外,也可以如表3所示,对需求几率进行量化后,再与门限值进行比对。

表3

如表3所示,其包括五笔预测需求量。首先,根据需求几率的高低来排序这五笔预测需求量。之后,根据笔数对需求几率量化而获得量化需求几率。例如,有5笔预测需求量,则设定由小至大的量化需求几率为0.2、0.4、0.6、0.8、1。然后,计算上个月实际需求为零的料号占总料号的比例。假设上个月有20%的料号的实际需求量为0,因此,设定为将量化需求几率最高的20%对应的预测需求量全部修改为零。以表3而言,将量化需求几率1、0.8两者对应的预测需求量设定为0。也就是说,将门限值设定为0.8,量化预测需求量大于或等于0.8对应的预测需求量将会设定为0。

返回图2,在建立XGBoost模型131之后,在步骤S225中,通过XGBoost解释器(explainer)来解构XGBoost模型131。XGBoost模型131能被建构出来是因为从宏观的角度发掘整体数据的规则而去建构出来。但是倘若解释XGBoost模型131中的树模型,便要用微观的角度去解释(从单一笔数据走访树的角度去解构)。解构单一笔数据的过程类似图4所示的箭头,箭头是某笔数据根据自身条件去走访树的结果。

从解构的角度来说,将该笔数据走访的路径做一个归因。即,通过自每一棵树的根节点开始走访至最底层的每一节点,基于每一次所走访的节点对应的规则,将变化量归因至对应的特征,之后加总每一特征对应的变化量来作为其对应的影响力。以图4的箭头而言,因为avg_dmd_past_3mth<41的规则,预测值由1.9变成1.2的变化量-0.7被归因到avg_dmd_past_3mth这个特征上。接着,因为avg_dmd_past_3mth<8.8的规则,预测值由1.2变成0.69的变化量-0.51被归因到avg_dmd_past_3mth这个特征上。接着,因为max_dmd<4的规则,预测值由0.69变成4.3的变化量3.61被归因到max_dmd这个特征上。一路做同样的归因直到树的最底层,借此将各个变化量归因至对应的特征上,并加总每个特征对应的变化量作为该特征对应的影响力。最后,产生每个特征的影响力的比对图。

图5是依照本发明一实施例的特征影响力的比对图。可由输出装置120来输出此比对图,以供物料规划员查看。图5的解读方式为由左而右依序列出特征(重要性:重要至不重要)和其影响力,从图中可看出每个特征有可能是正向也可能是负向(例如-0.05),最后的“prediction”为全部影响力的总和。在本实施例中,列出特征“reg1”(初步预估量)、“avg_dmd_past_3mth”(前3个月的用量平均值)、“max_dmd”(最大用量)、“mth_fcst_eow”(从保固期结束至每个月底进行预测的日期的月份)、“zero_prob”(需求几率)、“wib_trend_3mth”(3个月内的在外流通量趋势)。而有些特征因为影响力不足因此被合并成为“other”,即,“other”是由很多特征合并而成,意图简化此图表。而“intercept”不为原本数据集的特征,此项为给定的定值,也就是说同个模型的解构出来的图中,每张图的这个值都会一样,可以理解为类似线性回归中的截距项。于其他实施例中,输出装置120输出比对图时,以不同的颜色标示各个特征,亦可以不同的颜色标示每个特征的影响力,例如将影响力为正向的特征标示为蓝色,将影响力为负向的特征标示为红色。

假如本笔数据的预测需求量为100,则反推特征“reg1”造成的影响,

在获得最终预测结果之后,在步骤S235中,判断对于预测结果是否有疑虑。若对预测结果有疑虑,在步骤S230中,进行量化解释。倘若对预测结果没有疑虑,在步骤S240中,产出存货指标报表。并且,将通过输出装置120来输出存货指标报表。另外,也可以不经过步骤S235,而直接产出存货指标报表。

例如,存货指标报表中包括了预测准确性指标、存货降低指标、潜在存货指标以及客户满意度指标。预测准确性指标为衡量演算法准确度的指标。存货降低指标以及潜在存货指标皆作为节省多少钱的指标。其中,存货降低指标所使用的存货是表示还有可能会被消耗的库存。潜在存货指标所使用的存货则是表示超出产品的授权期间或是保固期,无法被消耗的库存。存货降低指标为将基于上述实施例所获得的每个月给出的预测需求量乘上每个料号的成本所计算出的总成本,减去旧系统所获得的总成本的值。客户满意度指标则是代表客户的满意度。举例来说,假如客户的需求为10片,而我方只能提供9片,则客户满意度指标就是90%。假如客户的需求为10片,而我方能够提供10片以上,则客户满意度指标就是100%。然,需注意的是,并不能为了100%的客户满意度指标就备很多料,仍需视考虑到存货降低指标以及潜在存货指标。

于步骤S235中,输出装置120显示预测需求量,让物料规划员判断预测结果是否有疑虑,若物料规划员对预测结果有疑虑,于步骤S230中,物料规划员会通过输出装置120去筛选出在验证区间内的预测需求量跟实际值之间的差距太大的料号。表4为一实施例的一笔预测结果。

表4

以表4为例,y_month_01代表实际值,fcst_m1代表预测需求量,x_month_01~x_month_03代表过去1~3个月的用量。其中,实际值与预测需求量为36.40958两者差了73片左右的量,因此被筛选出来当作是潜在问题的预测。接着,物料规划员会去看数据的表现,例如查看x_month_01~x_month_03之后发现过去的量都差不多相同水准,因此物料规划员通过输出装置120会去调阅这该笔数据的解释器的图出来参考(例如通过输出装置120显示图5)。假如是数据过去水准跟未来根本就差异太大导致不管用任何演算法都不太可能能预估到该趋势的话,就会标记该料号可能有需求激增(surge demand)。因此在计算顾客满意度指标的时候可以排除这些变异太大的料号。

综上所述,所述实施例利用线性回归来执行最初步的预测,然后将所获得的初步预估量当成变数输入至第二阶段的分类器去学习,借此获得该笔料号未来的需求为0的需求几率。之后再将先前使用的变数(包括新创的初步预估量、需求几率)输入XGBoost回归模型160来获得预测需求量。

导入机器学习领域中的XGBoost模型来当作最主要的演算法进行预测。XGBoost模型适用于大规模数据的演算。严格来说,将所有的数据变数都放进XGBoost模型来产出结果,可屏除人为的计算失误。据此,在进行预测时参考的数据会比现有方法还要全面,进而获得更准确的预测需求量,以有效控管库存,进而节省成本。并且,经验证后发现可以在存货领域衡量预测优劣的指标(省钱指标、顾客信心水准)上达到维持顾客信心水准。

另外,使用XGBoost模型的系统可以提供使用者接口轻松的产出预测结果,甚至可以完全不需要人为的介入,只需要让开发好的系统自动在该产出预测的时候自动产出即可,可以降低或是避免人员汰换时的不便。

又,使用XGBoost模型的系统的使用前提是只需要有每个不同地区的数据即可运行,快速的在几个小时之内对区域内的数据进行模式的识别和萃取重要信息以建造出模型,并提供准确的预测。故,本发明的可扩展性(把同个系统快速应用到不同区域进行预测的能力)以及可移植性(把系统切换到不同电脑上运行的能力)都优于现有系统。

此外,本发明实施例也导入可使XGBoost演算法有解释能力的技术(XGBoost解释器),使预测的结果具有可解释性。所谓的可解释性是指当给出某个料号的预测需求量之后,物料规划员(客户/系统使用者/决策者)会想知道预测需求量是怎么来的,也就是说假如使用预测的数据里面包含了产品目前处于何种周期、保固期内料号在外流通的总量、该物料过去几个月的需求量等参数,可用于解释预测结果。本发明实施例除了用XGBoost模型提供出精准的预测之外,也提供每个特征(变数)对于该笔预测的量化影响,此量化影响包含了该特征对预测需求量的正向影响或是负向影响,也包含的量的多寡,使物料规划员可以快速接受信息。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号