2024年钉钉杯大数据竞赛A题超详细解题思路+python代码手把手保姆级运行讲解视频+问题一代码分享

初赛A:烟草营销案例数据分析

AB题综合难度不大,难度可以视作0.4个国赛,题量可以看作0.35个国赛题量。适合于国赛前队伍练手,队伍内磨合。竞赛获奖率50%,八月底出成绩,参赛人数3000队左右。本文将为大家进行A题的超详细解题思路+部分代码分享

钉钉杯赛中分享资料(问题一代码+论文+思路)链接(18点更新)

链接:https://pan.baidu.com/s/16o5y5Gxu2NDa9mGxshbnvw 

提取码:sxjm

对于数据类型的题目,首先就是应该进行数据预处理,这里由于每一问题都涉及不同的数据集,因此对于该问题的数据预处理。我们应该分问进行,下面主要对问题一涉及的数据进行详细的说明,后面仅作展示处理。

  1. 数据预处理数据清洗-缺失值异常值处理
  2. 对于题目中,存在明显的极大值以及极小值。例如2013 12这个数据当月销量只有0.4箱子该数据与其他正常数据差异过大,应进行必要的数据处理。例如,应该将该异常值使用箱型图等方面进行判定,对于判定结果进行剔除处理。对于剔除后产生的空缺值使用插值的方法进行填充。

    例如,我们以A1 A2为例,首先将进行正态分布的判定,对于正态分布的数据使用3西格玛原则判定异常值,对于非正态分布的数据使用箱型图判定异常值。将判定结果替换为缺失值,进行插值填充。

 

进行判定,得出A1的数据均不服从正态分布,A2的数据服从正太分布。因此,需要对不同的数据进行不同的处理。

数据可视

绘制时间序列图,观察数据趋势、周期性和季节性。

数据显示,销售金额在2013年和2014年出现了明显的高峰。之后的几年中,销售金额总体呈现下降趋势,直到2018年后趋于平稳。从2011年到2017年,销售金额的长期趋势呈下降态势。2017年以后,趋势有所回升,并逐渐趋于平稳。数据显示,每年某些月份的销售金额显著增加,表现出较强的季节性波动。这个季节性模式在各年间基本保持一致。残差部分显示出较大的波动性,但没有明显的系统性趋势。这些波动反映了数据中随机和不可预测的部分。论文内容:图形文字描述

问题一二都涉及到了选择两种不同的数学预测模型,这里我们将常见的预测模型放于文章最后,供大家参考使用。理论上所有的模型都是正确的、都是可以使用的。在数学建模是没有答案的,因此也没有对错,仅仅只有使用的适配度和精度问题。所以文末的各种模型都是可以使用的

 

1. 预测A1、A2品牌的销量

对未来销量进行预测:使用历史销售数据构建2个不同类型的时间序列预测模型,分别对 A1、A2香烟品牌的未来销量进行数据预测,目标为表中最后空白项。自行选择和设计模型类型 、参数、结构。

对于问题一预测模型的选择多种多样只要符合预测条件即可,这里给出其中两种的步骤

模型选择:

1. ARIMA(AutoRegressive Integrated Moving Average)模型:

    - 参数选择:使用AIC/BIC准则选择最优的p, d, q参数。

    - 模型训练:拟合ARIMA模型,并进行预测。

    - 结果评价:使用RMSE、MAE等评价指标衡量模型性能。

2. Prophet模型:

    - 数据处理: 转换数据格式以适应Prophet模型。

    - 模型训练: 拟合Prophet模型,并进行预测。

- 结果评价: 使用RMSE、MAE等评价指标衡量模型性能。

 

模型名称

描述

优点

缺点

ARIMA

结合自回归和移动平均,适用于非平稳时间序列数据

适用于平稳和非平稳数据;参数选择较灵活

需要手动选择参数;对数据要求较高

SARIMA

在ARIMA基础上增加季节性部分,适用于季节性时间序列数据

能够捕捉季节性变化;适用于周期性波动的数据

参数较多,选择复杂;计算复杂度高

Prophet

由Facebook开发,适用于具有多种季节性和假期效应的时间序列数据

易于使用;对异常值和缺失值鲁棒

适用于较长时间序列数据;短期预测效果较差

LSTM

基于神经网络,能够捕捉长时间序列依赖关系,适用于复杂的非线性数据

能够捕捉长期依赖关系;适用于复杂非线性数据

