选题分析

问题C是一道偏数据分析题目,侧重考察预测类模型。题目中明确提到需要用“更优秀的智能人工智能算法”,明示要用到一些比较新的机器学习模型来完成预测。同时该题目也非常贴心地提供了数据,并分好了训练与测试集,22万的数据量也并不算大,个人笔记本完全可以跑起来。这道题就非常适合对机器学习比较熟悉的小伙伴选择,若想冲奖,单纯的套模型肯定不够好,需要贴合题意的数据预处理,以及多种模型的对比与分析,最好可以多模型融合或者模型创新。

题目翻译

随着公司不断创造商品销售额,其数据对其自身的营销规划、市场分析和物流规划具有重要意义。然而,影响销售预测的因素很多。传统的基于统计的测量模型,如时间序列模型,不适合现实。假设太多,导致预测结果不佳。因此,需要更优秀的智能人工智能算法来提高预测的准确性,从而帮助企业降低库存成本、缩短交货周期,并提高抵御风险的能力。

附件包含两类数据:商品历史销售数据、商品月度订单数据。商品历史需求销售数据提供商品代码、日期、是否销售、商品销售量。商品月度订单数据提供商品代码、商品类型、月份、订单数量、月初和月末的库存。(标签中的空值表示该产品当天没有销售)。

请建立一个数学模型来解决以下问题:

问题1:完成附件中数据的数据预处理,并解释预处理方法。

问题2:从统计分析来看,月初库存与月底库存之间是否存在明显的关系,以及商品类型对商品库存的影响是什么?

问题3:根据提供的样本建立模型,预测未来三个月的产品销售量,并测试预测模型。评估指标(准确度1)是每个月所有产品的平均准确度。在提交示例中写下您的预测结果,附件中给出了需要预测的产品和月份,预测销售量填写在标签中。

问题4:请扩展数据中存在的其他研究价值的描述,并根据之前的结论撰写不超过两页A4论文的商业报告。

