在大数据创新大赛上,来自浙江大学的SeaSide团队带来了关于机场客流量的时空分布预测的解决方案。SeaSide团队主要从时序模型、乘机流程、事件驱动、维度灾难四个方面介绍了团队的算法设计。
背景介绍
SeaSide团队所要解决的问题是利用机场大量的数据去预测每个时刻、每个无线AP的连接人数,这个结果可以很好的反映机场的客流时空分布。可用的数据可以分为四个方面:
历史连接:包含每个无线AP的名称、时间戳、连接人数;
地理位置:包括登机口、无线AP所在的区域、无线AP的坐标、楼层、组号;
航班排班:包括航班起降的排班信息、预计时间、实际时间;
旅客行为:包括值机、安检及离开。
算法设计
时序模型
最初的想法是基于历史值去预测当前值。上图左边是多天的真实值和三轴历史均值,真实值一直围绕历史均值上下波动。三轴历史均值在不同的情况下各有优缺点,把历史均值扩展为更多的聚合指标之后,在聚合窗口上就得到了基础模型。在计算聚合模型的过程中,有三种方式:同点、同时段、同组。最直接的方式就是计算同一AP点在同一历史数据点的聚合值。为了减少时间维度的噪声,可以计算同时段同一AP点的历史数据聚合值。为了减少空间维度的噪声,可以计算同组历史数据聚合值。
乘机流程
整个乘机的流程表明,其在值机、安检、候机、行李提取处的旅客较为密集。所以,航班的起降会对这些区域造成很大的影响。
事件驱动
比如,某个航班预计在某个时间起飞,可以从左上图看到大家一般会提前一个半小时安检,进入候机区等待。基于这些观察统计了右边的信息,预测时间点后面多个时间窗口上起飞航班的数量,根据这些信息可以得知每个时间段旅客起飞的人数。针对航班晚点情况,预测了滞留旅客人数。
除了起飞信息,SeaSide团队还预测了到达信息(该时间点前/后到达航班数,对接机区、中转区、取行李区影响比较大)、地理位置信息(区分特殊区域)以及时间信息(区分特殊时段,比如夜间、节假日)。
维度灾难
上述算法利用一个模型对所有的区域进行了预测,包含了五个方面的很多特征,然而,特征越多越好吗?特征数量和预测效果的关系图如左图所示,过了临界点之后,增加特征点会使预测效果变差。现在的模型有1472个特征,需要引入合理的先验知识来有效降低维度。
首先,起飞降维方面,把机场分为四个区域,对于不同区域,并不是所有起飞登机口的信息都有用。比如,对于候机区,只需要为每个AP点获取其最近的6个登机口。其余区域的降维方法如上图所示。
其次,对于时间特征,其实有序变量,与线性回归不同,它是基于高维空间划分的预测回归模型,可以对有序变量根据训练数据对其进行合理的区间划分,因此,可以看做是1维的整数。对于位置特征,分区域之后只考虑本区域组号。
从左图可以看出,多个无线AP在一段时间内连接数是趋于稳定的,所以在预测更短期的连接数的时候更加准确。