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

2023MathorCup高校数模挑战赛B题完整解题代码教程

赛道 B: 电商零售商家需求预测及库存优化问题

问题背景:

电商平台存在着上千个商家,他们会将商品货物放在电商配套的仓库, 电商平台会对这些货物进行统一管理。通过科学的管理手段和智能决策, 大数据智能驱动的供应链可以显著降低库存成本,同时保证商品的按时履约。一般来说,以上供应链优化问题会包含以下方面:

现有一张电商零售商家的历史出货量表(附件 1),给出了历史 6 个月 各商家存放在电商不同仓库的商品每天的出货量。假设该出货量即为历史 各商品在各仓库的需求量。同时,还可以取到各商品、商家、仓库的信息 (附件 2-4),例如分类、品牌、生效日期等,这些信息的选择和引入会帮助更好的预测并管理供应链中的库存。

初赛问题:

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

思路:

问题1大致可以分为2类解题的思路:
第一种就是基于附件1,用附件2~4的数据生成特征来形容附件1的(商家+仓库+ 商品维度),因为附件1商家+仓库+ 商品维度是文本标签,提取特征的唯一方法是独热编码,但是由于去重数太多了,所以直接独热编码不现实,但是这种思路准确率会非常不靠谱,因为很难拟合,我原先在做此类需求预测建模时,用此方法经常欠拟合。
第二种方法就是把商家+仓库+ 商品维度进行合并主键,一共是有1996个去除值,也就是分开建立1996个模型,然后分开预测,具体的解法如下:
step1:读取附件1数据,并按商家+仓库+ 商品维度进行合并主键


step2:以主键seller_16product_1187wh_33为例,筛选出该数据


step3:将数据按15天为一个周期进行合并,首先需要计算最近的日期与2023-05-15的差值,然后从这个差值开始合, 合并数据窗口大小为15,根据差值筛选出合并后的数据,生成对应的时间周期


step4:构建时序特征,这里我用的的典型的时序机器学习预测方法.时序数据滑窗转换用于将时间序列数据转为回归数据,简单地说,就是把一个单序列的数据变为X->Y的回归数据。如下图所示,步阶为2代表2个X(步阶多少就有多少个X),简单地说,就是用第1,2天的数据预测第3天,用第2,3天的数据预测第4天,以此类推。此种形式的数据进行回归就是时间序列预测问题。


step5:拆分训练集和测试集,创建多个模型并训练


step5:选择最好的那个模型对应的评价值(1-wmape),用最后一个周期的数据预测各商家在各仓库的商品2023-05- 16 至 2023-05-30 的需求量


step6:重复这个过程,分开对1996个主键进行预测与训练


step7:将结果整理输出
第二个小问我放到Q2进行一起求解

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

思路:

问题二其实就是要根据附件五的主键去找到在附件一最为相似的主键,那么直接去求这一个相关性,实际上数据维度是很大的,一种做法就是先进行聚类,聚类后。聚类后可以根据聚类的标签,然后在附件一的数据进行筛选,这个时候只需要计算筛选中的对应聚类的相关度就可以了,这样计算量会少很多,具体做法如下:
step1:附件1和附件5合并主键后,创建其对应需求量的时序特征


step2:附件1和附件5数据进行合并


step3:使用聚类分析,划分标签,这里我用了三种聚类方法,层次聚类、k-means、DBSCAN


step4:针对附件5第一个主键,与附件1数据筛选出共同聚类标签后,求相关系数,得到相关系数最大的主键即为附件5该数据与附件1数据最为相似的主键


step5:重复上面的过程,为附件5每一个主键找到对应在附件1中最为相似的主键


step6:找回前面的结果1数据,根据主键关联出附件5的需求预测量即可

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

思路:问题3与附件1类似,只不是要做更复杂的数据处理,需要构建以20为周期的时序数据特征,然后可以对每个主键求非促销时间与促销时间的需求量的比率作为促销系数,预测出 2023-06-01 至2023-06-20 的预测值后乘上这个系数即可,具体求解如下:
step1:构建时序数据,以seller_16product_1187wh_33举例


