APP下载

基于Catboost算法的航班延误预测研究

2022-04-22李任坤何元清

现代计算机 2022年3期
关键词:样本航班预测

李任坤,何元清

(中国民用航空飞行学院计算机学院,广汉 618307)

0 引言

《2020年上半年全球机场和航空公司准点率报告》指出,因新冠肺炎疫情席卷全球,各机场航班量较之以前呈现大幅缩减,2020年上半年各大机场实际排班航班量约970万架次,同比下降46.63%。准点率排名前三的国家依次是日本、中国和俄罗斯,分别为91.64%、88.36%和87.85%。航班延误问题不仅打乱乘客的时间规划,给公司带来许多负面影响,还会影响后续的航班时间规划。所以对航班延误时间进行预测可以预告机场和乘客提前采取相应措施以减少或者避免后续影响,从而尽可能的减少航班延误所带来的损失。

目前在航班延误预测领域,国内外研究人员已进行了深入探索。文献[1]以XGBoost回归算法为切入点,利用数据清洗加网格搜索结合交叉验证的方法实现航班延误预测模型的优化。文献[2]详细介绍了GBDT模型的来源,该算法核心是通过学习之前决策树的残差来拟合当前决策树。文献[3]介绍了一种新兴的深度机器学习优化算法,极限梯度提升(XGBoost)算法能适应复杂的非线性关系,模型具有更佳的并行计算能力,能够有效地解决过拟合问题。文献[4]提出一种基于XGBoost模型升级的LightGBM模型,利用leaf-wise分裂策略,对已有的叶子结点进行对比,从中选择分类收益最大节点完成分裂,极大减少了模型的训练时间。文献[5]使用了一种新型的Boosting算法CatBoost,创新性地在数据挖掘过程中选择IV值分析进行特征选择,有效去除了冗余特征。

本次实验通过分析BST网站上公开的航班数据,利用CatBoost算法对比不同特征对航班的影响程度,选择对航班延误影响因素较高的特征用以精准预测航班延误。本文先简单介绍了CatBoost算法的原理,然后梳理了航班延误预测的总体流程。①数据处理部分利用数据清洗和特征选择输出最优样本集。②数据分析部分通过网格搜索及交叉验证方法并结合训练得到航班预测优化模型。③使用类似算法LightGBM和XGBoost对同样数据集进行预测结果比对,可以看出,CatBoost算法的延误预测精确度更高,时间更短,可以有效预测航班延误。

1 算法介绍和流程搭建

1.1 Cat Boost算法介绍

CatBoost是一种能够很好地处理类别型特征的梯度提升算法库,作为GBDT框架的一种改进实现,其有着参数少、能够匹配类别型变量以及准确性较高的优点,可以高效且合理地处理类别型特征。

1.1.1 类别型特征

CatBoost算法为了更好地选择GBDT已有特征中存在的类别型特征,对以前的目标变量统计法(Greedy Target-based Statistics)进行了改进,通过添加先验分布项,使得数据分布免受噪声和低频的影响,公式示例如下:

为了避免回归错误造成过拟合问题,Cat⁃Boost对已有叶子的节点值进行计算,规避了多个数据集排列直接进行计算。

1.1.2 梯度提升(Gradient Boosting)

梯度提升是利用不可重复的迭代变量,不断循环添加子模型,同时确保损失函数逐渐减小。

假设f()为子模型,复合模型为

设损失函数为[ ]F(),,进行迭代后添加全新子模型,随着影响因子次高变量的梯度比前一次小,损失函数不断减小。

作为GBDT的一种,CatBoost采用了完全对称树作为基模型,开创性地加入了自动转换算法,将类别型通过计算转换为数值型特征,达到高效处理类别型特征的目的。除此之外,Cat⁃Boost还解决了梯度偏差(Gradient Bias)和预测偏移(Prediction Shift)可能存在的问题,从而减少过拟合的发生,体现了本算法在提升准确性和加强泛化方面有明显改善。

1.2 搭建预测实验流程

本文对预测实验进行了流程搭建,如图1所示:第一步通过数据清洗对初始数据进行处理,利用嵌入算法筛选出有利于模型预测准确度的特征,获取合适的样本集后,将样本特征随机分为测试样本集和训练样本集,通过网格搜索和交叉验证的方法组合出最优参数解,再使用CatBoost算法对训练样本集进行训练获得预测模型,最后将最优参数组合带入模型中得到航班延误预测结果。

图1 基于CatBoost的航班延误预测流程

2 数据获取、处理及分析

