作者:楼观白楼

出处:https://zhuanlan.zhihu.com/p/98926322

写在前面

在本次比赛中,我们团队恶魔妈妈买面膜(经主办方建议,决赛时队名修改为秋名山车神)在初赛A榜,初赛B榜,复赛A榜,复赛B榜分别取得2,4,1,3的名次,并在最终决赛中逆袭拿到冠军(1/3000)。

本来复赛B榜是rank 4。由于有一个队伍由于使用小号被取消资格,一个队伍放弃复现,决赛逆袭一个队伍,最终拿到了冠军。说实话,运气非常好。

历时四个月,从多次想要放弃(中间有一个月放弃了没有做)到最终夺冠,真的十分感谢队友!

团队介绍

秋名山车神

梁晨 重庆邮电大学 研一

陈暄群 华南理工大学 研二

梁汐然 北京大学 大四

徐巍 重庆邮电大学 研二

王猛旗 重庆邮电大学 研一

如你们所见,我们来自三个不同的学校,通过本次比赛聚集在一起,在此也十分感谢DF平台与主办方CCF。

我们团队中大多数人都是第一次参加数据科学竞赛。

感谢开源

本次比赛要特别感谢的人是鱼佬,他的框架太强了。换成是我我不一定会在比赛中开源这么强的思路,从某种层面上来说这可能会坑到自己。所以敢于开源的人都应该值得称赞,开源与分享可以让整个环境进步。

另外还要感谢月月鸟,阿道,焕明(校友,就是54的那个规则开源,实际上我发现很多队伍的规则都是基于他做的),他们的开源也让我们学习到了很多。

代码

我们本次的方案一共约500行代码,主要的工作在于特征工程与规则构造,思路,代码都很简单,运行只需3min,请放心使用。

https://github.com/cxq80803716/2019-CCF-BDCI-Car_sales

接下来我会详细介绍一下本次的赛题与解决方案。

实测(8g内存,CPU:i5-8500,耗时132秒):

赛题介绍

CCF大数据与计算智能大赛(CCF Big Data & Computing Intelligence Contest,简称CCF BDCI)是由中国计算机学会大数据专家委员会于2013年创办的国际化智能算法、创新应用和大数据系统大型挑战赛事,是全球大数据与人工智能领域最具影响力的活动之一。

深瞳是一家大数据与行业智能应用解决方案运营商,为各行业客户提供数据分析与策略咨询服务,帮助行业客户进行数据资产化,为客户提供数据处理、建模分析服务。汽车行业是深瞳所重点服务的核心行业之一,长期服务于国内外知名汽车品牌客户。

近几年来,国内汽车市场由增量市场逐步进入存量市场阶段,2018年整体市场销量首次同比下降。在市场整体趋势逐步改变的环境下,消费者购车决策的过程也正在从线下向线上转移,我们希望能在销量数据自身趋势规律的基础上,找到消费者在互联网上的行为数据与销量之间的相关性,为汽车行业带来更准确有效的销量趋势预测。

https://www.datafountain.cn/competitions/352

备注:(原始数据下载地址,github已经有数据,可以不用下载)

链接:https://pan.baidu.com/s/1Zs5d9CWJuUoX7AmIKAoYmg

提取码:frqb

赛题需要参赛队伍根据给出的60款车型在22个细分市场(省份)的销量连续24个月(从2016年1月至2018年12月)的销量数据,建立销量预测模型;基于该模型预测同一款车型和相同细分市场在接下来一个季度连续4个月份的销量;除销量数据外,还提供同时期的用户互联网行为统计数据,包括:各细分市场每个车型名称的互联网搜索量数据;主流汽车垂直媒体用户活跃数据等。参赛队伍可同时使用这些非销量数据用于建模。

简单来说,本次赛题给出2016.1~2017.12的省份,车型,车身,销量,搜索量,评论量,评价量等,要求预测2018.1~2018.4的销量。

评价指标是归一化均方根误差的均值

数据分析

通过初步分析数据可以发现省份-车型所组成的类别特别多,并且对于同一车型,波动也挺大的,销量的范围较大等。

顺便说一下,我们经过多次尝试发现评论量与评价量几乎起不到作用,所以这两个特征我们并没有使用,如果你有办法处理这两个特征,欢迎评论讨论。

