郑玉帆ZHENG Yu-fan;徐海文XU Hai-wen
(中国民用航空飞行学院,广汉 618307)
随着我国经济快速发展,空中交通运输需求逐年增加,航班延误问题越发突出。不准确的航班延误时间不仅会影响旅客出行体验,还会给机场和管制部门运行造成不便。因此对航班延误进行有效预测,以提前制定应对措施,减少航班延误带来的负面影响有着重要的研究意义和实际价值。
目前,国内外学者已从不同角度对航班延误进行研究。李频[1]为解决机场运行管理中航班延误问题,建立了基于灰色理论的动态马尔科夫预测模型对航班延误进行预测。吴仁彪等[2]对传统的卷积神经网络进行改进,提出双通道卷积神经网络实现航班延误预测。王语桐等[3]采用支持向量回归和多元线性回归相结合的方法建立组合预测模型,对机场的进离港航班延误架次和平均延误时长进行研究。李娟等[4]通过考虑延误在空间和时间上的相关性,提出了一种基于时空长短期记忆神经网络的航班延误预测模型。谌婧娇[5]利用Spark 计算框架采用决策树建立了模型,用于航班延误预测分析。罗军等[6]将ARIMA 模型与BP 神经网络结合,分别从最优权重和残差优化角度对航班延误进行组合预测。这些方法均能较好地实现航班延误预测。
但是,经研究发现在航班延误数据集中发生航班延误数据占比较少,表明航班延误数据本质上为不平衡数据集。而数据集的不平衡性使得模型训练失衡,预测结果更倾向于数据占比较多的分类,导致预测效果不佳。因此,本文将针对航班延误数据不平衡问题,利用SMOTE 算法缓解数据失衡造成的问题,提高分类器对不同类别的预测精度。继而,基于平衡后的数据集采用深度神经网络构建航班延误预测模型,对航班延误等级进行预测和分析。
本文使用航班实际离开机场场面的时间作为衡量航班延误的标准。给出航班延误定义为航班实际离场时间Ts 晚于计划离港时间Tp 与机场规定标准滑行时间Th 之和超过15 分钟,即Ts-(Tp+Th)≥15,其中标准滑行时间Th 为30 分钟[7]。为了进一步详细了解航班延误程度,根据航班延误的时间长短对航班延误进行等级划分,如表1 所示。
表1 航班延误等级划分标准
其中,Td=Ts-(Tp+Th)。因此,本文处理的航班延误数据为多分类数据类型。
为降低航班延误预测数据不平衡性对模型精度的影响,本文利用过采样技术平衡数据,构建基于SMOTE 算法的深度神经网络航班延误预测模型(SMOTE-DNN)。该模型的计算流程如图1 所示:首先对航班延误等级中少数类样本即一般延误、中度延误和重度延误的样本,利用SMOTE 算法合成新样本,使得每个类别样本数一致;接着划分平衡后的数据集,将训练集带入深度神经网络实现航班延误等级预测模型的学习;最后将测试集输入深度神经网络进行预测,并对预测结果进行分析。
图1 SMOTE-DNN 航班延误预测流程图
SMOTE-DNN 通过SMOTE 算法平衡数据,以缓解失衡数据对模型的影响,提高后续分类器的精度。同时,模型采用深度神经网络作为分类器,使得模型保留了神经网络强大的学习能力可以挖掘出数据的内在规律,进一步保证航班延误预测的预测精度。下面对模型中采用的SMOTE算法和深度神经网络进行详细说明。
SMOTE 算法是一种合成少数类样本的过采样方法,其基本思想是对少数类样本分析并根据少数类样本合成新的样本添加到数据集中,从而有效缓解不平衡数据造成的问题。合成新样本的步骤[8]为:首先,对于少数类样本中的每个样本xi,计算该点到其他样本点的欧氏距离,得到k个近邻样本;接着,根据不平衡比例确定采样倍率N,对每个少数类样本xi的k 个近邻样本中随机选择N 个样本,假设每次选择的近邻样本为xold;最后,在原样本xi和随机选择的样本xold之间进行随机线性插值以合成新样本,插值公式为:
其中,γ 表示在区间(0,1)内的随机数。
算法具体流程如表2。
表2 算法具体流程
深度神经网络又称为多层感知机,深度神经网络的结构图如图2 所示,从图中看出其网络结构由输入层、隐藏层、输出层组成。每层的神经元之间通过全连接的方式连接,同层之间的神经元不相连。神经元的传递过程为[9]:将每个神经元的输出值dl-1与相对应的权重Wl相乘后累加求和,并加上偏置bl传递至下一层与之相连的神经元,然后经过激活函数映射作为下一层神经元的输入值。此过程可由公式表示为:
图2 深度神经网络结构图
本文采用的数据为2018 年1-8 月成都双流机场的离港航班信息数据和气象数据,数据集共包含114496 条数据,31 个特征项,其中包括航空公司、机型、航线类型、降落机场、温度、湿度、风向等。数据集中各类别所占比如图3 所示,航班未发生延误的数量占比最大,大约占全部数据的4/5。显然该类数据为不平衡数据类型。
图3 原始数据集中各延误等级占比图
为解决原始数据中的缺失项、异常项对预测精度的影响,进行如下预处理[10]:①保留原始数据中所需航班信息项和气象数据项,删除其他无用数据项。②剔除航班取消的数据项。③将原始气象数据中字符型数据进行转换,即存在此天气现象置为1,否则置为0。④对航班信息数据中的离散数据进行one-hot 编码,转换为二进制字符型数据。⑤对原始数据中的数值型数据进行标准化处理,即:,其中m、s 分别为数据的均值和标准差。
利用SMOTE 算法对原始数据进行平衡处理,将少数类样本合成新的样本,使得各延误等级数据量达到均衡,占比约为1∶1∶1∶1。经平衡处理后的数据集共有383148 条数据。最后,将平衡后的数据带入深度神经网络进行航班延误预测。
本文利用Keras 框架搭建深度神经网络实现航班延误预测,其网络结构包含4 个全连接层即3 个隐藏层,在每一层后加入批标准化层和Dropout 层以防止过拟合。激活函数可以将神经元经非线性运算后传递至下一层,是深度神经网络中重要的组成部分之一,因此隐藏层的激活函数选择Relu 函数。由于航班延误等级预测本质上是多分类问题,故选择Softmax 函数作为输出层激活函数,损失函数选择交叉熵信息函数。并将网络迭代次数设为400 次。
本文选用精度、混淆矩阵作为评价航班延误预测的指标,其中精度指的是航班延误预测正确的数量与总航班量的比值;混淆矩阵可以直观看出模型对各个类别的预测效果。将训练集中30%数据划分为验证集以监测模型训练中是否发生过拟合,使模型拟合效果更好。
如图4 所示为模型精度在训练集和验证集中的变化曲线,随着迭代次数增加,精度不断提高最终稳定至89%附近。最终在测试集中模型精度达到88.79%。
图4 精度随迭代次数变化图
将深度神经网络(DNN)与基于SMOTE 算法的深度神经网络(SMOTE-DNN)航班延误预测结果进行可视化对比,如图5 所示可以看出,深度神经网络仅在航班正常时即多数类样本的预测精度较好。而结合SMOTE 算法后的深度神经网络模型各类别的预测精度更高,预测效果更好。表明对不平衡数据进行平衡处理可以提高航班延误预测效果。
图5 混淆矩阵对比图
为了提高航空延误预测模型精度,本文针对航班延误数据不平衡性的特点,提出了基于SMOTE 算法的深度神经网络航班延误预测模型。该模型利用SMOTE 算法使得航班延误各等级数据达到平衡,以减小不平衡数据对模型的影响,利用深度神经网络建立航班延误预测模型,该方法能有效预测航班延误。同时,本文依据真实的航班信息数据和气象数据验证了所提模型的有效性,并对训练过程和预测结果进行分析。通过实验结果表明,对失衡数据进行平衡处理可以提高模型预测效果,本文模型在测试集中的预测精度达到88.79%,在各航班延误等级的预测效果良好。