【代码思路】2023mathorcup 大数据数学建模B题 电商零售商家需求预测及库存优化问题

各位同学们好,我们之前已经发布了第一问的思路视频,然后我们现在会详细的进行代码和结果的一个讲解,然后同时我们之后还会录制其他小问更详细的思路以及代码的手把手教学。

大家我们先看一下代码这一部分,我们采用的软件是Jupyter,大家可以下载Anaconda,然后选择 Jupyter 进行一个我们代码的运行。之所以选用这个软件是因为可以更好展示我们的图表,然后大家也可以看得更直观一点。如果这些库发现安装的有问题的话,可以自己输入 conda install 什么什么库或者 pip install 什么什么库,然后第一问需要我们使用的数据是表 1 到表4,我们先把这个表格进行一个读取,就是用 PD.read_Excel 进行一个读取,这个是相对路径,大家只要把数据包和代码放在一个文件夹下面就可以了。

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

我们首先来观察一下数据形式,就首先这是表格一,然后表格依靠的是 product name, product number 来和表 2 相连,同时表一依靠 seller number 和表 3 相连,然后通过 Warehouse number 来跟表 4 来相连。然后我们想要把表 1234 进行一个合并,我们想要把表 1234 进行一个相连,合成一个大表。然后最直观想到的就是用 Python 中的 PD merge 这个函数,那我们后续会在代码中进行展现,然后展示给大家,然后你合并完之后,这个表格就变成一个这样子的大表,这里就是我们要预测的标签,然后剩下的是它的特征,然后处理完数据之后我进行一个预测。

第一步就是合并表,然后是预处理,首先你观察数据有没有为零或者是明显错误的值,然后你再进行一个相关性的分析,就是用,这个函数来观察一下它的相关性,然后输出相关性高的作为特征来进行后续的一个预测的函数。如果我们主要是考察这是一个时间上的一个预测,然后可以采用有典型的时序预测的 Arima 或者是用 LSTM 这样子的。当然最简单的就是线性回归这种句都是可以采取的。然后性能界限提一个评价,我们可以输出预测的那个结果图和实际的增值的一个两个图线的一个图片,或者是输出我们的那个精确度,然后这一问它是好,就是问我们如何分类,可以使用它们作为相似分类。

和前对基本使用聚类分析,那当然后续更详细的一个介绍,我们会根据代码,然后还有结果图标来跟大家介绍,okay,我们就先详细的分析到一个问题一,然后问题 2 和问题 3 我们后续会进行展开,然后欢迎大家点点关注,我们会持续分享的。

我们把表 2 也输入,表 3 也进行一个输入,然后表 4 输入进去之后,我们需要将表进行一个合并,我们可以发现表一和表 2 通过 product 的 number 进行一个合并,然后表一和表 3 是 sale number,表一和表 4 是 warehouse number,我们直接采用这个关键字段,然后调通过调取 Python 中的 PD.merge 这个包就可以直接进行合并。
在这里插入图片描述

在这里插入图片描述

可以看一下我们合并或者大表是这个样子的,四个表的特征完全已经在一个表里了。好的,我们接下来输出一下各个列名的数据类型,还有它们的数量是这个图,但是这个数字我们还需要进行一个预处理,因为它有一些,比如像这个东西,它是文本型数据,不能进行后续特征的一个输入,我们要把这些全部的文本数据,还有这个手机通讯、手续配件这种类别全部转化为数值,所以就调用了这个建立列表,构建一个字典,然后将这些特征全部转化为了,这就是右边的一列,就是左边那一列是我们调取的值,然后右边是我们转化后的值。
当之后下面也是统领用 replace 的方法来替换这些值,那可以看到我们替换之后的结果都已经给到了大家,当然大家也可以直接用 one hot 这个函数,或者是就是直接特征转化这个函数,把这些类别转化为123456,这个,这个你可以搜一下自己去解决。然后实在不行的话也可以用我们给到大家这个东西,然后我们结果图表也会给到大家。

在这里插入图片描述

接下来我们处理好数据之后,就进行一个相关性的分析,这个是数相关性分析的一个数值,然后相关性分析的结果图是这个样子的,看到这些地方是颜色比较深的,然后我们分析完之后,接下来你可以通过相关性筛选一些特征,也可以不筛选保留所有的特征,进行一个后续的模型输入。

在这里插入图片描述

