前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2017 摩拜杯算法挑战赛,第三名团队解决方案

2017 摩拜杯算法挑战赛,第三名团队解决方案

作者头像
AI研习社
发布2018-03-16 15:44:44
1.7K0
发布2018-03-16 15:44:44
举报
文章被收录于专栏:AI研习社AI研习社

比赛已经结束快两个月了,一直拖到现在才开始总结。

官网网址:https://biendata.com/competition/mobike/

GitHub源码:https://github.com/Magic-Bubble/Mobike

任务背景

  • 随着绿色出行和环保观念的深入人心,摩拜单车自推出以来不仅深受用户喜爱,也减轻了城市路网压力和拥堵情况
  • 摩拜致力于应用前沿科技帮助人们更好地出行,利用机器学习预测用户的出行目的地是众多应用场景中重要的一个
  • 目前,摩拜单车在北京的投放量已超40万,为更好地调配和管理这些单车,需要准确地预测每个用户的骑行目的地

任务目标

根据给出的300万的用户出行记录训练数据,对用户出行的目标地点进行预测

衡量指标

其中,|U|是需要预测的orderid总个数,P(k)是在k处的精度,n是地点个数。

评测函数代码请参考: https://github.com/benhamner/Metrics/blob/master/Python/ml_metrics/average_precision.py

数据说明

问题抽象

可以将其转化为一个二分类的问题,首先构造出当前订单可能会去的若干地方,然后用二分类的方式给每个候选地址进行打分,选择分数最高的top3集合即可。

候选目的地构建

  1. 样本预过滤。从海量候选集中筛选出最可能的候选样本,清理异常样本,减少样本规模,提高候选集的覆盖率和模型精度。比如用户常去的topN地方,以及从这个地点出发常去的topN地方等。
  2. 规则预过滤。定义规则过滤候选集,如距离等,超过某个距离的就过滤掉
  3. 起点漂移。将geohash区块临界8块区域记为同一区域,取该区域top连接数目的地。事实证明,这是我们整个方案的瓶颈所在,很多人找车不会在同一个地方找,而大概率可能也会去其附近的地方找车,所以这一步很有必要。

数据集构建

比赛给出的数据是连续两周的用户出行记录,需要预测后面一周的目的地。因此数据集的合理构建也十分有必要,构建方式如下:

具体地,是采用19号之前的为19号加特征,20号之前的为20号加特征,...,最终构建出19,20,21,22,23,24六天的数据作为训练数据。

特征构建

通过对数据的统计和挖掘,从如下两个视角进行特征的构建:

  1. 特征群。共有三个特征群,用户、时间和地点。其中,用户包含热启动和冷启动(之前没有过出行记录),时间包含周内、周末、小时、天等特征,地点包括经纬度、热度、方向等特征。
  2. 特征类型。主要包含五个部分,计数特征(比如用户到过这个地方多少次),距离角度特征(出发地到候选目的地的距离方向等),Label窗特征,比率特征(用户到这个地方占其出行次数的比率是多少)等。

模型训练及融合

采用经典的XGBoost和LightGBM进行训练,融合也非常简单,就是两个模型的概率相乘融合。

结果

训练细节

  1. 样本候选集覆盖率

2. 特征维度

特征重要性排序

总结

  1. 样本候选集的构建是整个比赛的瓶颈和突破点。我们和前面队伍的差距主要在于此,可以再多扩展一层,变成4*4的漂移区域
  2. 候选集的覆盖率提升很关键
  3. 特征基本上都差不多,没有什么强特征,维度太多不仅会影响速度,也可能拉低效果

总体来说,第一次参加数据挖掘类的比赛,还是收获很多!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 任务背景
  • 任务目标
  • 衡量指标
  • 数据说明
  • 问题抽象
  • 候选目的地构建
  • 数据集构建
  • 特征构建
  • 模型训练及融合
  • 训练细节
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档