天池公交客流预测比赛
竞赛题目
本次大赛要求选手根据广州市内及广佛同城公交线路的历史公交刷卡数据,挖掘固定人群在公共交通中的行为模式。建立公交线路乘车人次预测模型,并用模型预测未来一周(20150101-20150107)每日06时至21时每小时段各个线路的乘车人次。Part2将更换一批新数据。
大赛开放20140801至20141231五个月广东部分公交线路岭南通用户刷卡数据,共涉及近200万用户2条线路约800多万条数据记录。同时大赛提供20140801至20150131期间广州市的天气状况信息。
数据说明
乘车刷卡交易数据表(gd_train_data)
列名 |
类型 |
说明 |
示例 |
Use_city |
String |
使用地 |
广州 |
Line_name |
String |
线路名称 |
线路1 |
Terminal_id |
String |
刷卡终端ID |
4589bb610f9be53a43a7bc26bb40e44d |
Card_id |
String |
卡片ID |
8ce79e0b647053f191d20c5552eb49f0 |
Create_city |
String |
发卡地 |
佛山 |
Deal_time |
String |
交易时间(yyyymmddhh) |
2014091008 |
Card_type |
String |
卡类型 |
学生卡 |
公交线路信息表(gd_line_desc)
列名 |
类型 |
说明 |
示例 |
Line_name |
String |
线路名称 |
线路1 |
Stop_cnt |
String |
线路站点数量 |
24 |
Line_type |
String |
线路类型 |
广州市内/广州佛山跨区域 |
广州市天气状况信息(gd_weather_report)
列名 |
类型 |
说明 |
示例 |
Date_time |
String |
日期 |
2014/8/1 |
Weather |
String |
天气状况(白天/夜间) |
小雨 |
Temperature |
String |
气温(最高/最低) |
36℃/26℃ |
Wind_direction_force |
String |
风向风力(白天/夜间) |
无持续风向≤3级/无持续风向≤3级 |
预测数据集为这些公交线路在20150101-20150107每个线路每日06时至21时各个小时段的乘车人次总和。(注:21时指的是21:00-21:59这个时间段)
选手需要提交结果表(gd_predict.txt)
列名 |
类型 |
说明 |
示例 |
Line_name |
string |
线路名称 |
线路1 |
Deal _date |
string |
日期 |
20150101 |
Deal_hour |
string |
小时段 |
08 |
Passenger_count |
bigint |
乘车人次 |
1234 |
提交文件示例
文件需用UTF-8字符编码;提交的文件内容格式如下,或参见文件sample_for_offline.txt。
评估指标
评估指标的设计主要期望选手对未来一周(20150101-20150107)每天06时至21时每个小时段各个线路乘车人次的总量数据预测的越准越好,积分公式的计算方法:计算每天每个小时段各个线路预测值的相对误差,然后根据用户预测乘车人次的相对误差,通过得分函数映射得到每个预测记录的得分,最后将所有预测记录得分求和除以理想状况的满分,得到最终评分。
关键解决方案:
首先对数据做了整合,原始数据是200多万用户的刷卡信息800万条左右,要整合成2条线路各个时间段的客流,整合之后也就7200条左右,其中有一些缺失的天气数据,取的是前后两天的平均值。
天气特征类似小雨、晴天,还有线路类型,卡类型这种按照分类进行独热编码处理,时间天数按照1-7分类,小时段按照1-24分类,站点数量,风力,温度这种直接就是数值化,再求均值除方差归一化
天气后来也加上了数值化,取的是该种天气的乘车人次/总的乘车人次 ,相当于一个占比。
每一个时间段取了前三天的前三个时间段也就是九个特征,相当于构造了九个特征,对于要预测的时间段,由于前三天的流量也是预测值,不适合做特征,所以取的是前一个星期的同一天的前三天的数据。
- 根据过去五个月公交线路刷卡数据,预测未来一周各个公交线路每日06时至21时乘车人次。
- 数据中时间根据每星期1-7天分类,将天气及其它特征做数值化以及热编码处理,按照时间段窗口构造特征数据集。
- 通过随机森林和GBDT实现预测,取两个模型的结果进行组合,准确率79.21%,top30.