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

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)。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Qt】修改窗口的标题和图标
  • PHP西陆招聘求职系统小程序源码
  • chrome 接口请求等待时间(installed 已停止)过长问题定位
  • 实现代码灵活性:用Roslyn动态编译和执行存储在数据库中的C#代码
  • 论文解读:DiAD之SG网络
  • win 自动的杀毒软件,误报病毒情况 如何排除
  • jmeter录制
  • ESP32无线WiFi蓝牙双模方案加速设备联网创新,启明云端乐鑫代理商
  • Java小白入门到实战应用教程-switch case条件语句
  • 图片等比例缩放方案
  • 2235234234
  • 人工智能幻觉的成因分析和解决措施的挑战
  • Flink CDC基本概念以及MySQL同步到MySQL
  • 【C++】C++11新特性(1)
  • SpringCloud03
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Javascript编码规范
  • Javascript弹出层-初探
  • jquery cookie
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • LeetCode18.四数之和 JavaScript
  • magento 货币换算
  • python3 使用 asyncio 代替线程
  • Python语法速览与机器学习开发环境搭建
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Vultr 教程目录
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 京东美团研发面经
  • 聊聊flink的BlobWriter
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深入浏览器事件循环的本质
  • 手机端车牌号码键盘的vue组件
  • 写给高年级小学生看的《Bash 指南》
  • 《天龙八部3D》Unity技术方案揭秘
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #《AI中文版》V3 第 1 章 概述
  • #DBA杂记1
  • $.ajax()方法详解
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (四)opengl函数加载和错误处理
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (自适应手机端)行业协会机构网站模板
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 事件模型教程(二)
  • .net6+aspose.words导出word并转pdf
  • .NET框架