数据预处理

为了使数据分布更加符合高斯分布,对数据做了log1p的预处理。

算法整体方案

我们在初赛的时候尝试了xgb,lgb,cat,prophet,rule,lstm,cnn,并且初赛的最终结果是由lgb,prophet,rule与lstm融合而来。但是后来我们发现就算只用lgb和rule也能得到差不多的分数,时序模型与深度学习模型在这道小数据时序问题上并不适用,又考虑到工业环境中模型越少,越简单越好,因此复赛时,我们只使用了差异性足够大的lgb与rule两个模型。

抑制误差传递

直接使用鱼佬的框架能带来相当不错的效果,但是可以发现,越往后的月份误差的累计会越来越严重,因此在模型中,我们只拼接了1月份预测出来的值。

特征分析

在构造特征之前,对特征一些分析。

画出省份销量的热力图可以发现销量与省份的发达程度,临海程度是成一定正相关的,这与我们的直觉相符。因此各省份销量的差异明显,建模时必须对省份进行区别。

对于同一个月份,2016年与2017年的销量类似,即销量有周期性变化的特性。而且对于宏观变化而言,2017年的销量较2016年销量呈现下降趋势。

春节月的销量较低,春节后逐渐上升,年末达到最高。

特征工程

这一块是本次工作的重头戏,也是我们花费了最多时间的地方,最终,我们的模型特征由以下几部分组成。

考虑到春节等节假日,我们构造了与节假日相关的一些特征。

考虑到每个月的天数,工作日不同,我们构造了相关的特征。

由于是个时序问题,因此历史销量与销量的变化趋势是我们应该考虑的重点。针对此,我们在多个不同粒度下构造了历史平移特征,差分特征,同比/环比特征与趋势特征。

不过经过我们的尝试,同比的效果不怎么好。

更加详细的内容请看代码。

特征选择

我们所构造的特征实际上不止这些,不过由于信息重叠与毒特等原因,我们使用了一些方法对特征进行筛选。

我们使用了树模型的特征重要性排序,均值判断与SHAP进行特征筛选。

特征重要性排序:根据树模型输出的特征重要性进行筛选,去掉重要性低的特征。

均值判断:由于本道赛题中,1234月具有相对固定的均值比例与均值大小,因此可以通过添加/删除特征后1234月的平均均值来大概判断特征的好坏。

SHAP:利用了组合博弈论的知识,防止因为信息重叠而导致的特征重要度不公平的情况。

初赛LGB的构建流程

初赛时lgb做的一些操作与对应的分数如下

统计规则

规则部分的框架是使用历史同期销量,历史最近销量与指数平滑进行加权得到一个初步预测销量,然后用上下半年的销量变化趋势与平滑构造年度销量变化趋势,最后两者相乘即可得到规则的预测结果。

由此可见,规则带有相当多的超参数。据我了解不少团队复赛时规则血崩,这也是时序题里面规则的泛性问题。我们初赛时规则可以达到0.633,是一个绝对的主力,复赛提交次数太少,最终规则也只有0.598,只能以lgb为主,规则为辅。

模型融合

因为只有两个模型,所以模型融合基本上不用考虑太多,直接进行简单的算数/几何加权即可,由于几何加权可以使预测值偏小,而2018年的销量理应是较之前低的,所以我们使用了几何加权进行融合。

另外1234月分开进行融合,可以带来微小的提升。

总结

这里特别提一下模型的数量与运行时间的优点,据我们决赛观察,大多数队伍都有超过2个的模型,而且有的队伍需要超过一个小时的运行时间。从工业角度来讲,我们的方案应该是更加适用的。

备注:公众号菜单包含了整理了一本AI小抄非常适合在通勤路上用学习

往期精彩回顾那些年做的学术公益-你不是一个人在战斗适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(第一部分)备注:加入本站微信群或者qq群,请回复“加群”加入知识星球(4500+用户,ID:92416895),请回复“知识星球”

喜欢文章,点个在看

