2024钉钉杯A题思路详解

文章目录

  • 一、问题一
    • 1.1 问题
    • 1.2 模型
    • 1.3 目标
    • 1.4 思路
    • 1.4.1 样本探究
    • 1.4.2 数据集特性探究:
    • 1.4.3 数据预处理
    • 1.4.4 数据趋势可视化
    • 1.4.5 ARIMA和LSTM两种预测模型
    • 1.4.6 参数调整
  • 二、问题二
    • 2.1 问题
    • 2.2 模型
    • 2.3 目标
    • 2.4 思路
    • 2.4.1 样本探究
    • 2.4.2 数据集特性探究
    • 2.4.3 数据预处理
    • 2.4.4 数据趋势可视化
    • 2.4.5 两种预测模型
    • 2.4.6 参数调整
  • 三、采用集成模型对A5进行预测
    • 3.1 问题
    • 3.2 模型
    • 3.3 目标
    • 3.4 思路
  • 四、一点想说的
    • 4.1 数据集的划分
    • 4.2 准确性的衡量
    • 4.3 特征选择
    • 4.4 模型选择

公众号:川川菜鸟

  题目背景明确,本题是烟草营销。直接来看题目

一、问题一

1.1 问题

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

1.2 模型

时序预测模型LSTM、ARIMA等;传统预测模型:随机森林、支持向量机等。

1.3 目标

对A1和A2数据集中销量数据进行预测。

1.4 思路

①对样本进行缺失值、异常值探究
②进行特征工程:从原有特征生成新交互特征
③构建模型:LSTM、ARIMA、随机森林、支持向量机等模型
④调参:贝叶斯搜索、随机搜索、网格搜索等
⑤训练集划分:留出法、K折交叉验证、K折随机交叉验证等。
下面给出一个简易版可完全实现的思路:

1.4.1 样本探究

  • 对A1:共137个样本,已知标签的有117个,未知标签的有20个。表面上是117预测20的问题。数据集大小为中等,可尝试采用长期预测。
  • 对A2:共108个样本,已知标签的有98个,未知标签的有10个。表面上是98预测10的问题。数据集大小为中等。可尝试采用长期预测。

1.4.2 数据集特性探究:

  • 数据特性:时间序列数据。每一年12个样本,即为月份数据,比如201101-201112。
  • 样品代码,名称为冗余信息,销量为预测目标。既可以单列预测,也可以考虑金额,生成新特征如价格。

1.4.3 数据预处理

  • 缺失值:观察A1数据集,销量那一列,没有缺失值。观察A2数据集,销量一列表面上没有缺失值,但实际上存在部分月份数据确实的情况,需要认为补齐,可采用均值预测、灰色预测、马尔可夫预测等,填补缺失值。
    在这里插入图片描述在这里插入图片描述

  • 异常值:这里采用箱型图剔除异常值的方法,对异常数据进行剔除。

  • 特征工程:还可采用特征工程,提取日期特征(如月份、季度等)、进行时间序列分解(如趋势、季节性和残差)等。

1.4.4 数据趋势可视化

  为确保异常值剔除有效,及对后续数据进行预测。可展示折线图进行观察。
  发现异常值剔除有效,且数据蕴含周期性。

1.4.5 ARIMA和LSTM两种预测模型

  由于题目要求两种类型的预测模型,这里采用ARIMA时间序列分析和LSTM(长短期记忆网络)销量预测。

1.4.6 参数调整

  ARIMA模型有三个主要参数:p(自回归阶数)、d(差分阶数)、q(移动平均阶数)。参数可使用网格搜索、随机搜索、贝叶斯搜索等方法调整。建议先用贝叶斯搜索试试,网格搜索可以得到非常好的结果,但消耗时间太大。随机搜索方法最后。
  LSTM模型有多个超参数需要调整,如隐藏层数、隐藏单元数、批次大小、学习率、训练轮数等。参数可使用网格搜索、随机搜索、贝叶斯搜索等调整。建议先用贝叶斯搜索试试,网格搜索可以得到非常好的结果,但消耗时间太大。随机搜索方法最后。

二、问题二

2.1 问题

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

2.2 模型

时序预测模型LSTM、ARIMA等;传统预测模型:随机森林、支持向量机等。

2.3 目标

对A3和A4数据集中销量数据进行预测。

2.4 思路

①对样本进行缺失值、异常值探究
②进行特征工程:从原有特征生成新交互特征
③构建模型:LSTM、ARIMA、随机森林、支持向量机等模型
④调参:贝叶斯搜索、随机搜索、网格搜索等
⑤训练集划分:留出法、K折交叉验证、K折随机交叉验证等。
下面给出一个简易版可完全实现的思路:

2.4.1 样本探究

  • 对A3:共109个样本,已知标签的有99个,未知标签的有10个。表面上是99预测10的问题。数据集大小为中等,可考虑长期预测。
  • 对A4:共135个样本,已知标签的有123个,未知标签的有12个。表面上是123预测12的问题。数据集大小为中等,可考虑长期预测。

