项目进展报告
数据获取及预处理
数据来源
本次实验数据由“云上贵州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预测的贡献最大.
存在的问题
训练模型时,选择特征不当容易造成过拟合。
下一步工作
选择合适的特征进行旅行时间的预测。