网易首页 > 网易号 > 正文 申请入驻

如何预测百威啤酒销量?数据竞赛冠军笔记分享

0
分享至

赛题背景

  • 组织方:微软加速器

  • 真实数据来源:几家顶级快消品牌

  • 上海站:百威英博命题,并提供脱敏的业务数据

  • 提出三个问题:

1.库存需求预测

2.销售数量预测

3.经销商违规行为检测

  • 数据大致的情况

原始数据中,大致包含了百威全国400多家门店的数据,商品的种类800多个,一整年历史销售数据,精确到每日,数据400多万行。需要预测未来一个月内未来商品的销量。

第一步:数据探索

先进行数据探索,理解一下数据的分布,和大致的特征。后面怎么样去做你的模型。数值分布,统计检验。不可能上来就跑个模型,看下效果。

常用方法一:数值分布,统计检验,左边直方图,即数据的分布情况,右边这个是皮尔森相关性检验(Pearson correlation coefficient),就是特征之间的相关度是什么样的。

Python的库missing number。观察缺失值的情况。因为百威提供的数据质量很高,所以不需要考虑填充缺失值。

常用预测方法二:

预测方法一:历史数据用折线图等形式画出来,从历史中寻找商品和门店的行为规律。

有的有规律性,有的没有。如下图。

所以各个商品之间行为的模式(pattern)不一样。

这样的分析有什么好处呢?通过分析发现,有的商品数据点很稀少。需要分别建立模型,有些不需要建立模型。历史上出现一两次的情况,可以历史平均和预测为零来处理。不用极端数据影响整体的效果。

预测方法二:正则化。基于统计规则,历史上某些值的平均值,比他两三个标准差偏差还要多的话,会认为异常值,我们会把这些值缩小一下。

预测方法三:基于模型预测,先构建一个简单的模型,训练后,跑一下模型,观察误差特别大的点,也有可能是离群值或者异常值。这样就可以针对他们做一些处理。

预测方法四:移动平均。

预测方法五:对数据进行log的预处理。

Log预处理是时间序列和线性模型中经常会遇到。很多情况下,会要求你的时间序列的值是稳定的,有时也会对预测值做Log处理,有时也会做差分处理。还有一些线性模型对残差,大多数假设是一个正态分布的残差。

如果数值分布的偏度很高,也会有问题,会用log来做预处理。

日期对齐也是时间序列预测问题中常见的技术。比如中国春节在一月或者二月,需要考虑历史数据上春节的月份和今年春节的时间点是不是对的上。如果对不上是预处理,会提高预测的精度。

还有一些业务相关的逻辑。比如销量为零,售价不为零之类。也需要做处理。

以上是数据探索的过程。

特征工程的构建

加入地理位置,门店当地的经济指数,当时气温、赛事、节假日、促销活动等。

聚类方法:用无监督的方法,对原始数据进行聚类,把相像的门店或者产品放在一起。分别来做子模型,或者把标签当做特征加进去。

基础特征方面,百威提供原始数据集的特征,在此基础上做了一些各维度的统计聚合,需要各维度聚合——时间、门店、商品:比如,日期衍生(是否是节假日,本周的节假日有几天,距离下一个工作日有几天)、商品、门店属性、各类高级计算。新商品从第一天开始售卖,累计的销售天数。

高级的特征处理方式:

2014年Facebook在论文中提出的方法——GBDT生成特征,论文认为决策树的模型可以自动做一些特征的组合和转换。说白了就是把Input放进去之后,看每一棵树,落在每一个叶子的节点上,以此做一个新的特征,原始论文中,把特征放在一个逻辑回归的模型中去做,当然你也可以把输出的特征和原始的特征加在一起,放在XGBoost、或者

FM(Factorization Machine 因子分解机,又称分解机器,旨在解决大规模稀疏数据下的特征组合问题)。