step2:保留后5天,即2023-05-10~2023-05-15的数据,加上结果1中的预测销量做为一个时序特征,2023-05-10前面的需求量按20为周期求取,


step3:与问题1一样,求取构建模型,选取最优模型得到 2023-06-01 至2023-06-20 的预测值



step4:然后乘以一个促销系数b即可得到预测时间段的需求量


step5:重复这个过程,为每一个主键求取预测时间段的需求量,并进行保存,耗时7分钟


step6:将结果整理输出

本次将全程提供B题题完整解题思路及代码,同时共享一些论文模板等资料,需要的小伙伴可以关注一下,持续更新!完整解题代码可查看B站哦

2023mathorcup大数据赛 B题 完整代码解题教程_哔哩哔哩_bilibili

相关文章:

2023MathorCup高校数模挑战赛B题完整解题代码教程

赛道 B: 电商零售商家需求预测及库存优化问题 问题背景: 电商平台存在着上千个商家,他们会将商品货物放在电商配套的仓库, 电商平台会对这些货物进行统一管理。通过科学的管理手段和智能决策, 大数据智能驱动的供应链…...

《动手学深度学习 Pytorch版》 10.7 Transformer

自注意力同时具有并行计算和最短的最大路径长度这两个优势。Transformer 模型完全基于注意力机制,没有任何卷积层或循环神经网络层。尽管 Transformer 最初是应用于在文本数据上的序列到序列学习,但现在已经推广到各种现代的深度学习中,例如语…...

ORACLE-递归查询、树操作

