本次分享主要从笔者过去一年和今年上半年的参赛经验来做讲解
后续将会针对目前天池开放的几个新人挑战赛推出手把手教你进首页系列文章
包括赛题详细思路讲解,demo代码讲解。
开始今天的分享是将之前的比赛做一个压缩,每个比赛两页搞定。
首先介绍下这一年半的战绩,主要参加了9个比赛,有7次进入top10。
成绩不好的就没放上来了哈,主要广东交通那两个没时间去搞,当时在弄穿衣搭配。
从如下几个方面来做赛题分析,数据,问题,建模,优化。
阿里移动推荐算法
需要我们根据前一个月用户的行为数据来预测明天哪些用户将会购买哪些商品
那么我们可以顺着题意来建模,需要我们预测后一天用户会买什么,也就明确了我们的预测目标是这一天的购买情况;
那么我们可以将target-2当天的购买数据作为训练集标签,之前的数据区间提取特征;
target-1当天的购买数据作为线下验证集标签,之前的数据区间提取特征。需要注意时间区间长度得一致,如果训练集用的30天,那么测试集也得用30天的数据
线上就顺推一天,target之前的数据区间提取特征,预测target当天的购买情况。
至于优化问题,就是你和前几名之间的差距,大体思路大家都差不多,都是一些细节问题。
比如如何选取训练数据,当时平台赛线上有将近60E的数据,是不可能全部拿来提取特征的,需要做一定的抽样
通过数据观测可以发现,越靠近target日期的商品越容易被购买,所以可以选择最近一周出现的商品来构建模型
如何构建有效的线下测评使得不依赖线上结果,有的选手会选择线下18号打标构建模型,那么怎么准确模拟线上的测评机制呢?所以一般是线下17号打标做训练集,18号做验证集。19号做线上测试集。
资金流入流出预测
需要根据过去余额宝用户一年的资金流动情况来预测后面一个月每天的资金流动情况,需要注意预测的是每天整个余额宝的资金流动
可以看到余额宝的资金流动在上升阶段之后处于一个平稳阶段,所以我们可以选择平稳阶段来建模
一般方法是回归和时序分解
特征中的工作日和节假日是重点
新浪微博互动预测
这个比赛初赛能做到第6完全是运气(换数据前第4),有点小trick成分
因为博文有权重,所以可以利用评分公式来做一个迭代计算,找出让得分最大的预测值,也就是最能拟合过去的预测值,相当于一个简单规则,简单山寨可依赖,分分钟出结果
复赛数据量上来了,规则也只能勉强保住前50,主要从用户特征和博文特征入手做一个多分类模型。
淘宝穿衣搭配算法
这个赛题是15年比较有意思的比赛,不能算是预测问题吧,应该是知识提取和排序问题
所以这个比赛是规则横行啊,规则吊打模型
后续文章我会详细解释每一个规则,并放出demo代码(有的规则是全局搜索,有点考验机器配置),供大家参考去挑战baseline
DC微额借款人品预测,拍拍贷风控算法
这两个类似kaggle型比赛,所有特征已经给出,莫非就是传说中的调参大赛?
当然不仅仅是调参,还有很多细节优化的地方,这两个比赛的详细解决方案在之前的博客里都有过分享
另外代码也开源了,所以这里就不再罗嗦
IJCAI-2016
这个比赛相当于推荐算法,需要考虑冷启动和热启动问题,规则就可以搞定(之前几条简单规则也保持过top3好几天。。。),因为数据量的问题,规则可能不如模型拟合的更好
想要做的更好,必须上模型(主要是分类算法)
至于菜鸟赛和音乐赛这里就先不分享了,十分抱歉,因为还没答辩的。
每参加一次比赛,都有不同的收获,我个人收获最大的不是知识,而是认识了一大群很厉害的朋友,从他们身上还能学到更多知识。
另外竞赛和实际项目也是有一定的差别,竞赛需要追求高分,不可避免的存在过拟合排行榜
而且解决方案一般都比较复杂,实际项目更多的是需要应用起来简单,稳定,有效就ok
在数据处理方面实际项目可能更加复杂多样化。