前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机场客流量的时空分布预第一名方案

机场客流量的时空分布预第一名方案

作者头像
机器学习AI算法工程
发布2019-10-28 17:09:58
9470
发布2019-10-28 17:09:58
举报
文章被收录于专栏:机器学习AI算法工程
为了有效利用机场资源,机场正利用大数据技术,提升生产运营的效率。机场拥有巨大的旅客吞吐量,与巨大的人员流动相对应的则是巨大的服务压力。安防、安检、突发事件应急、值机、行李追踪等机场服务都希望能够预测未来的旅客吞吐量,并据此提前调配人力物力,更好地为旅客服务。

AI项目体验地址 https://loveai.tech

一、业务背景

1.1 业务理解

本次任务以广州白云机场真实的客流数据为基础,它包含每天数万离港旅客在机场留下百万级的数据记录。参赛队伍需要通过数据算法来构建客流量预测模型,具体而言是预测特定时间、特定无线AP的连接人数

1.2 数据理解

赛题给出六张表,涵盖了四个方面的数据:无线历史连接数据、航班排班数据、地理位置信息及旅客行为信息。

1.2.1 历史连接

无线历史连接数据包含的是机场无线AP历史连接信息,格式如下:

其中flight_id是航班id,scheduled_flt_time计划起降时间,actual_flt_time是真实起降时间,bgate_id是登机口信息,arrival_departure是起飞OR降落标记(D表示起飞,A表示降落)。在预测区间上actual_flt_time字段为空,降落的飞机没有登机口信息。注意,这张表里面使用的时间是格林威治时间,而北京时间=格林威治时间+8小时。

航班排班确定之后,一整天的旅客登机位于哪个登机口就已经确定,借此可以推断出在某个时刻哪些登机口附近的旅客较多

1.2.3 地理位置

地理位置涉及两张表,一张表给出每个登机口分别在什么区域,另一张表给出部分无线AP的坐标信息。

我们最终目标是“预测客流量的时空分布”,在空间方面,可以利用这些地理位置信息将航班起降与相应区域关联起来

1.2.4 旅客行为

旅客行为设计两张表:安检表和行程表。

1.3 赛题解读

要直接解决的问题是利用机场大量数据来预测每个时间点、每个无线AP的连接人数,这一结果可以反映机场客流的时空分布。题目中为了减少噪声对建模过程的影响,取最小时间单位为10分钟,即预测每10分钟的平均值,比如11日00:00-00:09这10分钟上的均值是第一个预测目标点。

首先,我们以同一时间点、同一无线热点的历史连接数据作为基础模型;其次,以航班起飞这一事件对基础模型进行修正;再次,通过划分子模型降低维度来优化模型;最后,对11日凌晨3个小时引入近期信息进一步提升预测精度。

二、核心思路

我们的算法基于GBRT回归模型,包含多方面特征:历史特征、航班特征、位置特征与时间特征等。

2.1 特征详述

2.1.1 历史特征

通过无线AP的同一时间点历史连接数据可以大致推算出当前时刻该无线AP的连接数,这可以作为整个模型的基础。从下图可以看出,真实值一直围绕着历史均值上下浮动,而三种历史均值在不同情况下各有优势。我们计算了包括AVG、MIN、MAX、STDDEV多个指标,计算方式有同点、同时段、同区域三种,时间窗口为最近1/2/3/4/5/6/7/14/30天

最直接的想法是用历史值来近似当前的真实值,实际数据也佐证了这一想法,左图是真实值与三种历史均值示意图,可以看出真实值一直围绕着历史均值上下浮动,而三种的历史均值在不同情况下各有优势。将三种历史均值扩展到多个时间窗口的多个聚合指标后,便形成了我们的基础模型,如右图所示。计算这些聚合指标时我们有三种不同的方式,最直接的做法同时间点、同热点的历史数据进行聚合。第二种是为了减少时间维度上的噪声,对同时段,同热点的历史数据进行了聚合,什么是同时段呢?就是该时间点上下30分钟。第三种是为了减少空间维度上的噪声,对同时间点,同组内的历史数据进行了聚合,什么是同组呢?就是组号相同的所有热点。另外,为了挖掘连接数的时序变化趋势,聚合窗口由短到长分为9种。基于时序模型的历史特征可以为预测提供一个很好的基准值,那这些波动又该如何建模呢?