1. 数据准备 -- 测试数据准备 DROP TABLE untifa_test;CREATE TABLE untifa_test(child_id NUMBER(10) NOT NULL, --子idtitle VARCHAR2(50), --标题relation_type VARCHAR(10) --关系,parent_id NUMBER(10) --父id );insert into untifa_test (CHILD_ID, TITLE, RELATION_TYP…...

MySQL篇---第四篇

系列文章目录 文章目录 系列文章目录一、并发事务带来哪些问题?二、事务隔离级别有哪些?MySQL的默认隔离级别是?三、大表如何优化?一、并发事务带来哪些问题? 在典型的应用程序中,多个事务并发运行,经常会操作相同的数据来完成各自的任务(多个用户对 同一数据进行操作…...

em/px/rem/vh/vw单位的区别

一、绝对长度单位 1.px 表示像素,显示器上每个像素点大小都是相同的 二、相对长度单位 2.em 相对于当前对象内文本的字体尺寸,如未设置对行内文本字体的尺寸,则相对于浏览器的默认字体(1em16px) em值不是固定的&…...

【C++】多态 ③ ( “ 多态 “ 实现需要满足的三个条件 | “ 多态 “ 的应用场景 | “ 多态 “ 的思想 | “ 多态 “ 代码示例 )

文章目录 一、" 多态 " 实现条件1、" 多态 " 实现需要满足的三个条件2、" 多态 " 的应用场景3、" 多态 " 的思想 二、" 多态 " 代码示例 一、" 多态 " 实现条件 1、" 多态 " 实现需要满足的三个条件 &q…...

创建一个Keil项目

1、创建项目 2、选择存放的文件夹,还有设置项目名 3、选择型号(因为没有STC,用下面这个替代,功能差不多) 4、选择不用启动文件 5、就会得到下面这个,可以在Source Group 1下面编写代码了 6、右键source Group 1,添加c语…...

Xray的简单使用

xray 简介 xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度快。发包速度快; 漏洞检测算法效率高。支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均…...

Linux Ubunto Nginx安装

一 安装前 环境准备 gcc $ sudo apt-get install gcc zlib $ sudo apt-get install zlib1g-dev pcre $ sudo apt-get install libpcre3 libpcre3-dev openssl $ sudo apt-get install openssl libssl-dev‘ ubuntu 安装 libssl-dev失败的解决方案 1.安装aptitude sudo apt-g…...

深度学习中的epoch, batch 和 iteration

名词定义epoch使用训练集的全部数据进行一次完整的训练,称为“一代训练”batch使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这样的一部分样本称为:“一批数据”iteration使用一个batch的数据对模型进行一次参数更新的过…...

unity开发安卓视频文件适配手机和平板

using UnityEngine; using UnityEngine.UI;public class VideoResize : MonoBehaviour {private RawImage rawImage;private VideoPlayer videoPlayer;private void Start(){rawImage GetComponent<RawImage();videoPlayer GetComponent<VideoPlayer>();// 播放视频…...

NLP之RNN的原理讲解(python示例)

目录 代码示例代码解读知识点介绍 代码示例 import numpy as np import tensorflow as tf from tensorflow.keras.layers import SimpleRNNCell# 第t时刻要训练的数据 xt tf.Variable(np.random.randint(2, 3, size[1, 1]), dtypetf.float32) print(xt) # https://www.cnblog…...

yo!这里是进程间通信

目录 前言 进程间通信简介 目的 分类 匿名通道 介绍 举例&#xff08;进程池&#xff09; 命名管道 介绍 举例 共享内存 介绍 共享内存函数 1.shmget 2.shmat 3.shmdt 4.shmctl 举例 1.框架 2.通信逻辑 消息队列 信号量 同步与互斥 理解信号量 后记…...

使用docker安装MySQL,Redis,Nacos,Consul教程

文章目录 安装MySQL安装Redis安装Nacos安装Consul 如未安装docker&#xff0c;参考教程&#xff1a; https://blog.csdn.net/m0_63230155/article/details/134090090 安装MySQL #拉取镜像 sudo docker pull mysql:latestsudo docker run --name mysql \-p 3306:3306 \-e MYSQ…...

python和Springboot如何交互?

Python和Spring Boot可以通过RESTful API进行交互。Spring Boot通常用于后端开发&#xff0c;提供了快速构建RESTful API的工具&#xff0c;而Python则可以用于编写前端或与后端交互的代码。 要实现Python和Spring Boot的交互&#xff0c;可以按照以下步骤进行&#xff1a; 在…...

Qt实现json解析

前提要点 json文件&#xff0c;可通过键值的方式存储你所需要的数据&#xff0c;斌且支持多种类型存储&#xff0c;类似于一种结构化的数据库&#xff0c;在读取json文件时可通过相对应的关键字精准获取。他是一种树状结构&#xff0c;我们可以自己设定叶子的数量以及他所代表…...

Ajax、Json深入浅出,及原生Ajax及简化版Ajax

Ajax 1.路径介绍 1.1 JavaWeb中的路径 在JavaWeb中&#xff0c;路径分为相对路径和绝对路径两种&#xff1a; 相对路径&#xff1a; ./ 表示当前目录(可省略) ../ 表示当前文件所在目录的上一级目录 绝对路径&#xff1a; http://ip:port/工程名/资源路径 2.2 在JavaWeb中…...

前端第一阶段测试

前端第一阶段测试 选择问答 如果觉得有用请给我点个赞⑧~ 选择 1、【单选】下列哪个是子代选择器 A A、p>b B、p b C、pb D、p.b 2、【单选】下述有关css属性position的属性值的描述&#xff0c;说法错误的是&#xff1f;B A、static&#xff1a;没有定位&#xff0c;元素出…...

openlayers+vue的bug

使用addInteraction添加交互draw绘制&#xff0c;预期removeInteraction删除交互draw绘制时不再绘制&#xff0c;但是删除绘制不起作用&#xff0c;各种找原因&#xff0c;结果把data中的map变量注释掉即可&#xff0c;原因未知。 <template><div><div id"…...

实时数仓-Hologres介绍与架构

本文是向大家介绍Hologres是一款实时HSAP产品&#xff0c;隶属阿里自研大数据品牌MaxCompute&#xff0c;兼容 PostgreSQL 生态、支持MaxCompute数据直接查询&#xff0c;支持实时写入实时查询&#xff0c;实时离线联邦分析&#xff0c;低成本、高时效、快速构筑企业实时数据仓…...

深度解析开源项目MusicFree插件:构建跨平台音乐播放生态的终极指南

深度解析开源项目MusicFree插件&#xff1a;构建跨平台音乐播放生态的终极指南 【免费下载链接】MusicFreePlugins MusicFree播放插件 项目地址: https://gitcode.com/gh_mirrors/mu/MusicFreePlugins MusicFree插件系统是一个创新的开源音乐播放器扩展框架&#xff0c;…...

OpenClaw语音交互方案:Qwen3.5-9B对接Whisper实现语音指令控制

OpenClaw语音交互方案&#xff1a;Qwen3.5-9B对接Whisper实现语音指令控制 1. 为什么需要语音交互能力&#xff1f; 上周我在整理电脑文件时突然想到&#xff1a;既然OpenClaw能模拟人类操作电脑&#xff0c;为什么不给它加上耳朵呢&#xff1f;这个想法源于我经常双手沾满咖…...

intv_ai_mk11开发者友好:提供RESTful API文档、Curl示例、SDK接入指引

intv_ai_mk11开发者友好&#xff1a;提供RESTful API文档、Curl示例、SDK接入指引 1. 平台概述 intv_ai_mk11是基于Llama架构的中等规模文本生成模型&#xff0c;专为开发者设计&#xff0c;提供完整的API接入方案。该模型擅长处理通用问答、文本改写、解释说明和简短创作等任…...

Nano-Banana在.NET开发中的应用:智能业务逻辑实现

Nano-Banana在.NET开发中的应用&#xff1a;智能业务逻辑实现 将AI能力无缝集成到企业级应用中&#xff0c;让智能业务逻辑开发变得简单高效 1. 开篇&#xff1a;当.NET遇见AI智能业务逻辑 如果你正在开发.NET企业级应用&#xff0c;可能会遇到这样的场景&#xff1a;需要智能…...

如何利用社交媒体平台来优化网站SEO

如何利用社交媒体平台来优化网站SEO 在当今的数字化时代&#xff0c;社交媒体已经成为每个企业和个人不可或缺的一部分。作为网站运营者&#xff0c;我们常常面临如何通过社交媒体平台来优化网站SEO&#xff08;搜索引擎优化&#xff09;的问题。本文将深入探讨这一话题&#…...

从唤醒到合成:基于讯飞、VOSK与DeepSeek的纯离线语音助手全链路实践

1. 纯离线语音助手的技术价值与应用场景 在智能设备普及的今天&#xff0c;语音交互已经成为人机交互的重要方式。但大多数语音助手都需要依赖云端服务&#xff0c;这意味着用户的语音数据需要上传到服务器进行处理。而基于讯飞唤醒、VOSK语音识别和DeepSeek大模型的纯离线方案…...

SEO宣传推广公司如何做好移动端优化

SEO宣传推广公司如何做好移动端优化 在当前数字化营销的浪潮中&#xff0c;移动端优化已经成为了每一个SEO宣传推广公司必须要掌握的技能之一。随着越来越多的用户通过手机浏览网站和进行在线购物&#xff0c;如何在移动端上获得更高的流量和转化率成为了企业竞争的关键。SEO宣…...

Google Authenticator PHP集成避坑指南:从扫码到验证的完整流程与常见错误解决

Google Authenticator PHP集成深度排障手册&#xff1a;从原理到实战的30个关键细节 当你按照教程一步步完成Google Authenticator的PHP集成&#xff0c;却在最后一步验证失败时&#xff0c;那种挫败感我深有体会。三年前我第一次在金融项目中实现动态口令认证&#xff0c;连续…...

Pop 核心架构解析:深入理解 Bubble Tea 框架与邮件发送原理

Pop 核心架构解析&#xff1a;深入理解 Bubble Tea 框架与邮件发送原理 【免费下载链接】pop Send emails from your terminal &#x1f4ec; 项目地址: https://gitcode.com/gh_mirrors/pop2/pop 想要在终端中优雅地发送邮件吗&#xff1f;Pop 是一个基于 Go 语言开发的…...

Vivado报错[Opt 31-430]?别慌,手把手教你从网表里揪出那个‘没爹妈’的FDCE

Vivado报错[Opt 31-430]全流程诊断手册&#xff1a;从网表逆向追踪到代码修复 当Vivado在opt_design阶段抛出[Opt 31-430] Found a FDCE that its data pin is undriven时&#xff0c;多数FPGA开发者的第一反应是检查代码中的寄存器定义。但真实情况往往更复杂——这个报错可能…...