(数据来源:http://challenge.xfyun.cn/topic/info?type=product-sales)

评估函数

题目拆解分析

题目给出四个小问,分别可概括如下:

(1)数据预处理

(2)变量之间的关系——>推测影响并分析

(3)建立预测模型

(4)扩展数据价值(语文建模)

首先题目中明确提到“传统的基于统计的测量模型,如时间序列模型,不适合现实。假设太多,导致预测结果不佳”,也就是说,不可以仅使用传统的时间序列模型(包括AR/MA等)。那么其他的经典预测模型有:灰色预测、逻辑回归、支持向量机回归等。但是考虑到给出的数据类型单一,想要排除时间这一变量十分困难,因此入手点应该是整合新的标签变量,并选取可以结合时间变量但并不单一依赖于时序的机器学习模型。

解题思路

(1)数据预处理:

由题意“标签中的空值表示该产品当天没有销售”,所以需要将空值补0,但是经检查,数据集中并无空值,猜测出题方默认已经转化了零值。

既然不需要对空缺值进行填充,那么预处理就变得简单了起来。为便于后续的对比,将Commodity demand training set和Commodity monthly order training set中的日期统一,即在Commodity demand training set中新增列“Year”和“Month”对应原先的“date”,代码如下:

import pandas as pd
df_demand=pd.read_csv('Commodity demand training set.csv',low_memory=False)
df_monthly=pd.read_csv('Commodity monthly order training set.csv',low_memory=False)
df_demand['Year']=df_demand['date'].apply(lambda x: int(x[0:4]))
df_demand['Month']=df_demand['date'].apply(lambda x: int(x[5:7]))

输出结果如下:

接下来,我们简单绘制图像观测数据特征(以1001号商品为例):

import matplotlib.pyplot as plt                  # plots
df_de1=df_demand[df_demand['product_id']==1001]
print(df_de1)
df_de1 = df_de1.set_index(['date'], drop=True)
plt.figure(figsize=(18, 6))
df_de1['label'].plot()
plt.title('merchandise sales (daily data)')
plt.grid(True)
plt.show() #1001商品销量时间序列可视化

product_id=1001,销量时序

不难看出,销量的数据跟时间有着较强的关系,且数据存在季节特征。

接着分别测验了id为1002和1003的数据,结果如下:

product_id=1002,销量时序

product_id=1003,销量时序

不难发现它们具有相似的季节特性,且都与时间高度相关。

(2)寻找变量之间的关系

同样以1001号的数据为例,绘制月初与月末库存的散点图:

id=1001

由图像很难看出有什么直接的关系。

接着我们忽略商品id的影响,尽可能选取多的数据点绘制散点图(由于图片显示限制,选取了部分但是较多的原始数据)

发现散点出现了聚集的趋势。

这里从简单统计学分析的角度寻找月初库存与月底库存之间是否存在明显的关系以及商品类型对商品库存的影响是难以得到精确的关系的,需要借助显著性分析。

利用SPSS获得变量间的相关系数,初步判断相关性是否显著。

(3)预测模型

一般销量预测,特征工程主要从这几个方面入手:时间相关特征、历史销量相关特征、价格相关特征。

可以采用神经网络模型或者决策树模型,这里笔者采用LightGBM。

同XGBoost类似,LightGBM依然是在GBDT算法框架下的一种改进实现,是一种基于决策树算法的快速、分布式、高性能的GBDT框架,主要说解决的痛点是面对高维度大数据时提高GBDT框架算法的效率和可扩展性。

“Light”主要体现在三个方面,即更少的样本、更少的特征、更少的内存,分别通过单边梯度采样(Gradient-based One-Side Sampling)、互斥特征合并(Exclusive Feature Bundling)、直方图算法(Histogram)三项技术实现。另外,在工程上面,LightGBM还在并行计算方面做了诸多的优化,支持特征并行和数据并行,并针对各自的并行方式做了优化,减少通信量。

训练的损失函数采用tweedie,由于存在间歇性需求的问题,很多商品的销量的销量为0,满足tweedie分布,因此采用tweedie作为损失函数效果要比mse要更好,由于时间序列的数据存在先后,只能用历史来预测未来,因此在交叉验证的时候就得格外小心,不能使用随机划分,因为这样会泄露未来的数据,但是时序也有自己的一套交叉验证方法,我这里使用了三折交叉。

使用三折交叉验证,建立三个LGB模型:

由于树模型无法捕捉到趋势,只能学习到历史的东西,不能外推,预测的时候就容易偏高或者偏低,所以最终的结果需要根据经验估计一个系数来修正预测误差。

https://mbd.pub/o/bread/mbd-Y5qamZdt

完整解题步骤、代码如上

2022年首届天府杯数学建模国际大赛-问题C: E-Commerce Product Sales Forecast电子商务产品销售预测思路详解相关推荐

  1. 2022年首届天府杯数学建模国际大赛问题AThe Force Overturning Of The Iron Pan:铁锅的力量翻转-解题思路分享

    Question A: The Force Overturning Of The Iron Pan. 典型的物理题,解题涉及到弹簧和力学知识,题目不多,涉及的物理知识也并不繁琐.想要答得出彩并不容易. ...

  2. 2022年数维杯数学建模C题 电动汽车充电站的部署优化策略求解全过程文档及程序

    2022年数维杯数学建模 C题 电动汽车充电站的部署优化策略 原题再现:   近年来,随着化石能源的逐渐枯竭和环境污染的不断加剧,电动汽车(EV)作为传统燃油车的主要替代品之一,得到了快速的发展.据国 ...

  3. 2022年数维杯数学建模A题银行效率评价与破产成因分析求解全过程文档及程序

    2022年数维杯数学建模 A题 银行效率评价与破产成因分析 原题再现:   银行在国家经济社会发展过程中扮演者重要的决策,银行的破产会对企业和个人造成众多不利的影响.相比国内的银行,国际银行的倒闭频次 ...

  4. 2022年数维杯数学建模B题 大规模新型冠状病毒疫情最优应对策略研究求解全过程文档及程序

    2022年数维杯数学建模 A题 大规模新型冠状病毒疫情最优应对策略研究 原题再现:   无论是 2022 年 3 月初在吉林省长春市大规模爆发的新型冠状病毒疫情(COVID-19),还是 4 月初在上 ...

  5. 2022小美赛认证杯数学建模完整成品

    2022年第十一届"认证杯"小美赛数学中国数学建模国际赛 2022年数学中国数学建模国际赛将于2022年12月02日上午8时-2022年12月06日上午8时举行. 比赛时间:(北京 ...

  6. 第二届天府杯数学建模竞赛

    2022年第二届天府杯全国大学生数学建模竞赛正式官宣为省级赛事!四川省生产力促进中心挂牌在四川省自然资源科学研究院,是国家级生产力促进中心和国家级技术转移中心.想参加数模竞赛的快来报名啦~是由成都锦城 ...

  7. 2022国赛高教杯数学建模A题B题(预测)

    2022国赛高教杯A题:   如何正确看待外企商品   随着经济和科技的发展,科技与生活融为一体,越来越多的智能科技化商品涌现在国内市场,有些商品例如手机已经成为当代人出门必用的付款.出行证明的媒介, ...

  8. 2022小美赛认证杯数学建模D题完整原创成品来啦!

    目录 摘要: 第一问: 第二问: 第三问: 第四问: 第五问: 第六问: 大家好呀,从昨天早上8点发布赛题到现在,我已经更新完成了小美赛D题的完整成品论文,全文29页,一些修改说明提醒6页,正文22页 ...

  9. 2022年第五届中青杯数学建模-时间序列预测模型及基于多特征条件下的决策优化

    开放三孩背景下的生育政策研究   众所周知,人口的数量和结构是影响社会经济发展的重要因素.我国经历了"计划生育"到"全面二孩",再到"放开三孩&quo ...

最新文章

  1. 彩虹物语服务器维护,11.19《彩虹物语》服务器维护及数据互通公告
  2. 导入jar包到Maven本地仓库(maven install jar)
  3. MVP:界面与业务逻辑分离在Winform中的应用
  4. 将hadoop源代码导入eclipse
  5. bzoj2005: [Noi2010]能量采集
  6. git工作区和缓存区概念理解
  7. [渝粤教育] 西南科技大学 畜牧概论 在线考试复习资料
  8. [Leedcode][JAVA][第289题][生命游戏]
  9. 采用递归求第n位数【C#】
  10. c语言数组最大可定义多少位_C语言求数组的最大值三种方法
  11. linux 域名对应ip 端口号,【原创】Linux基础之测试域名IP端口连通性
  12. 重装 IDEA 再也不怕了,一招搞定配置同步!
  13. pythoncad标注教程,AotuCAD国标字体和标注设置技巧图文教程
  14. u盘超级加密3000使用方法
  15. NFTScan x TiDB丨一栈式 HTAP 数据库为 Web3 数据服务提供毫秒级多维查询
  16. Linux嵌入式学习(简单 platform 设备驱动的实现)
  17. 【笔记】——MySQL数据库——基础知识-——快速回顾——(加深印象篇)
  18. 210学习日记(18)_ARM基础知识
  19. 7-69 猴子选大王
  20. 中国互联网出行分时租赁市场专题分析2016

热门文章

  1. word文档停止保护的密码是什么
  2. 当代程序员一定要知道的《网络安全法》
  3. android 中的悬浮按钮,Android 中FloatingActionButton(悬浮按钮)实例详解
  4. android光线传感器临界值,光照传感器的工作原理
  5. IDEA 中的断点颜色变成灰色
  6. android pad版本 yy,YY直播 在IOS端、Android端以及WEB端区别。
  7. codeforces1304F1 dp
  8. Openstack安装与部署(Havana)-ubuntu
  9. 【C语言】图片文件 预处理
  10. 二进制I/O流有哪几种及其区别