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

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数模社 独家制作

 

相关文章:

  • Vue3+Element Plus 实现table表格中input的验证
  • 堆的相关知识点
  • 【数据结构】二叉树链式结构——感受递归的暴力美学
  • 十大排序的稳定性和时间复杂度
  • 【proteus经典项目实战】51单片机用计数器中断实现100以内的按键计数并播放音乐
  • SAP MM学习笔记46 - 购买中的出力管理(消息管理)
  • IntelliJ IDEA 直接在软件中更新为最新版
  • 论文快过(图像配准|Coarse_LoFTR_TRT)|适用于移动端的LoFTR算法的改进分析 1060显卡上45fps
  • mysql1055报错解决方法
  • git报错403,git项目拉取不下来
  • VSCode | 修改编辑器注释的颜色
  • opencv grabCut前景后景分割去除背景
  • 455 分发饼干
  • 二级医院LIS系统源码,医学检验系统,支持DB2,Oracle,MS SQLServer等主流数据库
  • 如何快速抓取小红书帖子评论?两大实战Python技巧揭秘
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【面试系列】之二:关于js原型
  • 03Go 类型总结
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Apache Spark Streaming 使用实例
  • CAP理论的例子讲解
  • Docker容器管理
  • ECMAScript6(0):ES6简明参考手册
  • egg(89)--egg之redis的发布和订阅
  • Flex布局到底解决了什么问题
  • JavaScript创建对象的四种方式
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • node-glob通配符
  • nodejs:开发并发布一个nodejs包
  • spring-boot List转Page
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 使用 Docker 部署 Spring Boot项目
  • 手机端车牌号码键盘的vue组件
  • 思考 CSS 架构
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 限制Java线程池运行线程以及等待线程数量的策略
  • PostgreSQL之连接数修改
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​插件化DPI在商用WIFI中的价值
  • # Panda3d 碰撞检测系统介绍
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #QT(智能家居界面-界面切换)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十)T检验-第一部分
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)程序员疫苗:代码注入
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .Net的C#语言取月份数值对应的MonthName值