2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码

电商平台存在着上千个商家,他们会将商品货物放在电商配套的仓库,
电商平台会对这些货物进行统一管理。通过科学的管理手段和智能决策,
大数据智能驱动的供应链可以显著降低库存成本,同时保证商品的按时履
约。一般来说,以上供应链优化问题会包含以下方面:
需求预测
预测往往是智能供应链的决策基础,它可以让管理者提前预知各地的
需求,从而将库存提前放在靠近需求的仓库中,此时的预测任务为:根据
历史一段时间的需求量,预测各仓库中各商品未来需求,“预测维度”即为
不同商家在各仓库中存放的各种商品每天的数量。一般来说,企业会首先
根据数据的历史情况,分析出需求量序列的数理特征,对相似的需求量序
列进行归类,并根据分类结果做到更加精准的预测。预测准确率有很多评
价指标,较常用的指标为 1-wmape ,定义如下:
1 − wmape = 1 −
σ |? ? − ? ? |
σ ? ?
其中 ? ? 为第 ? 个序列(商家在各仓库中存放的各种商品每天的数量)的
真实需求量, ? ? 为第 ? 个序列的预测需求量。
然而,在实际的电商供应链预测任务中,常常会出现多种不同的问题。
例如,部分商品的销售时间过短、仓库存在新增或切换等情况,导致该预
测维度下历史数据过少;另外,部分大型促销期间货量的陡增并由此带来
的不规律性,也给需求量的精准预测带来了不小的难度。此时便需要通过
算法得到历史一般规律,找出相似的历史情况(如相似的仓或商品),从而
实现精准预测。
库存优化
为了有效管理库存水平,企业通常会制定各种库存策略来控制商品的
补货频次和补货量。定期盘点库存策略 (s S) 是一种常见的库存策略,其中 2
s 表示该种策略下的库存下限, S 为库存上限。在这种策略中,企业会每隔
一段固定时间查看库存水平,盘点之间的间隔设为盘点周期( NRT )。如果
在盘点时库存水平 T 低于最小库存水平 s ,则会将库存补充至 S ,此时的补
货量 Q = S − T ,如果在盘点时库存水平高于 s ,则不进行补充,直到下一
次库存盘点。同时需要考虑到,在每次发起补货后,补充的货物会经过一
定时间后才能到达当前仓库,这个时间间隔为提前期( LT )。
使用以上的库存策略,管理者需要对两个方面进行权衡取舍。一方面,
为了及时满足用户订单,公司需要保有大量库存以防止缺货;另一方面,
库存水位升高带来了过高的库存成本。库存优化的目标主要为:
1 )降低库存总持有成本,可由单位持有成本 h 得到(一件商品存储一
天产生的成本);
2 )满足服务水平:确保有足够的产品可以及时满足客户需求,降低总
缺货成本,可由缺货成本得到(每天每缺一件商品产生的成本);
3 )降低库存周转天数:库存周转天数越小,表示库存的流动性越好,
企业的库存管理效率越高。
服务水平及库存周转天数计算公式为:
服务水平= 被满足的商品件数
实际需求总件数
× 100%
存周转天数 = 期初库存数量 +
期末库存数量
?
× 计 计 算 算 时 时 间 间 段 段 内 内 总 天 销 数 量
现有一张电商零售商家的历史出货量表(附件 1 ),给出了历史 6 个月
各商家存放在电商不同仓库的商品每天的出货量。假设该出货量即为历史
各商品在各仓库的需求量。同时,还可以取到各商品、商家、仓库的信息
(附件 2-4 ),例如分类、品牌、生效日期等,这些信息的选择和引入会帮
助更好的预测并管理供应链中的库存。
初赛问题:

问题一:使用附件 1-4 中的数据,预测出各商家在各仓库的商品

2023-05-16 2023-05-30 的需求量,请将预测结果填写在结果表 1 并上传3 至竞赛平台,并对你们模型的预测性能进行评价。另外请讨论:根据数据 分析及建模过程,这些由商家、仓库、商品形成的时间序列如何分类,使同一类别在需求上的特征最为相似?

完整见文末附件

思路:
 

数据预处理:

首先,数据从附件1-4中合并,建立了一个包含多个商家、仓库和商品的时间序列数据集。

日期字段被转换为日期类型,并设置为索引。

时间序列预测:

通过循环遍历不同商家、仓库和商品的组合,进行时间序列预测。对于每个组合,模型使用ARIMA(自回归整合滑动平均模型)进行预测。