需要大量数据训练;训练时间长,计算资源高

Exponential Smoothing

通过对历史数据加权平均来预测未来值,包括单、双和霍尔特-温特斯季节性模型

简单易用;计算速度快

对复杂数据预测效果较差;不能捕捉长

 

2. 预测A3、A4品牌的销售金额

对销售金额进行预测:使用历史销售数据构建2个不同类型的时间序列预测模型,分别对 A3、A4香烟品牌的销售金额进行数据预测,目标为表中最后空白项。自行选择和设计模型类型 、参数、结构。

模型选择:

1. SARIMA(Seasonal ARIMA)模型:

    - 参数选择: 使用AIC/BIC准则选择最优的p, d, q, P, D, Q, m参数。

    - 模型训练: 拟合SARIMA模型,并进行预测。

    - 结果评价: 使用RMSE、MAE等评价指标衡量模型性能。

2. LSTM(Long Short-Term Memory)模型:

    - 数据处理: 标准化数据,创建适合LSTM模型的输入格式。

    - 模型构建: 构建并训练LSTM神经网络模型。

    - 结果评价: 使用RMSE、MAE等评价指标衡量模型性能。

 

 3. 集成学习模型构建

集成学习:在上述分别对销量及销售金额预测模型的基础上,构建集成学习模型,实现 对A5香烟品牌的销量和销售金额的联合预测。集成学习模型不局限于上述问题中建立的模型, 可新增,以最终性能为评判标准

目标: 对A5品牌的销量和销售金额进行联合预测。

步骤:

1、ARIMA模型选择和训练

遍历 p、d 和 q 参数的所有可能组合(从0到2),选择AIC值最小的参数组合。

使用最佳参数组合训练ARIMA模型,并进行10步预测。

2、Prophet模型训练和预测

将数据转换为Prophet模型所需的格式(列名分别为 ds 和 y)。使用Prophet模型进行10步预测。

3、构建集成学习模型(Stacking):

将ARIMA和Prophet模型的预测结果作为特征,实际值作为目标变量,使用线性回归模型作为元学习器进行训练。使用训练好的线性回归模型生成最终的集成学习预测结果。

4、评价模型

计算集成学习模型的均方误差(MSE)和平均绝对误差(MAE)。

对比ARIMA模型和Prophet模型的MSE和MAE,评估各模型的性能。

绘制实际值、ARIMA预测值、Prophet预测值和集成学习预测值的时间序列图。

BZD数模社 独家制作

 

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

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

相关文章

七夕特献:用代码编织爱情的浪漫,程序员的专属爱情证书生成器

文章目录 1. 背景介绍2. **为什么是爱情证书生成器?**3. **功能亮点**4. **技术实现**5. **如何获取?**6. 总结 1. 背景介绍 在这个数字化的时代,程序员们用代码编织世界,创造无限可能。七夕将至,一个充满古老传说和浪…

ElasticSearch核心之DSL查询语句实战

什么是DSL? Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。 DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。目前常用的框架查询方法什么的底层都是构建DSL语句实现的,所以你必…

Dockerfile指令详解和Docker操作命令

1.容器的特点:1)自包含(包括应用程序及其运行环境);2)可移植;3)相互隔离;4)轻量级。 2.docker成为容器的事实标准在于:1)在运行环境上…

【区块链】如何发行自己的加密货币到以太坊测试网络,remixIDE发行自己的数字货币

如何发行自己的加密货币到以太坊测试网络 环境 reminx在线编辑器:https://remix.ethereum.org/安装有小狐狸钱包插件(MetaMask) 如何部署代币? 创建一个名字叫做HelloMyToken.sol的文件。编写好智能合约,这边我要发…

文件包含漏洞--pyload

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一.PHP伪协议利用 php://协议 php://filter :用于在读取作用和写入文件时进行过滤和转换操作。 作用1:利用base64编码过滤器读取源码 通常利用文件包含执行php://filte…

Opencv学习项目4——手部跟踪

上一篇博客我们介绍了mediapipe库和对手部进行了检测,这次我们进行手部关键点的连线 代码实现 import cv2 import mediapipe as mpcap cv2.VideoCapture(1) mpHands mp.solutions.hands hands mpHands.Hands() mpDraw mp.solutions.drawing_utilswhile True:…

