问题一:使用附件 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值,以评估预测性能。
最后,通过散点图展示了不同聚类的预测需求量。
问题二:现有一些新出现的商家+仓库+商品维度(附件 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)中。
问题三:每年 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天预测值。
结果中,商家、仓库、商品等信息被添加到预测数据中。
文章来源:https://www.toymoban.com/news/detail-729063.html
完整附件内容:
文章来源地址https://www.toymoban.com/news/detail-729063.html
到了这里,关于2023 年 MathorCup 高校数学建模挑战赛--赛道 B:电商零售商家需求预测及库存优化问题完整思路以及源代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!