ARIMA是一种经典的时间序列分析和预测方法,它包括自回归(AR)部分、差分(I)部分和滑动平均(MA)部分。

在这里,用来训练模型的数据是过去的需求量时间序列。

一旦模型训练完成,它可以用于预测未来一段时间的需求量。

每个商家、仓库和商品的预测结果包括预测日期范围内的15天需求量。

计算1-WMAPE指标:这部分代码计算了1-WMAPE(一致加权平均百分比误差)指标来评估模型的性能。WMAPE度量了实际需求量和预测需求量之间的差距。

聚类分析:

接下来,通过K均值聚类(KMeans)对不同商家、仓库和商品的预测结果进行聚类分析。

K均值聚类是一种无监督学习方法,它可以将数据点分为不同的簇。

这里,簇的数量被设置为4。

聚类结果将商家、仓库和商品分为不同的簇,这意味着在同一簇中的商家、仓库和商品在需求量上具有相似的特征。这有助于识别不同类别的需求模式。

结果可视化:

通过绘制折线图,展示了每个商家在15天内的1-WMAPE值,以评估预测性能。

最后,通过散点图展示了不同聚类的预测需求量。

2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码_第1张图片2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码_第2张图片2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码_第3张图片

问题二:现有一些新出现的商家+仓库+商品维度(附件 5),导致这种情况出现的原因可能是新上市的商品,或是改变了某些商品所存放的仓库。请讨论这些新出现的预测维度如何通过历史附件 1 中的数据进行参考,找 到相似序列并完成这些维度在 2023-05-16 2023-05-30 的预测值。请把预 测结果填写在结果表 2,并上传至竞赛平台。

完整见文末附件

针对新出现的商家、仓库、商品组合进行需求量预测的示例,使用了时间序列预测方法(ARIMA)。以下是对这个建模过程的解释和数学思路:

数据预处理:

首先,将附件1中的历史数据(historical_data)和附件5中的新数据(new_data)读取并处理。日期字段被转换为日期类型。

时间序列预测:

对于每个新出现的商家、仓库、商品组合,通过查找历史数据中具有相同商家和仓库的组合,来找到相似序列。这是通过筛选历史数据来实现的,以匹配新数据中的商家和仓库。

一旦找到相似的历史数据,就可以使用ARIMA模型进行时间序列预测。

ARIMA模型的使用和参数选择(p, d, q)通常需要领域知识和实验来确定。

模型在历史数据上训练,然后用于预测未来15天的需求量。

预测结果被保存在一个新的DataFrame(forecast_data)中,包括商家、仓库、商品、日期和预测需求量。

所有新商家、仓库、商品组合的预测结果都被合并到一个结果DataFrame(result)中。

2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码_第4张图片

问题三:每年 6 月会出现规律性的大型促销,为需求量的精准预测以 及履约带来了很大的挑战。附件 6 给出了附件 1 对应的商家+仓库+商品维 度在去年双十一期间的需求量数据,请参考这些数据,给出 2023-06-01 至 2023-06-20 的预测值。请把预测结果填写在结果表 3,并上传至竞赛平台。

完整见文末附件

使用一次指数平滑法来预测需求量,特别是在具有促销效应的6月份期间。以下是对这个建模过程的解释和数学思路:

数据预处理:

首先,从附件1和附件6中读取数据,然后将它们合并成一个数据集(dtt)。

一次指数平滑法(Exponential Smoothing):

一次指数平滑法的数学公式如下:

Forecast(t) = alpha * Actual(t) + (1 - alpha) * Forecast(t-1)

其中,Forecast(t) 是在时间点 t 的预测值,Actual(t) 是在时间点 t 的实际观测值,Forecast(t-1) 是在时间点 t-1 的预测值。

在代码中,exponential_smoothing 函数用于执行一次指数平滑法。它根据提供的时间序列数据和平滑系数(alpha)来生成预测。

平滑系数(alpha)决定了新数据点与以前数据点的权重关系。较大的alpha值会使模型对过去数据更敏感,而较小的alpha值会使模型更加平滑。

预测过程:

对于每个商家、仓库、商品组合(key),按照组合分组。

针对每个组合,首先计算过去20天的需求量的一次指数平滑预测。这是通过调用 exponential_smoothing 函数来完成的。

然后,创建一个新的DataFrame(forecast_data),其中包含日期范围从2023-06-01至2023-06-20的20天预测值。

结果中,商家、仓库、商品等信息被添加到预测数据中。

2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码_第5张图片

完整附件内容:

2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码_第6张图片

你可能感兴趣的:(数学建模)