2.4.2 数据集特性探究

  • 数据特性:时间序列数据。每一年12个样本,即为月份数据,比如201101-201112。
  • 样品代码,名称为冗余信息,金额为预测目标,可考虑融合销量,生成新特征如价格。

2.4.3 数据预处理

  • 缺失值:观察A3数据集,月份那一列,表面上没有缺失值。但实际上存在一年中部分金额数据缺失的情况,例如2020年12月就没有数据,需要人为补齐。可采用均值填充或者灰色预测、马尔科夫预测等短期预测方法。对A4也可以进行同样操作。
    在这里插入图片描述

  • 异常值:这里采用箱型图剔除异常值的方法,对异常数据进行剔除。
    特征工程:还可采用特征工程,提取日期特征(如月份、季度等)、进行时间序列分解(如趋势、季节性和残差)等。

2.4.4 数据趋势可视化

  为确保异常值剔除有效,及对后续数据进行预测。可绘制折线图进行观察。
  发现异常值剔除有效,且数据蕴含周期性。

2.4.5 两种预测模型

  由于题目要求两种类型的预测模型,这里还可以采用ARIMA时间序列分析和LSTM(长短期记忆网络)销量预测。也可以采用一些传统机器学习的模型,如随机森林、梯度提升树、支持向量机等进行预测。

2.4.6 参数调整

  这里我们可以复用第一问的模型,也可以采用新的方法。这里我采用的是第一问的模型,因为时序数据后续趋势依赖时间。
  ARIMA模型有三个主要参数:p(自回归阶数)、d(差分阶数)、q(移动平均阶数)。参数可使用网格搜索、随机搜索、贝叶斯搜索等方法调整。建议先用贝叶斯搜索试试,网格搜索可以得到非常好的结果,但消耗时间太大。随机搜索方法最后。
  LSTM模型有多个超参数需要调整,如隐藏层数、隐藏单元数、批次大小、学习率、训练轮数等。参数可使用网格搜索、随机搜索、贝叶斯搜索等调整。建议先用贝叶斯搜索试试,网格搜索可以得到非常好的结果,但消耗时间太大。随机搜索方法最后。

三、采用集成模型对A5进行预测

3.1 问题

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

3.2 模型

使用前述预测模型的结果作为输入,Bagging、Boosting、Stacking模型

3.3 目标

实现对A5品牌的销量和销售金额的联合预测。

3.4 思路

使用前述预测模型的结果作为输入,比如LSTM和ARIMA,构建集成学习模型,采用多种集成方法(如Bagging、Boosting、Stacking)提升预测性能。

四、一点想说的

4.1 数据集的划分

一般采用留出法。如想出彩,可采用k折交叉验证、随机k折交叉验证等方法。

4.2 准确性的衡量

因为是定量的预测,因此可采用准确率MSE,RMSE等进行评价。

4.3 特征选择

除了题目给出的数据,最好生成新特征,比如价格(金额/销量)预测。这样才能最大程度的融合信息,预测准确。

4.4 模型选择

ARIMA、LSTM、随机森林、支持向量机等是最基础的模型。考虑更新的模型,如季节性分解模型(如SARIMA)。

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

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

相关文章

Radon(拉当) 变换:超详细讲解(附MATLAB,Python 代码)

Radon 变换 Radon 变换是数学上用于函数或图像的一种积分变换,广泛应用于图像处理领域,尤其是在计算机断层成像 (CT) 中。本文档将详细介绍 Radon 变换的数学含义及其在图像处理中的应用。 数学定义 Radon 变换的数学定义是将二维函数 f ( x , y ) f…

SRTOD

文章目录 AbstractMethodoverviewinnovationsolve Experiment link Abstract 本文主要探讨了在目标检测领域中,如何解决微小物体检测的问题。传统的通用检测器在处理微小物体时性能下降严重,主要是因为难以提取有效的特征。为了解决这个问题&#xff0c…

STL-string(使用和部分模拟实现)

1.string basic_string<char> 是 C 标准库中定义的一个模板类型,用于表示一个字符串。这个模板类接收一个字符类型作为模板参数。typedef basic_string<char> string&#xff1a;string类是basic_string类模板的实例化&#xff0c;它使用 char作为其字符类型。 2.…

狗都能看懂的Actor-Critic强化学习算法讲解

Review Policy Gradient 上面的公式是Policy Gradient的更新函数&#xff0c;这个式子是指在 s t s_t st​时刻采取了 a t a_t at​&#xff0c;计算出对应发生的概率 p θ p_\theta pθ​&#xff0c;然后计算在采取了这个 a t a_t at​之后&#xff0c;所得到的reward有多大。…

优化算法|自适应大邻域搜索算法及MATLAB代码实现

回来填坑了&#xff0c;本篇推文将详细讲解ALNS算法求解VRP问题及MATLAB代码实现。 算法介绍 节约算法构造初始解 function routessaving_init(DistMatrix, Demand, Cap) C_EPS1e-1;Nsize(DistMatrix,1); routescell(numel(2:N),1); for i1:numel(routes) % 每个节点单独一条…

【Django】前端技术HTML常用标签(开发环境vscode)