在我们处理好数据,然后分析好模型之后,就是分析好这个相关性之后,我们就需要输入到模型里进行一个计算,然后模型经典的时序模型就是 Arima 模型,我们也进行了一个跑,就是给大家看一下儿曼的效果,然后发现它效果其实并不是特别好,原因在哪里?因为大家可以看一下这个二维码数据,是单纯的根据时间和每个时间对应的需求来进行一个后续十几天的预测。我们觉得这个样子做效果不好,一个是因为它直接是用一步来预测未来的 15 步,这个样子是有问题的。然后第二个是因为在后面这段时间里,他我们用了预测数据,基本上数值都非常小,就是0,然后这也造成了一个问题,所以我们后来会去进行模型进行一个调整。
在这里插入图片描述

同时还采用了其他的模型,比如LSTM,我们 LSTM 是构建了就是用调取 Tensorflow 的keras 包,然后来进行一个训练,然后训练后的结果我们也会给到大家,然后接下来就是下一个视频,然后我们就是边做然后边给大家分析,希望大家持续关注。

问题二:现有一些新出现的商家+仓库+ 商品维度(附件 5),导致这种 情况出现的原因可能是新上市的商品,或是改变了某些商品所存放的仓库。 请讨论这些新出现的预测维度如何通过历史附件 1 中的数据进行参考,找 到相似序列并完成这些维度在 2023-05- 16 至 2023-05-30 的预测值。请把预测结果填写在结果表 2 ,并上传至竞赛平台。
思路:
问题二要求讨论如何处理新出现的商家、仓库、商品维度,以实现精准预测。对于新出现的商家、仓库、商品维度,可以通过附件中的数据进行参考,找到相似序列并完成这些维度的预测值。具体来说,可以采用基于相似度的算法,如KNN算法、聚类算法等,对历史数据进行分析和处理,找出与新出现维度相似的历史数据,从而预测未来的需求量。
问题三:每年 6 月会出现规律性的大型促销,为需求量的精准预测以 及履约带来了很大的挑战。附件 6 给出了附件 1 对应的商家+仓库+ 商品维 度在去年双十一期间的需求量数据,请参考这些数据,给出 2023-06-01 2023-06-20 的预测值。请把预测结果填写在结果表 3 ,并上传至竞赛平台。
思路:
问题三要求根据历史数据,预测每年6月份的需求量。在实际的电商供应链预测任务中,每年6月份会出现规律性的大型促销,为需求量的精准预测以及履约带来了很大的挑战。 问题三中给出了附件6,该附件给出了附件1对应的商家+仓库+商品维度在去年双十一期间的需求量数据。可以根据这些历史数据,采用时间序列分析、回归分析、神经网络等算法,预测2023年6月1日至6月20日的需求量。
本次将全程提供B题题完整解题思路、代码和完整文字,同时共享一些论文模板等资料,需要的小伙伴可以关注一下,持续更新!完整解题代码可点击此处获取

#https://
#mbd.pub/o/bread/mbd-ZZWalpty

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/120841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过流量安全分析发现主机异常

主机异常分析在计算机系统中具有重要意义。以下是主机异常分析的几个关键点: 1、检测安全威胁:主机是计算机系统的核心组件,通过对主机异常进行分析,可以快速检测到潜在的安全威胁,如恶意软件、病毒感染、黑客入侵等。…

js中的Formdata数据结构

这里写目录标题 一、基本概念二、常用方法1.append(name, value)、set(name, value)2.get()、getAll()3.has(name)4.delete(name)5.keys(),values(),entries() 三、其他细节1.for of遍历2.转为对象3.结合 URLSearchParams 转为queryString 一、基本概念 FormData 提供了一种表…

p5.js画布操作实战:创建,绑定指定元素,动态调整大小,隐藏滚动条,删除画布

文章简介 之前在 《p5.js 光速入门》 里粗略讲过一下如何使用 p5.js 创建画布。 这次要介绍几个 p5.js 提供的画布相关的方法。 创建画布时的相关配置。让画布绑定指定元素。重置画布大小。删除画布。 学习本文前你需要具备一点 p5.js 的知识,想了解的请查看 《p…

【Java 进阶篇】Java Request 继承体系详解

在Java编程中,Request(请求)是一个常见的概念,特别是在Web开发中。Request通常用于获取来自客户端的信息,以便服务器能够根据客户端的需求提供相应的响应。在Java中,Request通常涉及到一系列类和接口&#…

CAS 机制的实现原理分析

