xxllp / MobikeCup

2017 MobikeCup Algorithm Compitition 13 Place(top 1.5%)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2017摩拜杯算法挑战赛

赛题介绍

参赛者需要根据摩拜提供的训练数据,预测骑行的目的地所在区块,最终提交三个概率最大的目的地区块。
数据说明如下:
数据说明 数据下载:链接,提取码:g8tw

团队成员及分工

队伍名称:奖金是可以改善生活的
共三名成员:晚安奖金(我)、footballreg、buptAnt
由于其中一名成员因为个人原因,后来没有参与,实际比赛由两人完成。两人分别完成了两种方案,最后结果是两种方案结果的融合。其中第一种方案(FirstWayToDo)是我完成的,另外一种方案(SecondWayToDo)是队友完成的。队友完成的方案里面有详细说明,这里就不再赘述。这里主要说明第一种方案。

成绩

比赛期间曾获得过三次周亚军和一次周季军,最终排名第13。

程序运行环境

python3
pypy
pandas、numpy、xgboost
可能需要20G以上的内存
目录结构可能需要根据自己的情况修改一下
程序入口:sol_carl/run.sh

FirstWayToDo方案介绍

这道题目需要根据一定的骑行信息预测骑行目的地区块,骑行区块由经过加密的字符串表示。由于有太多的区块,用常规的分类方法不好解决;尝试过将字符串解密为经纬度,然后对经纬度进行回归拟合,但是效果不理想。这里借鉴的是推荐的**,先根据一定的逻辑筛选出候选目的地集合,然后将xgboost的目标函数设置为"rank:pairwise"(用于排序任务)来训练,最终选取预测结果中概率最大的三个目的地。
xgboost的rank说明:链接

About

2017 MobikeCup Algorithm Compitition 13 Place(top 1.5%)


Languages

Language:Python 97.3%Language:Shell 2.7%