图片是Embedding的方法,因为深度学习的应用比较火的结果,大家都有兴趣把深度学习的模型,应用到商业分析里面。这个借鉴了word2vec的方法,让相近的门店与产品,本来是稀疏的特征,希望通过一系列的Embedding转换之后,转换到稠密的向量空间中,一些相近的商品门店,在向量空间中距离比较近,这样起到了特征转换。

在比赛中,我们用Keras做了Embedding实现,把商品、日期、门店做了Embedding,

套几个全连接的层,加一些东西,一直到输出到结果。

t-SNE降维处理,画在二维的图标上面,

左边月份的聚类,789月热,距离在图上近,天气比较冷的月份在图中距离差的比较远。右边t-SNE图是所有门店的图,因为得到的数据门店都用的ID(全数字)来表示,所以只能推测是行为模式比较像、或者地理位置比较近的门店是脱敏数据,所以没有办法检验。

模型调优

基线: 历史平均(一般来说对复杂的,实际数据的预测问题,对历史销量平均做预测值)

时间序列: SARIMAX, tbats, generalized additive model(广义加性模型)

树模型: Random Forest, XGBoost, LightGBM

深度学习: embedding, wide and deep, LSTM在特征工程之后,我们会做一些模型的选择。,还有一些方法,比如时间序列等方法。

树模型是数据科学比赛常用的,XGBoost、随机森林、因为是微软的比赛,我们尝试了微软的LightGBM,实现效果如何。还尝试了深度学习的模型embedding、wide and deep, LSTM等模型。

历史平均、简单平均、加权平均,移动平滑平均都可以使用。比赛中MAPE: 0.744,这个数值为后续服务,模型调优的基线。

时间预测模型的示意图:GAM库,时间预测模型比较简单、预测值稳定,可解释性强,黑点是真实值,深蓝色预测值,淡蓝色是置信区间。

有很多点捕捉不到,所以误差会大。

时间序列的可解释性

趋势:7、8、9月天气热,啤酒销量好;节假日、周末周期性强。

树模型:

应用非常广泛,尤其是非图像的,文本、语音,商业数据很多主流的方法就是树模型,

1. Random Forest

2. GBRT

优点:

对于离群值的鲁棒性较好

数据分布要求低(不需要做预测力,神经网络一般会要求做归一化,让数据的分布一致一些,否则模型效果会差。)

可解释性强(每个节点都会告诉你,分裂的规则)

可以用于特征选择(训练完会告诉你权重,可以依次来选择一些特征,把精简之后的特征喂给其他的模型,比如线性回归等简单的模型)

这次比赛,

主要用XGBoost、LightGBM库对比

XGBoost

Train time: 487.68 seconds

MAPE: 0.251

LightGBM(虽然需要指定超参数、但是效果很好)

Train time: 19.19 seconds

MAPE: 0.256

深度学习:

我们把预测值销量归一化,

  • Embedding网络示意图,

  • 计算资源需求较大

  • 超参数调优

  • 网络结构

  • Embedding size

  • Dropout

  • MAPE: 0.654

赛题中400万的数据,跑起来非常慢,因为比赛中没有使用GPU所以训练的时间还是比较久的。

另外一点,Embedding把原始的特征输入,虽然特征工程少一些,但网络的超参数需要调整,而且很多然而没有理论依据,说白了就是尝试,一直尝试哪个会比较好,MAPE: 0.654比平均值稍微好一点。比起XGBoost的基准线还是差了很多。

把线性模型的东西加进来,可以两个模型一起训练,线性模型主要做记忆功能,历史上出现的模式可以通过线性模型,记忆下来。

Deep Models提升泛化能力。

下图是用TensorFlow来实现wide and deep models。

左边是deep model的实现,右边是线性模型(wide层)。

图中为,原始论文中的特征的构建方式,deep models那层要求输入是密集型的,稀疏是不能直接做输入的,所以要做转换,有的用Embedding等来做转换。

模型选择完后,需要进行模型的训练和调优,其中重要的一步是交叉验证,在时间序列中,交叉验证有一个重点——构建与真实场景一致的切分方式。在时间序列中用一个连续的一段时间去预测紧接着的时间一个时间切分,切分方式与真实场景一致,随机切分不是在真实场景中的切分方式。会影响效果。