开源!2019CCF BDCI 乘用车销量预测 冠军方案相关推荐

  1. 竞赛,开源!2019CCF BDCI 乘用车销量预测 冠军方案

    作者:楼观白楼 出处:https://zhuanlan.zhihu.com/p/98926322 写在前面 在本次比赛中,我们团队恶魔妈妈买面膜(经主办方建议,决赛时队名修改为秋名山车神)在初赛A榜, ...

  2. 【数据竞赛】消费金融场景下的用户购买预测冠军方案分享

    大赛介绍 2000多年前,阿基米德说:"给我一个支点,我可以撬动整个地球".伴随近年来新技术的快速涌现和迅猛发展,大数据或将成为传统金融行业向金融科技转型的"阿基米德支点 ...

  3. Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招

    https://baijiahao.baidu.com/s?id=1595331607299762312&wfr=spider&for=pc 雷锋网 AI 研习社消息,Kaggle 上 ...

  4. 开源:CVPR 2020视觉定位挑战赛冠军方案

    今天介绍今年视觉定位挑战赛的冠军方案.接下来会分别介绍什么是视觉定位挑战赛,比赛的难点是什么,冠军方案以及后续展望. 1. 关于视觉定位挑战赛 视觉定位是一个估计6自由度(DoF)相机姿态的问题,从中 ...

  5. 英伟达冠军!FB-OCC:CVPR23 3D占用预测冠军方案解读

    作者 | 自动驾驶我睡觉 编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/638759432 点击下方卡片,关注"自动驾驶之心"公众号 ADA ...

  6. ModelArts的雪中送炭,让我拿下CCF BDCI华为Severless工作负载预测亚军

    摘要: 中国计算机学会大数据与计算智能大赛(CCF BDCI)华为Severless工作负载预测亚军方案和ModelArts使用体验分享 本文分享自华为云社区<免费薅ModelArts算力资源- ...

  7. 【数据竞赛】CCF乘用车细分市场销量预测竞赛总结

    题目:乘用车细分市场销量预测 类型:时序回归 https://datafountain.cn/competitions/352/ 赛题背景 近几年来,国内汽车市场由增量市场逐步进入存量市场阶段,201 ...

  8. CCF-乘用车细分市场销量预测竞赛

    乘用车细分市场销量预测 需求:根据给出的60款车型在22个细分市场(省份)的销量连续24个月(从2016年1月至2018年12月)的销量数据,建立销量预测模型:基于该模型预测同一款车型和相同细分市场在 ...

  9. 全球及中国特斯拉产业销量预测及投资机遇调研报告2021-2027年

    全球及中国特斯拉产业销量预测及投资机遇调研报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年10月 [ ...

最新文章

  1. python过采样代码实现_过采样中用到的SMOTE算法
  2. 选择select 标签中指定值的option
  3. 关于在呼叫中心业务中应用语音识别技术的探讨
  4. python不好的地方_Python 语言中经常有疑惑的地方
  5. Madplay移植到mini2440开发板【转】
  6. [react-router] React-Router怎么获取历史对象?
  7. mysql合并多条纪录字段_Mysql应用mysql合并多条记录的单个字段去一条记录编辑
  8. NHibernate Profiler使用方法
  9. (三) OpenCV仿射变换与透射变换(Affine and Perspective Transform)
  10. 快切-开源中文css框架之纯css透明
  11. Java 线程池(ThreadPoolExecutor)原理解析
  12. 研磨设计模式-设计模式的基础-设计模式有什么
  13. Python求解二元二次函数梯度
  14. ELK入门使用-与springboot集成
  15. HISI3559A 使用yolov3 (VI-VPSS-VO)实时目标检测
  16. CNN模型之DenseNet总结
  17. 基于彩色直方图自适应检测电影镜头切换
  18. Validator检验框架的使用
  19. 凭什么都是Java开发三年,而他能进大厂薪资是“我”2倍?
  20. 容器云java开发_使用码云构建 Docker 容器镜像并部署到华为云

热门文章

  1. 解题报告 『[NOI2014]起床困难综合症』
  2. 数据库限制内存使用方法
  3. 作为网站管理,你的性能监测工作如何开展?
  4. 浏览器上网 (Safari Chrome)
  5. java--面向对象(4)--黑马程序员
  6. hdu 1301 Jungle Roads 最小生成树
  7. Delphi实现类似Android锁屏的密码锁控件
  8. 如何 Credit Hold 客户
  9. 解决TM2008的界面字体问题
  10. MAC上安装iTerm2+oh my zsh+设置Dracula主题