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

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

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.

相关推荐
热点推荐
一针1756万,打一针管一辈子!

一针1756万,打一针管一辈子!

医脉圈
2026-07-12 20:06:25
上海4家大三甲领导班子调整:6名党委书记、院长、副院长集中履新

上海4家大三甲领导班子调整:6名党委书记、院长、副院长集中履新

上观新闻
2026-07-14 16:03:45
为什么奶茶店,都要把悦鲜活的空瓶子当菩萨供着?

为什么奶茶店,都要把悦鲜活的空瓶子当菩萨供着?

差评XPIN
2026-07-13 00:10:25
51岁女人哭诉:跳交谊舞的男人实在太坏,换了2个舞伴,结局一样

51岁女人哭诉:跳交谊舞的男人实在太坏,换了2个舞伴,结局一样

烙任情感
2026-07-13 15:48:15
成都市第三人民医院:6500万元项目遭7次投诉!

成都市第三人民医院:6500万元项目遭7次投诉!

乔益民
2026-07-14 08:20:28
中国科学技术大学少年班录取名单公布!安徽10人,江苏广东各8人

中国科学技术大学少年班录取名单公布!安徽10人,江苏广东各8人

糖逗在娱乐
2026-07-13 20:17:52
于谦同志个人简历

于谦同志个人简历

乡野小珥
2026-07-14 06:19:37
从富裕到贫穷,南非只用了一个伟人曼德拉,这个伟人他做了什么?

从富裕到贫穷,南非只用了一个伟人曼德拉,这个伟人他做了什么?

猪小艳吖
2026-06-25 22:17:25
欧洲极端高温致空调紧缺,法国男子花1412元人肉托运救母

欧洲极端高温致空调紧缺,法国男子花1412元人肉托运救母

小兔子发现大事情
2026-07-14 12:35:36
举火烧天单手隔扣!杨瀚森爆发轰18+10+5:完爆2米17中锋

举火烧天单手隔扣!杨瀚森爆发轰18+10+5:完爆2米17中锋

李喜林篮球绝杀
2026-07-14 14:10:57
没想到,抗击渐冻症7年的蔡磊,8岁儿子竟凭一个举动给他长脸了

没想到,抗击渐冻症7年的蔡磊,8岁儿子竟凭一个举动给他长脸了

格斗联盟有话说
2026-07-14 06:15:56
让身体炎症全部消失的 20 个习惯清单

让身体炎症全部消失的 20 个习惯清单

今日养生之道
2026-07-12 08:34:20
在殡仪馆上班15年的朋友告诉我:人死的时候,其实跟一只鸡没区别

在殡仪馆上班15年的朋友告诉我:人死的时候,其实跟一只鸡没区别

千秋文化
2026-07-13 19:38:47
尬住!英格兰出线,贝克汉姆激动疯了,贝嫂却完全冷脸:对足球完全无感啊...

尬住!英格兰出线,贝克汉姆激动疯了,贝嫂却完全冷脸:对足球完全无感啊...

英国那些事儿
2026-07-14 02:11:29
伊朗外长:伊朗永远是霍尔木兹海峡的守护者

伊朗外长:伊朗永远是霍尔木兹海峡的守护者

新华社
2026-07-14 08:40:02
为什么特朗普对中国态度转变如此之大

为什么特朗普对中国态度转变如此之大

小眼睛小世界
2026-07-14 06:24:03
上海富二代娶300斤女子,3个月后妻子幸福死去,真相让人脊背发凉

上海富二代娶300斤女子,3个月后妻子幸福死去,真相让人脊背发凉

温情邮局
2025-03-24 17:51:41
终于有经济学家批评体制内退休金太高、加剧代际矛盾,评论区炸锅

终于有经济学家批评体制内退休金太高、加剧代际矛盾,评论区炸锅

慧翔百科
2026-06-23 08:47:02
"王思聪和女友懒懒"开晒温布尔登网球赛现场动态,被网友偶遇了~

"王思聪和女友懒懒"开晒温布尔登网球赛现场动态,被网友偶遇了~

Supreme情报网
2026-07-14 12:40:39
抵达北京,樊振东官宣签约,即将首秀

抵达北京,樊振东官宣签约,即将首秀

最爱乒乓球
2026-07-14 02:35:40
2026-07-14 16:47:00
亲爱的数据 incentive-icons
亲爱的数据
《我看见了风暴:人工智能基建革命》一书作者
696文章数 219909关注度
往期回顾 全部

科技要闻

AI失业风险正在逼近 "我们连未来都看不清"

头条要闻

韩国司机失去意识大巴失控 中国女乘客救了一车人

头条要闻

韩国司机失去意识大巴失控 中国女乘客救了一车人

体育要闻

33岁成为法国主力,他将在世界杯防守亚马尔

娱乐要闻

施南生离世,成龙、甄子丹等发文悼念

财经要闻

为什么说智谱是中国版Anthropic是伪命题

汽车要闻

小米澎程N90 Max工信部信息曝光 全尺寸旗舰 露营版首秀

态度原创

艺术
健康
数码
本地
军事航空

艺术要闻

8.5度抗震!新疆第一座高层5星酒店,封顶!

这几类人离中风最近!有你吗?

数码要闻

机械师曙光16S Ultra新增16GB版本:标价11999元比32GB版本还贵!

本地新闻

打的直达拉萨,一条视频拿下五十万奖金

军事要闻

美军宣布将于14日恢复对伊朗的海上封锁

无障碍浏览 进入关怀版