超参数的调整

1.启发式调优

用经验。比较简单的是用启发式的调优,先固定一个比较大的learning rate去调树的数量、树的深度、叶子节点分页需要的条件之类的。

2.网格搜索

把所有想要尝试的参数写下来。网格搜索自动把所有的组合尝试一遍,帮你找到最优的组合,把最优的结果返回给你。

3.贝叶斯优化

把超参数搜索的过程看成高斯过程,库会自动尝试不同参数,然后寻找下一个最可能出现比较低的loss的尝试,搜索空间的计算量比网格搜索小很多。

模型融合

用模型融合的方法来做效果提升。做完这个超参数调整之后,一般来说,最后用模型融合的方法来做效果提升,首先保证模型具有一定的差异性,可以选择不同随机数种子,生成不同的预测结果,最后再把各个模型融合起来。

比较常见的模型融合的方法是Blending和Stacking。是现在有很多库已经实现了,调用非常方便。Stacking就是把各个模型的预测值预测出来,把预测值作为特征输入下一层模型中,下一层自动选择最好的融合参数,有的模型权重高,有的权重低。把最后融合好的预测值给输出。

误差分析

预测结束后,会对模型做最终的调优。主要看模型会在哪些点上产生误差。如何通过各种方法产生大的误差,误差最大的点要进行细致深入的分析,为什么会出现这样的误差。日后我们通过各种方法去解决大误差。

一个新产品,第一次在要预测的月份售卖。卖出了几千份。用历史数据很难预测准确。所以会产生误差。这种情况可以建立子模型专门去新品销售数量的预测。融合模型方面,用了三个XGBoost、LightGBM、Random Forest,其实也可以用时间序列和神经网络,但是主要是因为计算资源有限,所以没有观察最终融合的效果。最后得到的MAPE: 0.236,比起基准线,好了很多。(完)

补充:

观远数据团队也在探索,如何将深度学习应用到商业分析领域,现在来说还是待决的问题,不像图像和语音识别技术已经取得和很大的进展,深度学习在商业分析领域处理较少数据量,复杂规律、复杂业务特征等方面很有挑战。期待数据科学家的加入。

以上内容为观远数据技术合伙人周远技术公开课分享笔记,未能与本人确认所有细节,仅供参考。赛事为微软大中华区智能零售(Smart Retail)解决方案新创企业黑客松上海站。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
城管别车砸窗后续:车主报警、拒绝私了,城管摊上大事了!

城管别车砸窗后续:车主报警、拒绝私了,城管摊上大事了!

校长侃财
2024-05-19 13:33:00
解放台湾不用愁!台专家:大陆两招可让美日跪地求饶

解放台湾不用愁!台专家:大陆两招可让美日跪地求饶

萌萌鳜的路亚日记呀
2024-05-19 11:19:06
大反转,张康阳强势声音!橡树资本很意外,球迷:摧毁了王朝球队

大反转,张康阳强势声音!橡树资本很意外,球迷:摧毁了王朝球队

阿泰希特
2024-05-19 09:58:42
扔掉一堆东西后,这6样东西我不会再囤了,个个是贫穷家庭的通病

扔掉一堆东西后,这6样东西我不会再囤了,个个是贫穷家庭的通病

美家指南
2024-05-17 08:03:57
王健林还清6000亿债务后终于现身!却与往日精神模样判若两人!

王健林还清6000亿债务后终于现身!却与往日精神模样判若两人!

柠檬有娱乐
2024-05-18 09:56:07
三大消息:拜登不参选了?中方不得不提前打算;美正式下令撤兵

三大消息:拜登不参选了?中方不得不提前打算;美正式下令撤兵

凝心斋时代
2024-05-18 10:07:14
万达集团创始人王健林宣布退出公司并将全部股权转让给中国儒意

