我的Kaggle初体验 Grupo Bimbo Inventory Demand

这个暑假利用在西班牙交流的时间,我开始着手做自己的第一个Kaggle比赛,总得感觉还是收获特别多,所以也希望和小伙伴分享自己的经验(编程、计算、模型、体验)。这次最终排名在11/1969,获得了一块金牌。

虽说自己是Kaggle新手,但是我自己已经有三年多机器学习经验啦,做过算法也做过应用,对大部分常用模型都有一定的了解。但是关于怎样在Kaggle中获得好成绩,在比赛开始的时候我还什么都不知道,所以前两个星期各种做无用功。

这个比赛的目的是预测 Grupo Bimbo Inventory Demand:Grupo Bimbo公司服务于墨西哥几乎所有的零售商,给他们提供食物和饮料产品;每个零售商每周进货和退货的数据,在Grupo Bimbo的数据库都有记录;这个进货和退货的过程很大程度上都伴随的成本(包括运输成本,损耗成本等);这次比赛提供了整个墨西哥7周(标签为3-11周)的数据,前5周(3-9周)有数据的demand label作为训练集合,后2周(10,11)没有label作为test集;这两周中前一周(第10周)作为public leaderboard,后一周(第11周)作为private leaderboard用来作为最终的排名。

我就用时间顺序来叙述一下整个过程。

Problem Formulation Got Wrong

一开始我觉得这是一个时间序列预测的问题,所以我首先想到的是HMM,给一个(客户,产品)的Tuple,对其历史数据做建模。这样大概做了一周,我发觉意义不大,主要原因是有相当比例的客户每周是会引进新的产品的,并不是每个(客户,产品)都有足够的历史数据来支撑模型的估算。我后来想想,我应该做一些Data Exploration的工作,尤其是在建模之前,不然就会吃很多亏,以为数据是什么样,而实际上并不是这样。

我后来想想应该把它设计成一个监督学习的问题,这样才能最大程度发挥数据的潜能。这样做最为直接的办法是,用3-8周的数据为第9周做特征,得到的模型可以预测第10周(用4-9周的数据做特征),这样做了之后我在leaderboard上的成绩很快就进入了前20%。

Validation Strategy Got Wrong

但是很快我就发现这样做会碰到一个瓶颈:本地Cross Validation的结果明明提升了,但是在Leaderboard上的结果却没有。仔细思考一番就会发现,原因在于我local validation的split (random split)和train/test split (split by time)是不一致的,这样在local validation得到的超参数在train/test split上并不是最优的。想到这个层次后,我就调整了自己的validation strategy,用3-7周为第8周做特征,然后训练,类似的用第9周做validation,得到的超参数在第9周重新训练模型,在第10周也就是public leaderboard做test。这样做了之后我很快就进入10%。

Feature Engineering

接下来做的事情就是增加更多的特征,但是我自己并不是特别有做特征的经验,这个时候怎么办呢?我点开Leaderboard(LB)上排名前20的人,一个人一个人的看他们以前都参加过什么比赛,在哪些比赛中表现的比较好,那些比赛他们用了什么方法。一般Prize Winner都会分享自己的solution,我想他们既然能做好一定是有一些常规经验可以借鉴的。

前面提到由于历史数据有很大比例的缺失(因为客户每周都会引进新的产品)如何对这部分缺失的历史数据做补全就变得挺重要了。LB上有些人在过去的比赛中曾经用过Field-aware Factorization Machine(FFM)赢过一些forecasting性质的比赛,这是一种Factorization Machine的变体,具有比较广泛的实用性。受这些内容的启发,并在了解了其基本原理后,我就用网上找的代码实现了一些基于FFM的特征,于是不出意外我就很快进入前20了。

再然后我感觉我对自己使用XGBoost缺乏经验,里面有很多参数我都不太清楚。我就去网上找有没有相关经验分享的Slides和视频。Kaggle每隔一段时间就会邀请一些全站排名很高的人来做讲座,网上都有他们的视频,这些视频通常都会分享一些调参数和做特征的经验,看了这些资料后我在XGB的调参有了很大的进步,自己的LB排名一度到了第二,截图留念!

大数据