2.1 数据获取处理

本文研究选取的是2019年全年的美国航班数据作为实验,但因数据量巨大且考虑大型机场因自身原因造成的延误可能性较小,筛选了由亚特兰大哈兹菲尔德-杰克逊机场为出发机场,洛杉矶国际机场、西雅图际机场或西雅图塔科马机场、芝加哥奥黑尔际机场、肯尼迪国际机场、旧金山国际机场为目的地的样本数据38849条,每条样本包含了计划到港时间、起始机场距离、航班日期、航空公司代码、始发机场代码、目的机场代码、原定出发时间、实际出发时间、实际到达时间等27个特征。因不同月份的天气对预测相当重要,故使用数值型的年月日作为航班日期的特征表达。

2.1.1 数据补齐处理

数据集出现空值将影响实验结果,需要一定的值去填充空值,从而使数据完备化。通常基于统计学原理,根据初始数据集中其余对象取值的分布情况来对一个缺失值进行填充,在本实验中,对于较高比例样本存在缺失的情况,首先将样本进行分类,然后以该类中样本的均值来插补缺失值,较少比例样本则直接去除空值样本。

2.1.2 数值型处理

本文中因航空公司代码为非数值型,无法有效进行数据处理,需转换为数值型,本实验采用15个航空公司的样本数据,将航空公司按延误率高低进行排序,并使用1~15的数值代替航空公式代码。

2.2 特征选择

选取对航班预测结果有用的特征至关重要,无用的特征会对预测准确度造成影响。先使用CatBoost模型进行训练,获得每个特征的权值系数,权值系数越高就表明了特征对模型的重要性或者程度越高,本实验在sklearn中使用Se⁃lectFromModel设置的阈值参数为0.001,低于该阈值的特征则认为对模型不重要进行剔除,最后特征选择字段如表1所示。

表1 特征字段解释说明

3 结果分析及对比

CatBoost算法是通过在数据上构建多棵决策树,汇总所有决策树模拟结果的新型预测算法,本实验中,为得到最优参数组合,将参数可能存在的取值进行依次列举,得到组合结果后生成“网格”,然后将各网格结果带入CatBoost算法进行训练,最后利用交叉验证评估测试集中的数据。通过评分函数得到评分最高的参数值,最后得到所有参数组合中的最优参数组合。下一步调整和评估参数,本文使用了Grid⁃SearchCV来完成,从而得到最优参数组合如表2所示。

表2 最优参数组合

将前面经过处理后的数据集进行划分,20%的数据作为测试样本集,剩余80%作为训练样本集,并通过CatBoost算法对训练样本进行训练得到预测模型后,带入测试集得到预测结果R-Squared为0.9897624,平均绝对误差(MAE)为3.08分钟,训练时间为106 ms。最后使用LightGBM算法、XGBoost算法对相同的数据集进行类比预测,对比结果见表3。其中RSquared代表方差,值越趋近1,表示预测越准确;MAE值体现了预测值偏向真实值的差值;训练时间与算f法的运行速度成反比:时间越短说明运行速度越快。通过实验结果可以发现,使用CatBoost算法进行预测,结果精度更高,训练时间更短。

表3 三种算法预测结果对比

4 结语

本文在航班受多种影响因素导致延误的大背景下,使用了一种新型Boosting算法CatBoost进行航班延误预测,取得了良好效果。首先对美国的亚特兰大哈兹菲尔德-杰克逊机场、肯尼迪国际机场等五大国际机场在2019年全年的航班数据进行数据清洗,提取出对航班预测影响较大的关键类别型特征,并采用网格搜索和交叉验证方法得到最优参数组合,带入数据训练获取的预测模型中,通过实验分析,CatBoost算法的R-Squared为0.9897624,MAE为3.08分钟、训练时间为0.106 s,相比于LightGBM、XGBoost算法,CatBoost在回归指标方面都具有明显优势,表现出更高的预测精度和更短的预测时间。然而,由于现实中导致航班延误的原因相当复杂,本文在特征选择和参数调整上还有待进一步优化,比如将天气、空管控流、电子故障等因素列入特征样本中,从而更趋近现实情况以提升预测准确性。

猜你喜欢

样本航班预测
选修2—2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
英首个优步式飞机服务将推出
直击高考中的用样本估计总体
随机微分方程的样本Lyapunov二次型估计
航班延误啥情况
2014年我国航班正常率仅六成
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
七年级数学下册期末检测题(B)
《福彩3D中奖公式》:提前一月预测号码的惊人技巧!