Flutter - 安卓一次打包不同包名的apk

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新,请前往github查看最新代码 有时为了方便测试,同一个app需要在一个手机上装两个,直接改包名的话比较麻烦,这时可以通过添加flavor进行多维度打包&#xff0c…

Flink入门(更新中)

目录 一、Flink 1.1 基本概念 1.1.1 flink简介 1.2 flink编程模版 1.3 常用概念 1.2.1 datastream 1.2.2 算子、Task 1.2.3 多流操作 1.2.6 时间语义 二、Flink编程实战(Java) 2.1 wordcount 一、Flink 1.1 基本概念 1.1.1 flink简介 1.图片介绍 性能&#xff1a…

OpenAI推出SearchGPT:革新搜索体验的新工具

引言 原文链接 在信息爆炸的时代,搜索引擎已经成为人们日常生活中不可或缺的工具。然而,传统的搜索引擎在理解复杂查询和提供准确答案方面仍有许多不足。为了解决这一问题,OpenAI与20240725推出了SearchGPT原型,将生成式AI与传统…

kafka源码阅读-ReplicaStateMachine(副本状态机)解析

概述 Kafka源码包含多个模块,每个模块负责不同的功能。以下是一些核心模块及其功能的概述: 服务端源码 :实现Kafka Broker的核心功能,包括日志存储、控制器、协调器、元数据管理及状态机管理、延迟机制、消费者组管理、高并发网络…

Vue常用指令及其生命周期

作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 目录 1.常用指令 1.1 v-bind 1.2 v-model 注意事项 1.3 v-on 注意事项 1.4 v-if / v-else-if / v-else 1.5 v-show 1.6 v-for 无索引 有索引 生命周期 定义 流程 1.常用指令 Vue当中的指令…

远程项目调试-informer2020

informer2020 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting(原文)Informer 是一个基于Transformer的模型,是为了应对长依赖关系而开发的。本文的主要主题是序列预测。序列预测可以在任何具有不断变化的数据的地方…

Linux——管理本地用户和组(详细介绍了Linux中用户和组的概念及用法)

目录 一、用户和组概念 (一)、用户的概念 (二)、组的概念 补充组 主要组 二、获取超级用户访问权限 (一)、su 命令和su -命令 ( 二)、sudo命令 三、管理本地用户账户 &…

ERROR: Cannot find command ‘git’- do you have ‘git’ installed and in your PATH?

ERROR: Cannot find command ‘git’- do you have ‘git’ installed and in your PATH? 目录 ERROR: Cannot find command ‘git’- do you have ‘git’ installed and in your PATH? 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/61780…

Transformer自然语言处理实战pdf阅读

一.第一章 欢迎来到transformer的世界 1.解码器-编码器框架 在Transformer出现之前,NLP的最新技术是LSTM等循环架构。这些架 构通过在神经网络连接使用反馈循环,允许信息从一步传播到另一 步,使其成为对文本等序列数据进行建模的理想选择。如…

多模态大模型应用中的Q-Former是什么?

多模态大模型应用中的Q-Former是什么? Q-Former是一种新型的神经网络架构,专注于通过查询(Query)机制来改进信息检索和表示学习。在这篇博客中,我们将详细探讨Q-Former的工作原理、应用场景,并在必要时通过…

pyqt designer使用spliter

1、在designer界面需要使用spliter需要父界面不使用布局,减需要分割两个模块选中,再点击spliter分割 2、在分割后,再对父界面进行布局设置 3、对于两边需要不等比列放置的,需要套一层 group box在最外层进行分割

大数据学习之Flink基础

Flink基础 1、系统时间与时间时间 系统时间(处理时间) 在Sparksreaming的任务计算时,使用的是系统时间。 假设所用窗口为滚动窗口,大小为5分钟。那么每五分钟,都会对接收的数据进行提交任务. 但是,这里有…

GoogleCTF2023 Writeup

GoogleCTF2023 Writeup Misc NPC Crypto LEAST COMMON GENOMINATOR? Web UNDER-CONSTRUCTION NPC A friend handed me this map and told me that it will lead me to the flag. It is confusing me and I don’t know how to read it, can you help me out? Attach…

VSCode切换默认终端

我的VSCode默认终端为PowerShell,每次新建都会自动打开PowerShell。但是我想让每次都变为cmd,也就是Command Prompt 更改默认终端的操作方法如下: 键盘调出命令面板(CtrlShiftP)中,输入Terminal: Select Default Prof…