1. 引言
1.1. 研究意义
随着经济全球化的高速发展,市场竞争愈发激烈。多种外部因素的不确定性使企业供应链面临着巨大的挑战。制造企业通常会生产一系列的产品,每个系列下又包含多种型号。这些型号产品之间相互制约影响,如何合理预测不同型号产品的需求量成为企业管理者需要解决的问题之一。目前,研究同一系列下多种型号产品之间的相互制约影响已经成为了热点问题,但是如何准确地预测不同型号产品的需求量仍然存在一定难度。此外,订单数据具有时序性,如何利用历史订单数据中的信息,建立能够准确预测需求量的模型,也是研究人员需要解决的问题。产品订单需求预测可以帮助企业管理供应链,准确预测产品订单需求能够支配生产、减少库存、降低成本、帮助资源配置,有利于公司制定产品销售及运营计划,从而制定合理的采购和生产计划,缩短订单交货时间,提高交易效率,增加客户满意度。
1.2. 文献综述
目前,国内外针对预测订单需求的问题已有较多的研究,主要分为传统统计学方法和现代机器学习方法两类。阚毅 [1] 运用多元回归分析方法,针对迅达公司产品订单需求进行预测。郭瑞 [2] 通过将定量预测的四种方法:简单平均法、加权移动平均法、一次指数平滑法、一元线性回归法进行比较,得到最优方法加权移动平均法来对MTO企业的订单进行预测,并进行订单排序,有效解决MTO企业的生产计划缺乏预测的问题。张崇娇、沈小林 [3] 等人采用果蝇算法和和灰色理论相结合,构建优化灰色神经网络的冰箱订单需求方法,提高订单需求的预测精度。曲艺 [4] 采用BP算法,针对A公司笔记本电脑需求预测的问题,基于A公司过去一年出货数据对A公司笔记本电脑的订单进行预测,并提出相应的库存管理意见。孙琳 [5] 构建了订单装配(ATO)生产模式下的产品订单的NRA时间序列预测模型,并于指数平滑法、移动平均法、灰色预测进行对比,得出NRA神经网络对于非线性、非稳定订单量时间序列来说预测效果更好。国外的学者Kamala Aliyeva [6] 通过添加Z信息量,建立Z-回归模型的方式实现制造业需求量的预测。A Jayant,A Agarwal [7] 等人使用了支持向量机的机器学习方法建立自回归模型预测摩托车订单量。
综上所述现有文献企业数据维度高、基数大,使用传统统计学的方法进行预测的效率较低;而使用深度学习的算法生成的模型又通常无法给出合理的解释。LightGBM作为树模型,其本身具有较强的可解释性,并且使用该算法在处理样本量大、维度高的数据时,可以准确并快速地得到结果,解决了传统统计学模型在处理企业海量数据时效率低、耗时长的问题。本文对产品的不同因素进行深入分析,通过建立基于LightGBM的模型来对订单需求量进行预测。有利于公司做出相应策略的结果,为优化供应链管理提供保障依据。
2. 相关理论
2.1. 需求预测相关理论
需求预测是指通过调查研究,充分利用已有数据,结合相关影响因素,寻找合适、科学的方法,建立恰当的数学模型,最后对未来需求发展趋势做出准确的判断 [6] 。需求预测对企业原材料采购、生产计划安排、库存管理、销售目标等方面都有重大影响,通过正确的需求预测,能够更好地制定企业未来的发展战略,从而使企业得到更有利的发展。
2.2. LightGBM相关理论
虽然传统的Boosting算法(如GBDT、XGBoost等)已经有了相当好的效率,但传统的Boosting算法需要对每一个特征的每一个分裂点都要遍历所有的样本点计算信息增益从而选择最好的切分点,因此其计算复杂度将会受到特征数量和数据量的双重影响。这在现如今样本量和数据维度不断增大的环境下,其遍历次数多、限制数据大小和耗时长的弊端越发显现出来,这在面对工业级的海量数据时,使用普通的Boosting模型普遍是不能满足其需求的。
而LightGBM (Light Gradient Boosting Machine) [6] 作为一个实现GBDT算法的框架,可以有效地解决这种在大样本高纬度环境下的耗时问题。LightGBM主要集成了两种算法单边梯度采样(GOSS)和互斥特征捆绑(EFB)对模型进行优化,同时使用了直方图算法做差加速。
(1) GOSS算法
GOSS是一种能够在减少数据量和模型精度上保持平衡的算法,其主要思想就是使梯度大的样本点在信息增益的计算上起主要的作用,即这些梯度大的样本点会贡献出更多的信息增益。为了保持信息增益评估的精度,对样本采样时应保留梯度大的样本点,并对梯度小的样本点按比例进行随机采样。
(2) EFB算法
LightGBM在对数据进行精简的同时,对特征也进行了降维处理,从而提高模型精度。高维的数据通常是稀疏的,而且这种稀疏特征空间中许多特征是互斥的,为了尽可能在不损失模型精度的同时减少特征维度,可以将互斥的特征绑定在一起成为同一个特征,这样做能够极大的加速GBDT算法的训练过程而且不会损失精度。
LightGBM关于互斥特征的合并用到了直方图(Histogram)算法。其基本思想是先把连续的特征值离散化成k个整数,同时构造一个宽度为k的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。
使用GOSS算法和EFB算法的梯度提升树称之为LightGBM集成算法。
2.3. 评价指标相关理论
本文使用了RMSE均方根误差,MAE平均绝对误差和MAPE平均绝对百分比误差作为评价指标。RMSE用于反映估计量与被估计量之间的差异程度;MAE计算各测量值的绝对偏差的平均值,可以准确反映实际预测误差的大;MAPE用于衡量时间序列值预测结果的准确性。
RMSE均方根误差公式为:
MAE平均绝对误差公式为:
MAPE平均绝对百分比误差公式为:
2.4. LightGBM建模流程
LightGBM模型的构建步骤如图1所示:将原始数据进行预处理后构建特征工程,创造新的特征因子用LightGBM模型训练。调整参数使模型达到最优,最后预测需求量,返回预测结果评价。
3. LightGBM实证分析预测订单需求量
3.1. 数据来源
本文选取了国内某大型制造企业2015年9月1日到2018年12月20日面向经销商的共597694条记录、8个信息量,数据真实可靠。取2015年9月1日到2018年8月31日的出货数据和产品参数数据作为训练集训练模型,利用2018年9月1日到2018年12月20日的产品参数进行预测,预测不同品类产品的需求量。
对数据进行清洗,删除冗余数据和异常值并用均值插值法填补缺失值保证序列连续。由于产品需求量的时效性很强,在原有数据基础上,引入节假日、四季、时间段等时序特征。将经过数据预处理并新增特征因子的新数据集运用LightGBM模型计算对产品需求量影响较大的特征因子,选出特征重要性前20的特征因子参数组合到一起,进行标准化和编码处理,得到最终数据集。
3.2. 描述性数据分析
将通过以上处理得到的数据合并成新数据集,并对其进行描述性统计分析,得到结果如表1所示。
Table 1. Descriptive data analysis table
表1. 描述性数据分析表
考虑到节假日对产品需求量也会有一定影响,因而本文选取了国内的法定节假日进行分析,对比节假日和非节假日的订单需求量,并进行可视化分析如图2所示:
Figure 2. Line chart of holiday product demand in 2018
图2. 2018年节假日产品需求量折线图
图2选取了2018年的数据分析其节假日的和非节假日的产品订单需求量,非节假日的订单需求量远远高于节假日的订单需求量。这表明在节假日产品订单需求会降低,可能是由于法定节假日企业大多休假,导致订单出货数量减少。
不同的商品在不同季节会有不同的需求量,所以季节因素对产品订单销售需求量也会造成一定的影响,对时间序列提取出季节因素并绘制出图3。
可以看到,冬天的订单需求量要高于其他季节,而且会随着温度的升高而降低。考虑到可能是由于冬天的促销和节假日较多,消费需求也会增高。
Figure 3. Demand proportion diagram by season
图3. 各季节需求比例图
3.3. LightGBM模型构建
以2015年9月1日到2018年8月31日的数据作为训练集,2018年9月1日到2018年12月20日共111天的数据作为验证集,分别构建XGBoost、CatBoost和LightBGM模型,可视化预测值与真实值的对比图,检验模型预测效果。
3.3.1. LightGBM模型参数调优
本文所选用的模型参数众多,对模型精度影响较大,参数选择不恰当出现欠拟合或者过拟合的问题,为了提高模型精度,同时保证模型的泛化能力,调参是模型建立中不可或缺的一部分,对于参数的选择,主要选择网格搜索配合经验微调调参,可以保证在指定参数范围内找出精度最高的参数。
基本调参过程如下:首先选取较高的学习率,数值在0.1附近,这么做可以加快收敛速度,对于其他参数调整很有必要。其次是对决策树基本参数的调整,可以有效提高模型精度,最后调整正则化参数,可以防止模型过拟合。因此,在选定较高的学习率后,第一步确定数最大深度和决策树数目,第二步确定最小叶子节点样本权重和特征值离散化分段数,这一步是为了防止过拟合。第四步确定样本采样率,这一步可以用来加速训练并且处理过拟合数据。第五步确定L1正则化参数和分裂最小增益阈值。其他参数根据网格搜索遍历参数选择最优参数,最后降低学习率,构建最优预测模型。
LightGBM模型的最终调参结果如表2所示。
Table 2. LightGBM parameter list
表2. LightGBM调参表
用最优参数建模对验证集20天的数据进行预测,AUC有91.42%,很接近1.0。与真实值对比,最大的MAPE是7.118%,最小MAPE是0.0012%,平均MAPE为0.3541%,从图4上可以看出误差整体波动幅度较小,具有较好的拟合效果。
3.3.2. 各模型验证集效果对比
XGBoost模型和CatBoost模型与LightGBM模型和真实数据的对比图和评价指标表如表3所示。
Table 3. Comparison table of model prediction effect
表3. 模型预测效果对比表
通过上述不同模型拟合结果和评价指标对比可知,XGBoost模型的预测精确度最低,预测值与真实值的拟合度最差,CatBoost模型次之,LightGBM模型预测效果最好。相比XGBoost和CatBoost,LighrGBM的MAE分别减少1957.45和800.32,RMSE分别减少1486.44和505.79,MAPE分别减少0.4889%和0.3691%,在训练集上,LightGBM拟合效果最好,CatBoost其次,最差的是XGBoost,各项指标几乎是LightGBM的2.5倍,从运行时间看,CatBoost > XGBoost > LightGBM,三种模型都是基于集成的决策树模型,因此运行时间的差距并不大,影响运行时间的主要因素是学习率和数据特征分割数,模型本身在处理大规模数据集时具有优势,从中得出,LightGBM在预测方面表现出明显的优势,可以更好地进行本文数据的预测。
3.3.3. 预测2019年1月至3月的需求量
因此,LightGBM适用于产品订单的需求量预测,我们基于上述参数范围内对2019年1月到3月各销售地区一千七百多种的品类分别进行月度需求量的预测,从而可以预测出每个月的产品订单需求量。企业可以根据预测的订单需求量预生产或安排生产计划。举产品品类20002来说明预测的结果,如表4。
Table 4. Product 20002 forecast overview
表4. 产品20002预测概况
表4为产品品类20002在LightGBM模型下预测2019年1月至3月的月度订单需求量,可以看出在不同销售地区,同样品类产品有不同的订单需求量。利用LightGBM模型预测可以帮助厂商提早指定生产计划,优化产业链。
4. 总结
本文通过结合企业面向经销商的各类产品需求量的历史数据与机器学习算法进行模型预测,主要目的是构建最优拟合模型预测经销商对各类产品需求量的短期预测。最终得到如下结论:
(1) 本文将时间特征数据和产品数据按照销售地区和产品编码分组合并,将合并后的特征因子放入机器学习算法中预测未来20天的产品需求量,通过对模型训练集的MAPE的计算,模型得到了较好的预测效果,可见按本文的方法预测具有一定和合理性和正确性。
(2) 在采用XGBoost、CatBoost、LightGBM三种机器学习算法最优调参后,LightGBM的MAPE值分别减少0.4889%和0.3691%,效果好于其他算法,预测数据的精度更高,预测值与真实值的拟合度也更高,在预测能力上表现出明显的优势。
本文能利用历史数据对商品需求量进行预测,可以帮助产家有效了解供求关系,制定生产计划,优化供应链。基于历史数据对未来短期数据预测思路清晰,算法具有可迁移性,可以作为其他场合的数据预测的参考。
基金项目
项目来源:福建省科技厅;
项目名称:基于ATOT技术的智能养老系统设计与开发;
项目编号:2023350104000282。
参考文献
NOTES
*通讯作者。