AVG、MIN、MAX与STDDEV分别用于衡量均值、下限、上限与变化剧烈程度。最直接的方式是对同时间点、同无线AP历史数据进行聚合。为了减少时空噪声的影响,我们还考虑了同时段(该点上下30分钟内)、同无线AP的历史数据与同时间点、同区域(无线AP组号相同)内无线AP的历史连接数据。为了涵盖连接数的时序变化趋势,聚合窗口由短到长分为9种。

我们首先来看一下整个乘机流程,经验和数据均表明,值机、安检、候机与行李区人流密集,而航班的起降会极大地影响这些区域的客流分布。

2.1.2 航班特征

虽然基于时序分析的历史特征可以为预测提供一个很好的基准值,但很多波动无法刻画。这些波动往往是由航班起飞、到达这些事件引起的,需要通过航班特征来刻画。从下图可以看出,旅客一般提前1.5个小时左右进行安检,然后进入候机区等待,所以我们统计了所有登机口该时间点后10/30/60/90/120/180/240分钟内起飞航班数量,分为多个时间窗口是由于有的旅客在10分钟内起飞,有的旅客在1个小时内起飞;另外,航班经常晚点10-30分钟,所以我们统计了所有登机口该时间点前10/30/60分钟内起飞航班的数量,分为多个时间窗口是由于有的旅客晚点10分钟,有的旅客晚点半个小时。注意,我们对那些共享飞机的航班进行了合并处理。

假如一个航班预计在这个时间点起飞,从左上图可以看到旅客一般提前1个半小时左右进行安检,然后进入候机区等待,所以我们统计了预测时间点后多个时间窗口上的起飞航班数量,这些指标可以很好地刻画有多少旅客10分钟内就要起飞,又有多少旅客一个小时内才会起飞;另一方面,航班经常会晚点10-30分钟,所以同上我们统计了预测时间点前多个窗口上的起飞航班数量。然而线上GBRT模型最多允许800维特征,因此我们初期模型起飞特征时间窗口会少一些。现实生活中,为了提升资源的利用率,经常多个航班共享一架飞机。在这里,我们对共享同一飞机的航班进行了合并处理。

达航班对于接机区、中转区与取行李区的人流分布有着影响较大。因为到达航班没有区分具体的登机口,我们统计的是该时间点前后10/30/60/90分钟内到达航班的总数量,在此我们也对那些共享飞机的航班进行了合并处理。

2.1.3 时间特征

时间信息可以帮助我们区分特殊的时间段,比如夜间和节假日等,包含了天内分钟偏移、星期与节假日等信息。

天内分钟偏移是天内分钟的索引值,直观地讲是该时间点是天内第几个10分钟,比如00:00-00:09的天内分钟偏移为0,因为它是天内第1个10分钟。它可以帮助我们区分天内不同时段:夜间和白天的客流分布很可能是不同的。

星期与节假日信息可以帮助我们区分特殊的日期。星期方面直接将星期几作为特征,而节假日方面我们把每天分为五种情况进行标注:0表示工作日,1表示最后一个工作日,2表示假期第一天,3表示假期中,4表示假期最后一天。

2.1.4 位置特征

位置特征可以帮助我们区分特殊的区域,包含无线AP所在的区域、楼层与其坐标值、所在组的编号等信息。通过这些信息,算法可以为不同区域分别考虑:有的区域连接数一直很多,有的区域连接数变化剧烈。

2.2 模型建立

我们最初的模型是用单个回归模型预测所有区域,但这样做会导致输入的维度非常高实际可以用于训练的数据却十分有限,所以会产生过拟合现象。为了减少过拟合,需要向模型中合理地引入先验知识

我们观察到可以将白云机场分为四个区域:登机区域 (W1、W2、W3、E1、E2、E3)、T区域、WC区域与EC区域。对于候机区域的无线AP点,只需要考虑与之距离最近6个登机口的起飞航班特征;对于T区域,只需要考虑W、E这两个大区域的总起飞航班特征及T区域内AP组号;对于WC区域,只需要考虑W1、W2、W3这三个登机区域的总起飞航班特征及WC区域内AP组号;对于EC区域,只需要考虑E1、E2、E3这三个登机区域的总起飞航班特征及EC区域内AP组号。另外,将B901-B909的航班起飞特征放在WC区域,因为这9个登机口位于WC区域的一楼。将单个回归模型分为四个子模型后——从单个回归模型预测所有区域到为不同区域分别建模,输入的维度大幅度降低。

