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…

Spring Security面试三道题

针对Spring Security的面试题,从简单到困难,我可以给出以下三道题目: 1. Spring Security的基本功能是什么? 答案: Spring Security是Spring Framework的一部分,它提供了一种将安全层应用于Java应用程序的…

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当中的指令…

数据库水印算法三道题

针对数据库水印算法的面试题,由简单到困难,可以设计以下三道题目: 1. 基础理解题 题目:请简要解释什么是数据库水印算法,并说明其主要应用场景。 参考答案: 数据库水印算法是一种在数据库中嵌入隐蔽信息…

Red Hat 9.4 配置Yum镜像源

1. 虚拟机信息 镜像:rhel-server-9.4-x86_64-dvd.iso 系统版本:Red Hat 9.4 版本信息: cat /etc/redhat-release Red Hat Enterprise Linux release 9.4 (Plow)2. 配置文件 vim /etc/yum.repos.d/local.repo # 按i键,输入以下内…

Linux 普通用户启动Nginx使用80端口,小于1024的端口

让 Nginx 运行在 root 权限下: 在root用户下执行 cd /usr/local/nginx/sbin/ chown root nginx chmod us nginx或者:cd /usr/local/nginx/sbin/ sudo chown root nginx sudo chmod us nginx

远程项目调试-informer2020

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

[笔记]ONVIF服务端实现[进行中...]

1.文档搜索: 从:https://www.cnblogs.com/liwen01/p/17337916.html 跳转到了:ONVIF协议网络摄像机(IPC)客户端程序开发(1):专栏开篇_onvif 许振坪-CSDN博客 1.1原生代码支持&…

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等循环架构。这些架 构通过在神经网络连接使用反馈循环,允许信息从一步传播到另一 步,使其成为对文本等序列数据进行建模的理想选择。如…