当前位置:首页 期刊杂志

基于随机森林回归的航班延误预测

时间:2024-05-04

刘中祥,王欣

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

0 引言

依据2017年民航行业发展统计公报,国内的客运航空公司完成航班403.9万班次,其中正常航班289.5万班次,平均正常航班率仅为71.67%。航班延误问题不可避免且会带来很多负面影响,不仅会对打乱旅客个人的时间安排,还会影响机场后续航班的安排以及航空公司的运营和形象。因此,预测航班的延误时间,就可以提前采取措施以减少或避免上述情况的发生,从而大幅度减少延误所带来的问题和影响。

关于航班延误预测的问题,国内外学者已展开了相关的研究。文献[1]从延误链式波及的角度出发,提出了基于贝叶斯网络的延误传播模型,可以预测下游航班的离港时间和延误情况;文献[3]通过相空间重构理论发现到港时间序列存在混沌特性,对其进行相空间重构,比较不同算法,证明差分进化算法能很好地进行航班延误预测;文献[4]将数据挖掘中隐马尔可夫模型和指数平滑预测方法应用在延误预测中;文献[5]提出了基于决策树算法的航班到港延误预测,结果表明基于C4.5决策树的预测模型正确率趋近于80%。

本文将结合BST网站上提供的数据,通过分析各个特征项对航班延误的影响,确定与航班延误时间相关的特征因素,通过运用随机森林回归算法,得到航班到港的延误预测时间。由于美国国内航班线路的复杂性,为简化分析,最后选取美国国内机场排名前十的洛杉矶国际机场(LAX)和旧金山国际机场(SFO)之间来回往返的航班作为研究对象。最后实验结果显示航班延误预测的平均绝对误差为10.56分钟。

1 回归分析模型

随机森林算法经过Bootstrap重采样对原始数据集进行采样,对每组样本建立一个CART决策树模型。然后,将多棵树组合最终形成随机森林,森林中每棵树的预测结果通过相应的投票策略得到最终的预测结果。

1.1 CART决策树算法

分类与回归树(Classification And Regression Tree,CART)是由Breiman等人提出的决策树学习方法。当用作分类时,CART算法选择基尼指数为最优特征;当进行回归预测时,以误差平方和为原则选取最优的二分切点。在训练集所在的输入空间里,递归地将每个区域划分为两个子区域并确定每个子区域上的输出值。

算法的实现步骤:

(1)选取最优的切分变量j与切分点s,按照以下方式:

c1,c2分别为左右子区域输出的平均值,可通过遍历每个变量的值找出最优的切分点。

(2)通过确定的切分点来划分区域并求出对应的输出值;

(3)递归的调用步骤1和步骤2,直到满足停止条件;

(4)输入空间划分为N个区域R1,R2,…,RN,生成最终的决策树。

1.2 随机森林算法

随机森林(Random Forest,RF)是一种基于Bagging的集成学习方法,可以用来做分类问题或者回归问题。该算法指的是通过多棵决策树构建组合模型对样本进行分析预测,每个决策树模型都会有一个预测值,将每棵树的预测值汇总,最终会提升模型的预测效果。回归预测会将每棵树的预测值取平均,得到最终的预测值。

随机森林的构建流程如下:

1. 从训练集D中通过Bootstrap重采样方法选出N个样本;

2. 从众多属性中随机选取K个属性;

3. 选择最佳分割属性;

4. 建立CART决策树。

End

上述算法流程中,在每棵决策树的分裂过程中,不需要剪枝。最后构造的模型如图1所示。

图1随机森林估计模型

2 数据获取、处理及分析

2.1 数据描述

本文研究中所用到的数据来自于美国交通统计局(The Bureau of Transportation Statistics,BTS)网上公布的航班数据。据BTS的解释,网上公布的航班数据包含了美国国内客运量数量超过1%的航空公司,以及自愿公开的两家航空公司的直飞航班数据。本文实验中所采用的数据为2017年美国全年的航班数据,其中包含了109个特征项,共计5674621个数据项。对于每一条航班数据,其中包括:航班号、航空公司代码、起飞机场代码、降落机场代码、计划和实际起飞时间、计划和实际降落时间、计划和实际飞行时间、飞机在机场的推出推进时间、航班延误原因及其他相关信息。

2.2 特征分析及选择

(1)月份因素

图2展示的是2017年各个月份中延误航班班次数与非延误航班班次数之间的比值。从中可以观察到,9月、10月和11月中的延误比例明显比其他月份低。因此,我们将Month字段作为考察变量。

(2)星期因素

图3展示的是2017年全年一周七天中延误航班班次数与非延误航班班次数之间的比值。图中的数字1到7代表的是星期一到星期天。从中可以发现,星期一、星期四和星期五中的延误比例比另外三天高。因此,我们将DayOfWeek字段作为考察变量。

图2月份因素与航班延误关系统计图

图3星期因素与航班延误关系统计图

(3)航班时间因素