另外,对于时间类特征,如星期、天内分钟偏移等,我们将其看作1维整数,而不使用one-hot高维编码,这一技巧进一步降低了输入维度。与线性回归等参数回归模型不同,GBRT是基于空间划分的回归模型,对于诸如星期这类有序变量,它可以根据训练数据将其合理地划分为多个区间,比如可以将星期划分为[星期一, 星期四]、[星期五, 星期日]两个区间。

最后,对于11日凌晨的3个小时(00:00-02:59),通过为它们引入10日夜晚的近期信息,比如10日最后一个时间点的连接数及安检信息等,可以进一步优化预测结果。也就是说,预测短期内客流分布可以做得更准确

首先来看起飞特征,左边是白云机场的平面图,整个机场可以分为四个区域。对于每个区域,并不是所有登机口的起飞特征都有用。对于候机区域的无线AP点,只需要考虑与之距离最近的登机口起飞信息;对于T区域,只需要考虑W、E两个大区域的总体起飞信息;对于WC区域,只需要考虑W1到W3三个登机区域的总体起飞信息,以及B901到B909这九个登机口的起飞信息,这里值得注意的是实际上B901到B909这九个登记口在WC区的一楼;对于EC区域,只需要考虑E1到E3三个登机区域的总体起飞信息。

其次,对于时间类特征,如星期、天内分钟偏移等,它们是有序变量,而GBRT与线性回归不同,它是基于空间划分的回归模型,可以根据训练数据进行合理的区间划分,所以我们把这些有序变量看作1维整数,而不使用one-hot高维编码。再次,组号也需要one-hot编码,维度较高,分区域后每个子模型只需要考虑本区域内的组编号就可以了,这样组号编码维度从原来的100多维降到20维左右。最后,加上上面所说的起飞特征维度优化,模型输入的维度得到大幅降低。

上面是我们算法的主体部分,最后还有一个小优化。从左图可以看出,无线AP一段时间内的连接数实际上相对稳定,所以短期内的预测可以做到更准确。比如,预测11号前三个小时,10号最后一个小时的真实连接和安检信息我们是知道的,可以利用这些信息来提升预测的准确性。

我们算法的基础是基于历史连接的时序模型,加入事件驱动后成绩得到大幅度的提升,虽然我们当时优势明显,但并没有松懈,又通过降低维度以及引入近期信息的方式进一步优化算法。我们的算法可以统一自动化地学习模式规律,没有任何人工设定的规则,所以它具有很好的可扩展性以及更低的维护成本。

三、 经验总结

本次比赛收获良多,经验总结如下:

第一,工欲善其事,必先利其器。用合适的工具做合适的事情,比如利用文档管理算法设计及模型迭代,利用Python自动生成SQL代码,利用PAI命令执行训练及预测等。

第二,莫要画地为牢。思路要开阔,不能过于局限,比如只局限于使用历史连接数据,或只局限于使用单一模型等。

第三,三个臭皮匠胜过诸葛亮。团队合作好于单枪匹马,团队合作不但可以在有限的时间内尝试更多思路,还能互相找出对方的思维误区。

第四,逆水行舟,不进则退。无论当前成绩如何,都要不断地优化模型,否则迟早会被人超越。虽然,我们团队前期优势明显,如果就此懈怠,没有继续优化模型,很难保持第一到比赛结束。

第五,格局决定输,细节决定赢。不同梯队是由于算法整体架构不同,同一梯队内排名是由于细节关注程度不同。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、业务背景
    • 1.1 业务理解
      • 1.2 数据理解
        • 1.2.1 历史连接
        • 1.2.3 地理位置
        • 1.2.4 旅客行为
      • 1.3 赛题解读
      • 二、核心思路
        • 2.1 特征详述
          • 2.1.1 历史特征
          • 2.1.2 航班特征
          • 2.1.3 时间特征
          • 2.1.4 位置特征
        • 2.2 模型建立
        • 三、 经验总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档