基于Stacking集成学习的商品销量预测研究论文

2024-06-20 11:31:24 来源: 作者:zhoudanni
摘要:销量预测准确度的提升能够帮助电商企业更有效地规划库存,从而提高供应链管理的效率。文中利用Stacking集成学习方法融合多模型来预测销量,研究通过对基学习器进行选择,以RF、SVM、XGBoost、LSTM算法为第一层模型,线性回归为第二层模型,通过历史销售数据集进行验证。研究发现,相较于单一模型,Stacking集成学习方法的预测效果更优。此研究方法可以有效融合多种模型优势,得到更准确的销量预测结果,从而为电商企业制定库存和生产计划提供依据。
【摘要】销量预测准确度的提升能够帮助电商企业更有效地规划库存,从而提高供应链管理的效率。文中利用Stacking集成学习方法融合多模型来预测销量,研究通过对基学习器进行选择,以RF、SVM、XGBoost、LSTM算法为第一层模型,线性回归为第二层模型,通过历史销售数据集进行验证。研究发现,相较于单一模型,Stacking集成学习方法的预测效果更优。此研究方法可以有效融合多种模型优势,得到更准确的销量预测结果,从而为电商企业制定库存和生产计划提供依据。
【关键词】销量预测;Stacking集成学习;LSTM;XGBoost
1引言
随着电商行业的快速发展,电商企业正面临愈加激烈的竞争和挑战。对于电商企业而言,销量预测的精确性对于库存规划和供应链运营效率的提升至关重要。当前电商企业销售数据特征维度多样化、数据量庞大,传统的统计方法无法完全捕捉数据的非线性关系和复杂性[1],这使得传统的预测方法面临挑战。
但随着信息技术的发展,人工智能和机器学习算法成为解决这一问题的有效途径。Loureiro等[2]利用深度学习模型来预测零售服装市场的销量,研究表明,深度学习预测结果优于传统模型。吴娟娟等[3]针对大规模序列预测问题提出基于记忆机理的LSTM模型,并运用销售额数据进行验证,实验证明该LSTM模型相较于传统时间序列模型表现更优。通过众多学者的研究结论发现,机器学习明显优于传统时序模型,能够有效地处理高维数据和特征间的非线性关系,从而得到更准确的预测结果。随着单模型预测性能的提升空间逐渐变小,一些研究开始利用模型组合来预测销量。组合模型能够使单个模型之间性能互补,发挥各自优势,以此来提高整体预测效果。冯晨,陈志德[4]提出了一种ARIMA-XGBoost-LSTM加权组合方法,对具有多个影响因素的商品销售序列进行预测,实验结果表明加权组合的模型预测精度优于其它三种单一模型。王逸文,王维莉[5]提出了一种长短期记忆网络与正则化极限学习机的组合模型LSTM-RELM用来预测日商品交易总额,结果表明,相比于传统单一模型与其他组合模型,该模型预测的准确性和运行速度都更加优秀。目前,多数研究都是通过对模型进行加权的方式进行模型组合,虽然计算比较简单,但是权重的选择对最终结果有很大影响。此外,当复杂问题和不同模型表现差异较大时,权重的确定也较为困难。
因此,本文运用Stacking集成学习算法,将多个不同类型的基模型融合在一起,以提升整体的预测准确性和泛化能力,并对基学习器进行选择,确定优秀基学习器集合,进一步提升销量预测的准确性,最终实验验证了算法的有效性。本文为电商企业提供了一种高效的销量预测方法,能够帮助企业规划库存、提高供应链管理效率[6]。
2 Stacking集成学习构建
2.1 Stacking集成学习
Stacking是一种集成学习方法,旨在将多个不同类型的基模型的预测结果进行组合,以提高预测性能。其基本原理是通过使用多层次的模型结构,将第一层的基模型的预测结果作为输入,进一步训练得到一个元模型,用于整体的预测。
2.2 Stacking集成学习过程构建
Stacking集成学习构建过程如图1和图2所示,具体过程如下:
①先将商品历史销售数据集划分为训练集T和测试集D两部分,然后再将训练集数据按照时间顺序划分为5个相同大小的子集,分别为T1、T2、T3、T4和T5,其中T1为验证集。
②对第一层的基学习器进行训练。以XGBoost为例,通过五折交叉验证的方式对其进行训练,T1作为验证集,T2、T3、T4、T5为训练集,将训练好的模型在测试集D上进行预测,这样得到验证集T1的预测值r1和测试集D的预测值p1。
③同理,将T2作为验证集进行训练,对T2和D中样本进行预测,得到T2的预测值r2和D的预测值p2。重复操作,得到五个验证集的预测结果r1、r2、r3、r4、r5,然后将其合并组成R1。将五个测试集预测结果p1、p2、p3、p4、p5取均值得到P1。
④训练其余基学习器。重复步骤②和③,分别得到T的预测结果R2、R3、R4,它们将是元学习器训练集的输入特征。D的预测结果P2、P3、P4为测试集的输入特征。
⑤将基学习器得到的预测值进行组合,获得新的训练集R和新的测试集P。将R作为元学习器的输入特征,进行元学习器的训练,并对测试集P进行预测,最终得到商品销量预测结果,实现对基学习器学习能力的综合。
3实验数据
3.1数据预处理
本文的数据来自阿里巴巴天猫提供的某店铺每日销售数据集,时间跨度为2018年6月17日到2021年11月5日。每个样本数据包括日期、浏览数、访客数、平均停留时间、价格、跳失率、拍下金额、拍下件数、成交笔数、成交商品件数、搜索量等共22个维度。
本文实验的商品数据波动很大,如图3所示。商品的销量在一些特殊日期出现了峰值,这是因为平台进行促销活动,如618、双十一、双十二等。
①数据异常值处理。
在商品销售数据集中会出现某些特征值过大或过小,与其余数据显著不同的情况。本文使用异常值前后相邻的6项数据的平均值来替换异常值。
②缺失值处理。
通过对电商历史销售数据进行分析发现,数据集存在许多缺失值。本文使用缺失数据前后相邻的5项数据的平均值来填充缺失值。
③数据归一化。
数据归一化将不同量纲的数据变换到相同的量纲范围内,同时能够加快数据的运算速度[7-8]。本文将特征变量的范围转换到[0,1]之间,这种处理有助于确保不同特征的数值范围在相似的尺度上,避免了特征之间的量纲差异,从而更有利于模型的训练和优化。其数学表达式如(1)所示:
3.2特征选择
当前销量预测数据集中包含了大量的特征,其中有些特征与商品的销量相关性不高,不仅会增加计算量,还会影响模型性能的发挥[9]。因此,需要进行特征选择,删除冗余特征,以减少计算量并提高模型的预测性能。本文采用皮尔逊(Pearson)相关系数指标分析各特征之间的相关性,计算公式如下:
通过Pearson相关系数分析,只有关联度大于0.50的特征才能被认为和目标变量相关。在销量数据集中,浏览量、收藏数、访客量、人均停留时间、折扣、跳失率这些特征和销量都具有较强的关联度,因此,将这些特征选择出来作为影响销量的特征。
3.3特征构建
本文使用移动滑窗法对选择后的特征和销量进行特征构建。因为商品销量数据集是时间序列,销量不仅受当前特征的影响,还受到各特征历史数据的影响,例如用户行为特征浏览量、收藏量对销量的影响具有滞后性,且各影响因素距离时间的不同对销量的影响也不同,因此使用移动滑窗法统计这些特征过去的数据。特征构建步骤如下:
①将时间窗口设置为七天,计算窗口期内各影响因素的总和、最大值、最小值和均值。这些数据将作为销量预测的特征变量。
②将时间窗口同样设置为七天,计算窗口期内商品日销量的总和、最大值、最小值、均值和标准差,将这些数据作为销量预测的特征变量。
4实验分析
4.1模型选择
本章选择了多个不同类型的单模型来分析其销量预测的性能,具体模型为XGBoost、LSTM、SVM、GBDT、RF和KNN。根据以往的研究经验,XGBoost和LSTM在时间序列处理和销量预测中有着较为突出的表现。
①XGBoost。
XGBoost适用于处理非线性关系和复杂模式,能够有效处理高维度、稀疏的特征空间,这对于销售预测中涉及多个产品、渠道和时间特征的情况尤为重要。XGBoost提供了直观的特征重要性解释,有助于理解模型对销售预测中不同特征的影响。XGBoost优异的性能使其在商品销售预测中表现突出。
②LSTM。
长短期记忆网络(Long Short-Term Memory,LSTM)能够应对时间序列数据中的长期依赖关系[10],特别适用于捕捉历史销售数据中的长期趋势、季节性和周期性。通过引入记忆单元,LSTM可以选择性地记住和遗忘信息,有效解决传统循环神经网络中的梯度消失问题。LSTM可以处理多个时间步的信息,更好地预测未来的销售情况。
4.2评价指标
本文使用平均绝对误差MAE(Mean Absolute Error)、均方根误差RMSE(Root Mean Square Error)、平均绝对百分比误差MAPE(Mean Absolute Percentage Error)这三个指标来评估模型的预测性能。计算公式如下:
其中,yi和yi分别表示预测值和真实值。
4.3单模型预测结果分析
根据上小节特征选择得出的最优特征子集训练单模型,将数据集分为训练集和测试集,测试集为后56天的数据,即利用前面的历史数据,来对后面56天的销量进行预测。本小节选择了多种不同类型的单模型,将预测的结果进行对比分析,为接下来构建Stacking集成学习的基模型的选择奠定基础。单模型分别为XGBoost、LSTM、SVM、GBDT、RF和KNN,采用五折交叉验证的方式对各模型进行训练,并使用网格搜索算法对模型的超参数进行寻优。各模型的超参数和预测评价指标如表1所示。
由表1可知,所有单模型预测的精确度都达到了85%以上。其中,单模型预测中表现最好的是XGBoost模型,RMSE、MAE和MAPE分别为72.60、54.62和10.12%。这是因为XGBoost是一种梯度提升树模型,能够有效地处理非线性关系和复杂和多样化的变化趋势。预测效果比较差的是KNN模型,其所有的预测指标都排在最后,这可能与模型结构和超参数设置较为简单有关。
4.4 Stacking集成学习结果分析
为了使Stacking性能达到最优,需要从各基模型学习性能与各模型之间关联度和差异度两方面进行分析[11]。因此,本文提出在基模型和元模型的选择上综合以下规则:
①预测性能较好的基学习器有助于提高模型整体预测效果,故应当在Stacking的第一层选择预测精度较高的方法来训练基学习器。
②在基学习器的数量方面,基学习器过少难以实现各训练方法互补,过多则会使模型冗余。通常选择3~4个不同的模型对Stacking第一层的基学习器进行训练[12]。
③在基学习器的差异性方面,应选择原理差异较大的方法来训练基学习器。从不同的角度来训练数据,可以最大程度地综合不同方法的优越性能,进一步提升预测性能[13]。
④在模型的泛化能力方面,应当在模型的第二层选择泛化能力较强的模型来训练元学习器,以改善第一层训练结果所产生的预测偏差[14]。
通过对上一节单模型预测结果进行比较分析,选择预测准确率排名前五的模型,分别是XGBoost、LSTM、SVM、RF、GBDT,然后对这五种模型进行误差相关性分析,分析模型的差异性。本文依然采用Pearson相关系数分析相关性指标,各算法误差相关性分析如图4所示。
由图4分析可知,各模型的误差相关性大都在0.50以上,这是因为各模型在训练过程中都会学习到数据中的固有误差。XGBoost、GBDT算法的误差相关度最高,这可能是由于XGBoost本身就是在GBDT模型的基础上改进而来的,其训练学习方式存在较强相似性。因此,在这两个模型中只保留性能较好的XGBoost模型。LSTM、SVM、RF学习数据结构和模式时的方法有显著的不同,因此误差相关性也较低。
根据上述分析,最终选择XGBoost、LSTM、SVM、RF这4种算法作为Stacking集成学习中的基模型。由于本文预测的需求为连续型数值,因此这里选用线性回归作为Stacking集成学习第二层中的元模型。将选择的基模型和元模型按照第二章的方式来构建Stacking集成学习,最终得到融合了多模型的预测结果,将模型在测试集上的预测结果和实际值及其他单模型进行对比,结果如图5和表2所示。其中,图5是以周为统计单位的结果对比图,其目的是便于企业后续根据周的预测结果做好库存规划和订货策略。
由表2可以看出,Stacking模型取得了比单一模型更好的预测性能,误差率为8.55%。而且在一些异常值和非线性关系上,Stacking模型也能够处理得很好,这也证明了Stacking模型充分发挥了各算法的优势,并通过算法层面上的结合,改善了各模型预测效果较差的部分。
Stacking集成模型相较于单模型具有明显优势,预测精度得到了显著提升。首先,Stacking模型能够充分发挥各个算法自身的优势,提高了模型整体的泛化性和鲁棒性。其次,单模型在训练过程中可能陷入局部最优,而通过运行多个基学习器并使其结合,能有效减少陷入局部最小点的风险[15]。
5结论
本文利用Stacking集成学习方法,通过融合多个基模型来对电商公司商品销量进行预测。为使Stacking集成学习更优,根据模型预测性能和差异度,选择XGBoost、LSTM、SVM、RF作为基学习器,线性回归为元学习器。研究结果表明,Stacking集成学习的预测准确度明显优于单模型,同时模型的泛化性也得到了提升。模型的预测结果可以为电商企业制定库存计划和订货策略提供更可靠的依据。
虽然本文的Stacking算法在销量预测中表现优异,但研究还存在一些不足。在数据预处理和特征构建时使用的方法较为简单,后续还需改进方法从数据集中提取更多有效的特征。商品销量的影响因素有很多,例如竞品的销售信息、商品评论的情感分析,将来可以从这些方面考虑构造特征,挖掘更多信息。
[参考文献]
[1]黄鸿云,刘卫校,丁佐华.基于多维灰色模型及神经网络的销售预测[J].软件学报,2019,30(04):1031-1044.
[2]Loureiro A L D,Miguéis V L,Da Silva L F M.Exploring the use of deep neural networks for sales forecasting in fashion retail[J].Decision Support Systems,2018,114:81-93.
[3]吴娟娟,任帅,张卫钢,等.一种基于LSTM模型的日销售额预测方法[J].计算机技术与发展,2020,30(02):133-137.
[4]冯晨,陈志德.基于XGBoost和LSTM加权组合模型在销售预测的应用[J].计算机系统应用,2019,28(10):226-232.
[5]王逸文,王维莉.基于LSTM-RELM组合模型的电商GMV预测研究[J].计算机工程与应用,2023,59(10):321-327.
[6]朱曼宇,张峥.基于GM(1,1)模型的新能源汽车销量预测研究[J].物流工程与管理,2023,45(02):138-141.
[7]王铭萱.基于灰色关联分析与BP神经网络的服装销售预测模型研究[D].天津:天津工业大学,2021.
[8]Fan Z P,Che Y J,Chen Z Y.Product sales forecasting using online reviews and historical sales data:A method combining the Bass model and sentiment analysis[J].Journal of Business Research,2017,74:90-100.
[9]李由之,胡志华,陈春,等.基于双长短期记忆网络组合的网络货运平台成交定价预测模型[J].计算机应用,2022,42(05):1616-1623.
[10]靳猷.基于LSTM循环神经网络的停车需求预测研究[J].物流工程与管理,2020,42(10):147-150.
[11]Banerjee N,Morton A,Akartunal K.Passenger demand forecasting in scheduled transportation[J].European Journal of Operational Research,2020,286(3):797-810.
[12]Correia A,Lopes C,Costa e Silva E,et al.A multi-model methodology for forecasting sales and returns of liquefied petroleum gas cylinders[J].Neural Computing and Applications,2020,32(16):12643-12669.
[13]刘波,秦川,鞠平,等.基于XGBoost与Stacking模型融合的短期母线负荷预测[J].电力自动化设备,2020,40(03):147-153.
[14]石颖.基于数据挖掘的用户负荷曲线分析与负荷预测技术研究[D].广州:华南理工大学,2021.
[15]Chen P,Liu R,Aihara K,et al.Autoreservoir computing for multistep ahead prediction based on the spatiotemporal information transformation[J].Nature Communications,2020,11(1):4568.