文章目录 安装两个常用插件HTML常用标签定义文档类型DOCTYPE网页的结构html/head//title/body/div标题h1/h2/h3/h4/h5分割线hr段落 p列表ul/li&#xff0c;ol/li超链接a文本span图片img按钮button表格table&#xff08;table、tr、th、td&#xff09;表单form 安装两个常用插件…

目标检测 YOLOv5-7.0 详细调试自制数据集实战

目标检测 YOLOv5-7.0 详细调试&自制数据集实战 一、项目介绍及环境配置&#xff08;一&#xff09;项目解读&#xff08;二&#xff09;版本选择&#xff08;三&#xff09;环境配置 二、如何利用YOLOv5进行预测&#xff08;detect.py&#xff09;&#xff08;一&#xff0…

Windows 实用小工具:窗口钉子/文件管理 2024/7/27

一: wintop 窗口置顶工具 二:WinDirStat 这是一个免费的、开源的磁盘使用分析工具&#xff0c;适用于Windows系统。它会扫描你的硬盘&#xff0c;列出所有文件和文件夹的大小&#xff0c;并以图形化的方式展示&#xff0c;便于理解。 可以用来检测硬盘文件夹占用从而,酌情处…

JAVA.抽象、接口、内部类

1.抽象 共性&#xff0c;父类定义抽象方法&#xff0c;子类必须重写&#xff0c;或者子类也是抽象类 示例代码 animal package animalabstract;//定义抽象类animal public abstract class animal {String name;int age;//定义抽象方法eat&#xff0c;子类必须重写public abs…

Java给定一些元素随机从中选择一个

文章目录 代码实现java.util.Random类实现随机取数(推荐)java.util.Collections实现(推荐)Java 8 Stream流实现(不推荐) 完整代码参考&#xff08;含测试数据&#xff09; 在Java中&#xff0c;要从给定的数据集合中随机选择一个元素&#xff0c;我们很容易想到可以使用 java.…

【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件

目录 ​编辑 前言 系统调用 open 参数flags 参数mode write 追加方式 read close 文件描述符 打开多个文件并观察其文件描述符 C语言文件操作 理解一切皆文件 理解open操作 前言 各类语言的文件操作其实是对系统调用的封装 我们经常说&#xff0c;创建一个文件&a…

力扣第三十七题——解数独

内容介绍 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff09; 数独…

CVE-2024-39700 (CVSS 9.9):JupyterLab 模板中存在严重漏洞

在广泛使用的 JupyterLab 扩展模板中发现了一个严重漏洞&#xff0c;编号为CVE-2024-39700 。此漏洞可能使攻击者能够在受影响的系统上远程执行代码&#xff0c;从而可能导致大范围入侵和数据泄露。 该漏洞源于在扩展创建过程中选择“测试”选项时自动生成“update-integratio…

VIM基础配置

1. CTAGS配置 下载 上传虚拟机&#xff0c;解压&#xff0c;进入目录 tar -xzvf ctags-5.8.tar.gz cd ctags-5.8/编译 ./configure sudo make sudo make install查看是否安装成功 ctags --version打印如下 2. 使用Vundle 下载 git clone https://github.com/VundleVim/Vund…

Linux并发程序设计(3):守护进程

目录 前言 一、介绍 1.1 概念 1.2 特点 1.3 举例 二、系统编程 2.1 setsid函数 2.2 getpid函数 2.3 getsid函数 2.4 getpgid函数 2.5 chdir函数 三、代码例程 3.1 使子进程在后台运行 3.2 使子进程脱离原终端 3.3 更换目录&#xff0c;并设定权限&#xff08;非…

基于STM32通过云平台实现智慧大棚【手机远程查看温湿度】【报警】

文章目录 一、成果演示二、所用到的模块三、实现的功能四、接线说明五、WIFI模块配置步骤5.1云平台介绍5.2云平台使用5.3使用USB转TTL测试联通云平台 六、STM32代码编写七、手机上查看数据6.1下载软件&#xff08;仅限安卓手机&#xff09;6.2操作 一、成果演示 STM32通过物联网…

String、StringBuffer和StringBuilder

一、String类 1. String类的理解 2. String类结构 1. String类实现了Serializable接口,说明String对象可以串行化,即可以在网络上传输 2. String类实现了Comparable接口,说明String对象可以比较 String底层是一个字符数组,这个数组里存的是字符串的内容 例如:…

005 仿muduo实现高性能服务器组件_通信连接管理

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;仿muduo &#x1f4d2;代码仓库&#xff1a; 项目代码 &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多知识 文章目录 前言Channel模块设计原因整体设计代码如下 Connection模块设计原…

Florence2:Advancing a unified representation for a variety of vision tasks

Florence-2模型:开启统一视觉基础模型的新篇章_florence -2-CSDN博客文章浏览阅读1.1k次,点赞108次,收藏109次。Florence-2是由微软Azure AI团队开发的一款多功能、统一的视觉模型。它通过统一的提示处理不同的视觉任务,表现出色且优于许多大型模型。Florence-2的设计理念是…