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,一经查实,立即删除!

相关文章

C语言系统调用linux文件系统

在C语言中,open、write和read函数是系统调用(system calls),它们直接由操作系统提供,用于底层的文件操作。这些函数是UNIX和类UNIX系统(如Linux)中的标准接口,不同于C标准库中的文件…

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

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

SRTOD

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

SLAM面试题

常见的slam面试问题如下,在文章末尾有《自动驾驶100问》的视频内容,可以去看看: 1.重定位和回环检测的区别是什么? 2.单应矩阵H和基础矩阵F的区别是什么? 3.视觉SLAM方法的分类和对应的特点分析。 4.关键帧的作用是…

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有多大。…

分布式智能:Mojo模型在分布式系统中的动态使用策略

分布式智能&#xff1a;Mojo模型在分布式系统中的动态使用策略 在当今的大数据时代&#xff0c;机器学习模型经常需要在分布式系统中运行&#xff0c;以处理大规模数据集并提高计算效率。Mojo模型&#xff0c;作为一个泛指&#xff0c;可以代表任何机器学习或深度学习模型。实…

Java 注解概述和自定义注解案例

文章目录 一、注解概述1.1 什么是注解1.2 注解的用途1.3 注解的常见种类1.4 注解类型和常用注解 二、自定义注解2.1 自定义注解的格式2.2 自定义注解中的属性2.3 自定义注解的案例 参考资料 一、注解概述 1.1 什么是注解 注解是元数据的一种形式&#xff0c;它提供的数据不是…

Android 里SQLite和ROOM框架简单介绍

简单的Android SQLite使用 最简单的SQLite 在 Android 开发中&#xff0c;SQLite是一个轻量级的关系型数据库管理系统&#xff0c;经常用于存储和管理应用程序的数据。如果你刚刚学习Android数据库的使用&#xff0c;你一定要学习SQLite的使用。以下是一个简单的示例&#xf…

优化算法|自适应大邻域搜索算法及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) % 每个节点单独一条…

Javascript面试基础6【每日更新10】

Gulp gulp是前端开发过程中一种基于流的代码构建工具&#xff0c;是自动化项目的构建利器;它不仅能对网站资源进行优化&#xff0c;而且在开发过程中很多重复的任务能够使用正确的工具自动完成 Gulp的核心概念:流 流&#xff0c;简单来说就是建立在面向对象基础上的一种抽象的…

【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 安装两个常用插件…

基于riscv64架构的Dayu800开发板的napi_demo开发介绍

itopen组织1、提供OpenHarmony优雅实用的小工具2、手把手适配riscv qemu linux的三方库移植3、未来计划riscv qemu ohos的三方库移植 小程序开发4、一切拥抱开源&#xff0c;拥抱国产化 一、环境准备工作 1.1 Ubuntu20.04环境配置 如果已经配置OpenHarmony的编译环境则…

目标检测 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;便于理解。 可以用来检测硬盘文件夹占用从而,酌情处…

【C#】获取DICOM图像像素的像素值

8位像素深度的像素值 public byte GetGreyValue(int x, int y) {x Math.Min(x, m_nWidth - 1);y Math.Min(y, m_nHeight - 1);unsafe{byte* greyValue (byte*)m_pDicomData.ToPointer() y * m_nWidth x;return *greyValue;} } 16位像素深度的像素值 public ushort GetG…

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.…

Redis快速入门(一)

一、初识Redis 1、认识NoSQL NoSql可以翻译做Not Only Sql(不仅仅是SQL),或者是No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为非关系型数据库。   a)结构化与非结构化   传统关系型数据库是结构化数据,每一张…