开发者社区> 问答> 正文

【天池选手故事】阿里移动推荐算法竞赛经验分享

本故事来源于 阿里移动推荐算法5月月星星TOP5队伍“Bird”,来自上海交通大学的同学@周景锦<香葱饼干>、薛炜辰<xueweuchen>、邸明轩<AureDi>。他们不仅取得优异成绩,在机器资源消耗中也远远低于平均值哦!

此次得到天池移动推荐竞赛的月星星,我们队的成员们纷纷表示十分高兴。在此,仅以这千来个字的短文交流一下我们的参赛经验。
合理的分工是成功的一半
对于一个队伍来说,合理的分工是十分需要且必要的。对于一个三个人的对于,壹加壹加壹不一定等于三,说不定还会加成负数。对于这样一个以分析数据为主,代码量不过千行的项目来说,我们通过合理的协商,制定出如下的分工:
1. 队长一个:负责和调度队员和合理安排进度
2. 代码狗一只:负责码代码和测试算法
3. 学术狗一个:负责查阅各种算法以及产生新的idea
这样,我们每一个人干的事情都没有重复而又互相关联,从而充分调动了每个同学的积极性,让大家找到适合自己的岗位,从而相互激励,相互促进,共同进步。

充分理解数据再开始行动
       好了,前面扯了一大段之后,现在进入和算法以及数据相关的正题。
       对于这样的一个数据挖掘比赛,读懂数据是十分重要的。或者说,从数据中找出规律是十分重要的,如果真正的理解了数据,或许几条简单地规则就可以达到不错的效果(显然我们还没有达到这个境界)。因此,我们对数据进行了充分的分析和解读,我们至少发现了以下几点规律(相信大部分人都会发现这些,但是在此还是弱弱地将它们一条条列出来,因为这确实十分重要):
1.    每天都会出现有用户买以前从没有买过的商品(不过这没法预测啊,直接忽略这部分)
2.    地理位置缺失很多(得想办法补全吧,暂时忽略地理位置信息)
3.    异常用户的影响很大(有什么正常人会浏览几万次,直接删掉这部分用户)

不要纠结于模型的选择
对于我们这些研究机器学习而非数据挖掘的同学来说,看多了机器学习的论文,往往会希望在机器学习的模型上下功夫,反而忽视了特征的提取,但是,这是一个数据挖掘的竞赛而非机器学习,对于数据理解远远比模型更重要。记得我们学校的某个老师曾经说过:“不要期望有一个神奇的模型,可以达到很神奇的效果,这样期望的人显然就是机器学习的素养不够”。研究了几年机器学习,我们这点素养还是有的,因此,一开始我们就把工作的重点放在特征工程上面,对于模型的选择,阿里的平台提供什么就用什么。以为我们相信,对于一个好的特征来说,不同的分类器达到的效果应该是类似的。所以我们从中选择了最为简便的模型:随机森林和GBDT来作为我们的分类器。

几点失败经验
最后,分享几点我们试过也确认无效的方法:
1.去掉从来没有买过的用户
2.调节分类器的参数(默认的挺好,越调还越差)
3.加入更多的训练数据(最后一天的训练数据已经挺多了,再多效果没有提升训练还更慢)


展开
收起
凝岚 2015-06-12 16:56:47 10960 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载