项目进展报告

数据获取及预处理

数据来源

本次实验数据由“云上贵州2017”智慧交通预测挑战赛提供。移动APP数据实时匿名收集用户地理位置信息, 处理和融合生成城市全时段,无盲区的交通信息。将提供城市关键路段(link)的属性信息,路段间网络拓扑结构以及每条路段在历史各时间段内的通行时间。

数据说明

数据包含3个表格:路段(link)属性、link上下游关系、 link历史通行时间。每个表格所包含的信息见下。

数据类型 说明 包含字段
link属性 每条link的唯一标识,长度,宽度,以及道路类型 length,width,link_class等
link上下游关系 link之间按照车辆允许通行的方向存在上下游关系 in_links,out_links等
link历史通行时间 历史每天不同时间段内每条link上的平均旅行时间 time_interval,travel_time等

数据预处理

为了消除一些离群点的影响, 我们对travel_time做一个百分位的裁剪clip, 我们把上下阈值设为95百分位和5百分位, 即将所有大于上阈值的travel_time归为95百分位数, 而小于小阈值的travel_time设为05百分位数; 因为一些时间段内的travel_time存在缺失值,需要进行填补缺失值的处理。

数据分析与可视化

简单的统计下历史每天不同时间段内每条link上的平均旅行时间,然后做图可以看出绝大多数旅行时间处于比较低的水平,服从长尾分布。

对travel_time做一个log的特征变换, 一般对数变换为ln(x+1), 避免x=0而出现负无穷大, 可以看出经过对数变换后, 数据的分布非常均匀, 类似正态分布, 比较适合模型来处理。

模型选取

除了路本身的信息外, 训练数据基本上只有旅行时间, 而我们要预测的也是未来的平均旅行时间, 而且根据我们的常识, 现在的路况跟过去一段时间的路况是很有关系的, 因此该问题应该是一个自回归问题, 用过去几个时刻的交通状况去预测未来时刻的交通状况。训练模型选择xgboost,相比其他模型,树模型对结果有着很好的解释,通过分裂过程可以直观了解各个特征的重要性。

挖掘实验的结果

各个特征的重要性中,前几个时刻的travel_time对下一个时刻的travel_time预测的贡献最大.

存在的问题

训练模型时,选择特征不当容易造成过拟合。

下一步工作

选择合适的特征进行旅行时间的预测。