在 synchronized 中很多地方都用到了CAS机制,它的叫法有很多,比如CompareAndSwap、CompareAndExchange、CompareAndSet,它是一个能够进行比较和替换的方法,这个方法能够在多线程环境下保证对一个共享变量进行修改时的原子性不变。…

CentOS 编译安装TinyXml2

安装 TinyXml2 Git 源码下载地址:https://github.com/leethomason/tinyxml2 步骤1:首先,你需要下载tinyxml2的源代码。你可以从Github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2:下载完成后,需要将源代码解…

『力扣刷题本』:合并两个有序链表(递归解法)

一、题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 [] 输出&#x…

Python---练习:使用for循环实现用户名+密码认证

案例: 用for循环实现用户登录 ① 输入用户名和密码 ② 判断用户名和密码是否正确(usernamelaowang,passwordlw123) ③ 登录仅有三次机会,超过3次会报错 思考: 用户登陆情况有3种: ① 用户名错误(此时…

Python OpenCV将n×n的小图拼接成m×m的大图

Python OpenCV将nn的小图拼接成mm的大图 前言前提条件相关介绍实验环境n \times n的小图拼接成m \times m的大图代码实现 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小…

J2EE项目部署与发布(Windows版本)

一、单机项目 1.将项目共享到虚拟机 2.解压并将war包放入tomcat 3.运行tomcat并查看该项目的数据库配置 4.数据库导入脚本 先创建一个符合项目数据库配置的数据库名称 然后就是将项目脚本数据传输过去即可,如下: 项目数据传输过来了之后,我们…

分组卷积的思想神了

大家好啊,我是董董灿。 最近,分组卷积帮我解决了一个大忙,事情是这样的。 这几天遇到一个头疼的问题,就是要在某一芯片上完成一个神经网络的适配,这个神经网络中卷积居多,并且有一些卷积的通道数很大&…

React之服务端渲染

一、是什么 在SSR中 (opens new window),我们了解到Server-Side Rendering ,简称SSR,意为服务端渲染 指由服务侧完成页面的 HTML 结构拼接的页面处理技术,发送到浏览器,然后为其绑定状态与事件,成为完全可…

番外8.2 --- 后续

### 01:dd命令:在新挂载点创建swap文件大小10MB;(dd if/dev/zero of/swap bs1024 count10240) 02:给swap建立文件系统,将其分属到swap文件(mkswap /swap; swapon /swap &…

【linux系统】服务器安装Pycharm

文章目录 安装pycharm步骤1. 进入pycharm官网2. 上传到服务器3. 安装过程 摘要:pycharm是Python语言的图形化开发工具。因为如果在Linux环境下的Python shell 中直接进行编程,其无法保存与修改,在大型项目当中这是很不方便的,而py…

KV STUDIO的安装与实践(一)

目录 什么是KV STUDIO? 如何安装KV STUDIO? 如何学习与使用KV STUDIO(在现实中的应用)? 应用一(在现实生活中机器内部plc的读取与替换) 读取 KV STUDIO实现显示器的检测!&#…

Android拖放startDragAndDrop拖拽onDrawShadow动态添加View,Kotlin(3)

Android拖放startDragAndDrop拖拽onDrawShadow动态添加View,Kotlin(3) import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import android.…

北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器全加器(关注我的uu们加群咯~)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 关注作者的uu们可以进群啦~ 目录 方法一&#xff…

泛微OA之获取每月固定日期

文章目录 1.需求及效果1.1需求1.2效果 2. 思路3. 实现 1.需求及效果 1.1需求 需要获取每个月的7号作为需发布日期,需要自动填充1.2效果 自动获取每个月的七号2. 思路 1.功能并不复杂,可以用泛微前端自带的插入代码块的功能来实现。 2.将这需要赋值的…

LVS集群-NAT模式

集群的概念: 集群:nginx四层和七层动静分离 集群标准意义上的概念:为解决特定问题将多个计算机组合起来形成一个单系统 集群的目的就是为了解决系统的性能瓶颈。 垂直扩展:向上扩展,增加单个机器的性能,…

【java学习—九】工厂方法FactoryMethod(6)

文章目录 1. 概念2. 实际的应用 1. 概念 FactoryMethod 模式是设计模式中应用最为广泛的模式,在面向对象的编程中,对象的创建工作非常简单,对象的创建时机却很重要。 FactoryMethod 解决的就是这个问题,它通过面向对象的手法&…