万达集团创始人王健林宣布退出公司并将全部股权转让给中国儒意

鹏飞深文
2024-04-22 12:19:28
研究人员警告:感染过新冠的人应去检查眼睛

研究人员警告:感染过新冠的人应去检查眼睛

萍聚德国
2024-05-18 00:11:28
郭有才的爆火,真相其实很恐怖

郭有才的爆火,真相其实很恐怖

刘娜
2024-05-17 12:33:47
粉碎争议!裁判回应亚历山大致命犯规 华盛顿始终控制球权被打手

粉碎争议!裁判回应亚历山大致命犯规 华盛顿始终控制球权被打手

醉卧浮生
2024-05-19 13:10:30
蔡英文赶在卸任前对陆放话,声称武统代价高,台“立国”只差一步

蔡英文赶在卸任前对陆放话,声称武统代价高,台“立国”只差一步

贺文萍
2024-05-18 16:10:12
明明是同一人,演完《狂飙》又演《庆余年2》,差点认不出

明明是同一人,演完《狂飙》又演《庆余年2》,差点认不出

娱影综说
2024-05-18 20:20:05
果然!广东一线城市开始暴跌了!

果然!广东一线城市开始暴跌了!

李秋颜哦耶
2024-05-19 10:54:39
内蒙男子发现妻子出轨,在卧室装7个摄像头,情夫身份让他崩溃

内蒙男子发现妻子出轨,在卧室装7个摄像头,情夫身份让他崩溃

莉雅细细谈
2024-05-18 17:59:11
北大“招生老师”破格录取网红“郭有才”?北大回应:假的!

北大“招生老师”破格录取网红“郭有才”?北大回应:假的!

澎湃新闻
2024-05-18 22:30:32
滇红茶为什么比一般红茶耐泡?

滇红茶为什么比一般红茶耐泡?

华庭讲美食
2024-04-27 00:07:40
江苏老板晒自家小厂员工伙食,自夸行内第一,引得朋友圈里沸腾了

江苏老板晒自家小厂员工伙食,自夸行内第一,引得朋友圈里沸腾了

小料教你做美食
2024-05-19 14:11:26
送给中国式家长的一记响亮耳光:教育投资是最血本无归的项目!

送给中国式家长的一记响亮耳光:教育投资是最血本无归的项目!

芯怡飞
2024-05-18 12:12:01
郭有才并非草根,早前奢侈生活曝光:女友用名牌,开豪车泰国旅游

郭有才并非草根,早前奢侈生活曝光:女友用名牌,开豪车泰国旅游

娱乐圈酸柠檬
2024-05-19 13:52:15
绝密!俄罗斯安全部门大动作,中将半夜被捕惊动全城

绝密!俄罗斯安全部门大动作,中将半夜被捕惊动全城

三界见闻
2024-05-15 11:24:12
2024-05-19 18:04:49
亲爱的数据
亲爱的数据
顺着技术写产业落地。
651文章数 219845关注度
往期回顾 全部

科技要闻

雷军直播开车2000万人围观!突然遭别车

头条要闻

博主在连云港市场遇"鬼秤" 隔壁商家无奈:手机被打爆

头条要闻

博主在连云港市场遇"鬼秤" 隔壁商家无奈:手机被打爆

体育要闻

欧文:我尽力不哭出来 我们还要走很远

娱乐要闻

《庆余年2》首播口碑出炉!有好有坏

财经要闻

洞庭湖区非法采砂 2000余亩洲滩被挖空

汽车要闻

智驾升级/月底上市 问界新M7 MAX焕新版

态度原创

健康
教育
游戏
家居
本地

在中国,到底哪些人在吃“伟哥”?

教育要闻

倍数易错题,小明有80元,比小红的4倍少4元,求小红有多少钱?

科幻感十足!博主分享《质量效应》新作概念图

家居要闻

遇见交响 音乐流动在设计之中

本地新闻

博物馆的正确打开方式|来河南,沉浸式体验中原文明

无障碍浏览 进入关怀版