在关于做特征的方向上,我也做了一些探索性的工作。我把Validation集上的Error拿出来做了一些简单的分析。发现产生较大Error的原因主要有两方面,一方面是就是我之前所说的Missing History,这类Error可以通过一些协同过滤的办法有效规避,另一方面是一些客户会不定期的退货,相比进货量,退货量的预测是非常困难的。作为供货方的Grupo Bimbo并没有提供这方面的信息,某种程度来说,我个人觉得这个问题是Unsolvable的。
Validation Strategy Got Wrong Again

用户喜欢...

大数据和云计算的冲突

最近,IT行业专家在参加相关会议时发现了一个隐藏的主题,那就是虽然很多人将关注的重点转移到基于云计算的架构...


智能家居为何需要大数据, 大数据在智能家居领域的贡献是什么?

大数据分为大数据存储和大数据分析,属于两种截然不同的计算机技术领域,大数据存储用于大数据分析。大数据存储重点在于研发可以扩展至PB甚至EB级别的数据存储平台;大数据分析关注在...


陆金所计葵生:深度解析大数据和AI对未来金融影响

陆金所联席董事长兼CEO计葵生在北京大学数字金融研究中心「数字金融的中国时代」第二届年会上发表主题演讲,深...


大数据时代:十大最热门的大数据技术

随着大数据分析市场快速渗透到各行各业,哪些大数据技术是刚需?哪些技术有极大的潜在价值?根据弗雷斯特研究公司发布的指数,这里给出最热的十个大数据技术。 1、预测分析 预测分析是...


乐橙视频云锁闪耀发布,让家与你不再有距离

大华乐橙在深圳会展中心召开了2017 “锁定天下”乐橙智能锁新品发布会,重磅发布了乐橙首款视频云锁。本次发布会...


Nutanix通过Cloudera Enterprise认证,携手打造精简大数据企业云

企业云计算领导者Nutanix今日在2017 .NEXT用户大会(北京站)上宣布,其企业云平台软件已通过Cloudera技术认证计划(...


超过300亿美元的工业级无人机市场将呈爆发式增长, 上海无人机展会引领行业发展

当消费级无人机市场已成为一片红海之际,各大无人机厂商都在工业级无人机领域发力以争夺高端行业应用的市场,...


浪潮与百度联合发布ABC一体机 推进智慧计算的行业落地

在9月举办的2017 百度云智峰会 ABC SUMMIT 上,百度与浪潮共同发布了 ABC 一体机,双方将共同推动人工智能、大数据、云...


IDC发布《IDC MarketScape:中国大数据管理平台厂商评估,2017》

中国大数据市场整体热度逐步降低,数据应用开始落地,而应用的前提是建设统一的大数据管理平台。IDC调研了几十...


中科院国科创新与深圳福田区一揽子战略合作落子于CEEC

北京国科金服科技金融信息服务有限公司(以下称“国科金服”)与中国国际消费电子展示交易中心(以下称“CEEC”...


CA Technologies宣布为IBM z14提供支持交付可信任的系统

CA Technologies (NASDAQ:CA)今日宣布,CA关键的大型主机解决方案为IBM z14提供支持。CA的解决方案利用全新的z14平台,大大降...


大数据新时代:物联网让生活更加智慧

物联网(IoT,Internet of Things)这一概念最早在1999年提出。美国麻省理工学院建立的“自动识别中心(Auto-ID)”,首次提出“万物皆可通过网络互联”,并阐明物联网的基本含义。早期的物联网仅是...


技术牛逼也要懂点社交:数据科学家公司生存指南TOP30秘诀

作者:SeattleDataGuy 数据科学家老司机的30个经验之谈,教你如何在公司内获得认同,带你绕过他们曾经踩过的坑。 作...


20个数据可视化工具点评

第一部分:入门级工具 1.Excel Excel的图形化功能并不强大,但Excel是分析数据的理想工具,上图是Excel生成的热力地图...


商机 | 大数据/政务云采购清单 招标7起,最高招标价为2089.41万(9.2-9.5)

文 | 36大数据 奥兰多 一、政府、企事业单位大数据/政务云中标成交清单,一共8起,最高成交价为1388.89万 二、政府、...


华为轮值CEO郭平:将长期投入公有云 不靠用户数据变现

作者:郭晓峰 在今日举行的华为 2017 全联接大会上,华为轮值 CEO、副董事长郭平表示,华为承诺长期投入公有云建设...