当前位置: 首页 > news >正文

【2023MathorCup大数据竞赛】B题完整解答过程(思路+模型文档+代码+结果)

B题完整解答过程

  • 写在最后
  • 技术文档(部分)
    • 问题分析
    • 假设
    • 符号说明
    • 1 基于自适应ARIMA-LR模型的需求量预测(问题一第一小问)
      • 1.1 ARIMA模型的建立
      • 1.2 LR模型的建立
      • 1.3 自适应混合ARIMA-LR模型的建立
      • 1.4 ARIMA模型的求解
      • 1.5 LR模型的求解
  • 代码(部分)
    • 第一问
      • Q1_1.m
      • Q1_2.m
      • Q1_3_main.m
      • Q1_4.m
      • Q1_5.m
      • repair.m
      • selection.m
  • 结果
    • 完整
    • Q1
    • Q2
    • Q3

写在最后

经过整整一天半的时间,B题全部解答过程已经完成啦,包括完整的代码与运行结果,还有分析目文档,欢迎大家交流讨论~

技术文档(部分)

问题分析

对于问题一,首先题目要求预测出各商家在各仓库的商品2023-05-16至2023-05-30的需求量。在大框架下,该问题属于一个时间序列预测问题。可以采用AR、MA、ARIMA等模型进行预测。但是序列中存在一定的突发性波动或是非线性规律,故考虑采用混合模型对需求量进行预测。可以根据某一段时期的预测准确度评价所设计的算法的优越性。同时,也可以根据在测试集中的预测准确度计算混合模型的混合权重,达到自适应的目的。
在对序列进行预测后,题目要求对时间序列进行分类,其实是需要确定分类的依据指标。对于该问可以先确立一系列候选指标,然后采用智能优化算法以最大化组内相似度为目的对分类指标的选取进行优化。
对于问题二,题目要求对新出现的商家+仓库+商品维度的预测维度进行预测。求解该问题时,应先提取该序列的特征,通过与已有序列进行两阶段匹配。在第一阶段,通过第一问所选取的分类指标确定较为接近的序列组;在第二阶段,通过具体的相似度选取最为相似的序列。此时,可以对选取的序列进行调整后与新序列进行拼接,再通过第一问所设计的算法对新序列进行预测。
对于问题三,题目要求对大型促销期间(2023-06-01至2023-06-20)的需求量数据进行预测。对于该问题,可以先提取出去趋势波动,其中趋势可用一次回归进行表征。然后用回归模型对待预测序列进行预测,再在预测值的基础上叠加波动项,形成最后大型促销期间的最终预测值

假设

1、假设市场价格完全由供需关系决定,不受政策管控影响。
2、假设不出现突发不可抗灾害导致的销售量爆发等情况的发生。
3、假设供应链关系大体稳定不变。

符号说明

在这里插入图片描述

1 基于自适应ARIMA-LR模型的需求量预测(问题一第一小问)

1.1 ARIMA模型的建立

在这里插入图片描述

1.2 LR模型的建立

在这里插入图片描述

1.3 自适应混合ARIMA-LR模型的建立

对于每一预测算法,均通过部分序列作为测试集。本文所设计的混合算法的混合思想主要为:在往期的预测中性能越好则在未来的预测中的权重就越高,对预测值的贡献度就越高。
在这里插入图片描述

1.4 ARIMA模型的求解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上图中可以看出,ARIMA模型大致描述出了出货量的趋势走向及部分波动。但是仍有许多波动没有在预测中被反应出来,仍需进一步改进。

1.5 LR模型的求解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码(部分)

第一问

Q1_1.m

在这里插入图片描述

Q1_2.m

在这里插入图片描述

Q1_3_main.m

在这里插入图片描述

Q1_4.m

在这里插入图片描述

Q1_5.m

在这里插入图片描述

repair.m

在这里插入图片描述

selection.m

在这里插入图片描述

结果

完整

在这里插入图片描述

Q1

在这里插入图片描述

Q2

在这里插入图片描述

Q3

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 【C语言】文件操作详解
  • 性能测试工具——Jmeter的安装【超详细】
  • Pytorch:model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别
  • C语言之判断与循环语句知识点总结
  • 基于群居蜘蛛算法的无人机航迹规划
  • PostgreSQL 的 Replication Slot分析研究
  • 数据结构实验3
  • 树与二叉树(考研版)
  • 基于Kubesphere容器云平台物联网云平台Devops实践
  • RabbitMQ的交换机(原理及代码实现)
  • WPF:自定义按钮模板
  • python基础语法(十一)
  • 研发效能认证学员作品:快速进行持续集成应用实践丨IDCF
  • 使用pycharm远程连接到Linux服务器进行开发
  • ES6中数值扩展
  • docker容器内的网络抓包
  • Mybatis初体验
  • Octave 入门
  • Promise初体验
  • Spring Cloud中负载均衡器概览
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 包装类对象
  • 技术:超级实用的电脑小技巧
  • 如何使用 JavaScript 解析 URL
  • 十年未变!安全,谁之责?(下)
  • 使用SAX解析XML
  • 我是如何设计 Upload 上传组件的
  • 移动端解决方案学习记录
  • 在weex里面使用chart图表
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​queue --- 一个同步的队列类​
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计大学生兼职系统
  • (学习日记)2024.01.09
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)关于pipe()的详细解析
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net Stream篇(六)
  • .NET 中 GetProcess 相关方法的性能
  • .NET4.0并行计算技术基础(1)
  • .Net中间语言BeforeFieldInit
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • /var/spool/postfix/maildrop 下有大量文件