图4展示的是2017年全年中一天24小时各个时间段(一个小时为一个时间段)中延误航班班次数与非延误航班班次数之间的比值。从中可以观察到,早上5点那一段时间的航班延误比值全天中最低,之后的时间比值升高到下午6点到达峰值,然后延误比值下降。我们发现DayOfWeek字段与航班延误的规律性较强。鉴于此,我们将DayOfWeek字段作为考察变量。

图4航班时间因素与航班延误关系统计图

(4)航空公司因素

图5展示的是2017年美国12个航空公司全年的延误航班班次数与非延误航班班次数之间的比值。从中可以观察到,B6(JetBlue Airways,捷蓝航空)和 VX(Virgin America Airways维珍美国航空)的航班延误比值明显比其他航空公司高,这两家航空公司在美国同属于廉价航空。从中可以看出Carrier字段与航班延误的规律性较强。鉴于此,我们将Carrier字段作为考察变量。

图5航空公司因素与航班延误关系统计图

(5)航线ID因素

图6展示的是2017年在旧金山国际机场和洛杉矶国际机场往返航班的延误班次与非延误班次的比值。在这两地机场往返的航线共计6条,其中19805航线的班次只有15个班次。故不考虑该航线的延误状况,观察其他5条航线的延误比值,发现19977和19790航线的比值明显比其他三条航线要低。故我们将AirlineID字段作为考察变量。

图6航线因素与航班延误关系统计图

2.3 数据处理

(1)数据的处理

为了简化分析,只考虑在洛杉矶国际机场和旧金山国际机场来回往返的航班。筛选之后的数据共有31350条。

检查数据,发现数据中ArrDel15字段共有1075个值为空,缺失率仅为3.43%,为研究方便,可以将这部分数据移除。

去除后各字段的基本统计量如表1。

表1字段基本统计量

通过2.2小节的分析,起飞时间段这个因素在航班延误中所占的比重比较大。另外,DepTimeBlk字段的数据内容是一个时间段,为方便运算将该字段内容进行转化。值的解释含义不变,仅将时间区间简化为数字。举例:0800-0859简化为8。

此外,航空公司这个要素在航班延误中也较为重要,对于Carrier这个字段也要进行相应的数字化。筛选数据发现,在旧金山国际机场和洛杉矶国际机场之间执行飞行任务的有6家航空公司。因此,数值化的结果就是将这六家航空公司按照航班延误比值从小到大进行排序,相应的转化为1到6。

AirlineID字段的值为五位数的数字组成,该数字仅代表某条航线,其数值对于最终的延误预测效果没有意义。因此,按照六条航线的航班延误比值从小到大进行排名。五位数的航线ID转化为数字。

(2)数据的结构

筛选处理过后航班延误的数据结构及各字段的解释如表2。

表2字段示例及解释说明

3 实验与分析

原始数据经过上述小结的加工处理后,选取80%的随机数据作为训练集,剩下20%的数据集作为测试集。并选取字段 ArrTimeBlk,、AirlineID、Month、Dayof-Month、DayOfWeek、holiday、CarrierNum、DepTimeBlk、DepDelay作为特征项,ArrDelay字段作为目标变量。构建随机森林回归模型,应用网格搜索来进行参数调优并进行10折交叉验证(基于Python的scikit-learn工具包),得到的模型如下:

RandomForestRegressor(n_estimators=240,criterion='mse', min_samples_split=20, min_weight_fraction_leaf=0.0,min_samples_leaf=1,max_features='auto',max_depth=None, max_leaf_nodes=None, min_impurity_split=None,min_impurity_decrease=0.0,oob_score=False,bootstrap=True,n_jobs=None,verbose=0,random_state=15,warm_start=False)

得到的平均绝对误差为10.56分钟,R2评分为0.91。

之后,用支持向量回归(SVR)算法和岭回归(Ridge)算法进行航班延误的预测。采用相同数据集,同样应用网格搜索进行参数调优并进行10折交叉验证。预测结果与随机森林进行对比分析,结果如表3。

表3三种算法模型对比表

通过比较岭回归、支持向量机以及随机森林三种算法的R-squared和平均绝对误差,最终显示随机森林回归的预测效果较好。

4 结语

对航班延误预测的研究具有重要的意义,能够提高机场的运转效率,提升航空公司的形象,减少成本。本文是基于美国网上公开的航班数据,事先分析各个因素与航班延误的相关性来确定特征项,将计划起飞/到达时间段以及航线ID数字化,然后运用机器学习中相关方法,预测航班的延误时间。研究结果显示,航班延误的时间和实际延误时间的平均绝对误差为10.56分钟。然而考虑到航班延误的成因十分复杂,本文最后提出的模型仍然具有优化的空间,例如可以增加天气数据、飞机载客量、飞机机型、空中飞行时间、美国公共节假日等更多的特征项。还可以考虑加入往年的航班数据,增加数据量,以提高预测精度。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!