有效
一种基于Stacking的航班延误预测方法及系统
汪许诺、王湛、孙梦圆、田勇、叶文婧、梁满佳、张田、牛科新、陈锦辉
南京航空航天大学
摘要
本发明公开了一种基于Stacking的航班延误预测方法及系统,方法包括:获取待预测机场的历史数据和实时数据;对获取到的历史数据和实时数据分别进行预处理后构建用于预测的历史特征数据集和实时特征数据集;对历史特征数据集和实时特征数据集分别进行二次处理和重要特征筛选,得到历史重要特征集和实时重要特征集;采用历史重要特征集的数据对预先构建的预测模型进行训练和优化,得到最优预测模型;将实时重要特征集的数据输入最优预测模型,得到航班延误最终预测结果。本发明提供了考虑动态特征的航班延误预测的方法。
1.一种基于Stacking的航班延误预测方法,其特征在于,包括:获取待预测机场的历史数据和实时数据,包括历史航班数据、历史气象数据、实时航班数据、实时气象数据;对获取到的历史数据和实时数据分别进行预处理后构建用于预测的历史特征数据集和实时特征数据集,特征集包括航班属性、天气、日期、进离场压力和巡航压力;所述构建用于预测的历史特征数据集和实时特征数据集,包括:所述航班属性包括航班所属航空公司、航空公司是否将待预测机场作为基地、飞机容量、前序航班的延误时间;其中,待预测机场是否为基地是0-1哑变量;飞机容量由飞机座位数衡量,根据座位数等级进行划分,是离散变量,前序航班根据飞机注册号来识别;所述天气包括待预测航班计划进/离场时间前τ小时的温度、大气压、相对湿度、风向、风速、水平能见度,τ为需要提前τ小时预测航班的延误情况;所述日期包括待预测航班计划进/离场时间为一天中的第几个小时、一周中的第几天、一年中的第几个月、季节、是否为节假日;其中,是否为节假日是0-1哑变量;所述进离场压力反映机场的拥堵情况,定义为单位时间Δt内的计划航班数以及实际航班数,通过下式计算:式(1)中,NS为待预测航班计划进/离场时间前后 内的计划航班数,n s 为计划航班数量;NA为预测航班时间前Δt内的实际航班数,n a 为实际航班数量;所述巡航压力反映航路情况,定义为同一航路上或相似航路上航班的延误情况,通过下式计算:式(2)中,CP i 为航班i的巡航压力,F为与航班i使用相同航路或相似航路的航班集合, 为航班i的计划进/离场时间, 为航班j的实际进/离场时间,d j 为航班j的延误时间,SC j 是航班j所在航路与航班i所在航路的相似系数,τ为需要提前τ小时预测航班的延误情况,tc j 为时间系数, 与 的间隔越大,时间系数越小,符号 为向下取整函数;对历史特征数据集和实时特征数据集分别进行二次处理和重要特征筛选,得到历史重要特征集和实时重要特征集;所述二次处理为对离散数据进行编码处理、对连续数据进行标准化处理,包括:航空公司、飞机机型等级使用One-Hot编码进行处理;前序航班的延误时间、进离场压力、巡航压力、温度、大气压、相对湿度、风速和水平能见度使用Z-score标准化进行处理;待预测航班计划进/离场时间为一天中的第几个小时、一周中的第几天、一年中的第几个月、季节具有周期性,风向采用角度来度量,为了体现出周期性,使用正余弦函数进行编码处理,通过下式表示:式(3)中,CAC为转换过后的特征,V为原始特征变量,T为特征的周期;所述重要特征筛选,包括:使用Boruta算法进行特征选择,使用Z-score表示每个特征的重要性,Z-score的计算公式如下:式(4)中,X为该特征在所有树中的平均精度损失,σ为相应的标准差;复制每个特征,得到影子特征,影子特征与原始特征拼接构成新的特征矩阵,如果原始特征的Z-score高于所有影子特征的Z-score,则该特征为重要特征;在所有影子特征中找出最大的Z-score记为Z max ,选取原始特征的Z-score大于Z max 的原始特征为重要特征;采用历史重要特征集的数据对预先构建的预测模型进行训练和优化,得到最优预测模型;其中,所述预先构建的预测模型采用stacking方法,由不同的学习器堆叠形成,所述预先构建的预测模型共有两层,第一层为N个基础学习器,第二层为一个元学习器,第一层的输出水平堆叠作为第二层的输入;所述采用历史重要特征集的数据对预先构建的预测模型进行训练和优化,包括:将用历史重要特征集中80%的数据作为训练集D,20%的数据作为测试集T;使用K折交叉验证的方法,将训练集D随机划分为K个大小相似的子集D 1 ,…,D K ;对于基础学习器i,每次从D 1 ,…,D K 中选取1个子集为测试集,剩余K-1个子集为训练集,直到K个子集均做过测试集,K个测试集的训练结果构成基础学习器i的输出P i ,每次预测原始测试集T的结果取平均值记为p i ;将训练集和测试集分别输入每个基础学习器,使用平均绝对误差MAE和平均绝对百分比误差MAPE作为评价指标,公式如下:式(5)中,H(x i )为航班i的预测结果,y i 为航班i的实际延误值,M为样本总数;基于评价指标,从基础学习器Linear Regression、the K-nearest Neighbouralgorithm、Support Vector Regression、Random Forest、Artificial Neural Network、Light Gradient Boosting Machine、AdaBoost中找到最优的N个基础学习器;将最优的N个基础学习器的结果水平拼接,得到P=(P 1 ,P 2 ,...,P N ),p=(p 1 ,p 2 ,...,p N ),P、p分别作为元学习器的训练集D’与测试集T’;基于最优的N个基础学习器,将训练集D’与测试集T’输入元学习器,对比不同元学习器情况下的评价指标,从元学习器Linear Regression、the K-nearest Neighbouralgorithm、Support Vector Regression、Random Forest、Artificial Neural Network、Light Gradient Boosting Machine、AdaBoost、Lasso Regression中找到最优的1个元学习器;所述最优的N个基础学习器为第一层,最优的1个元学习器为第二层,得到最优预测模型;将实时重要特征集的数据输入最优预测模型,得到预测结果,即为航班延误最终预测结果。
2.根据权利要求1所述的基于Stacking的航班延误预测方法,其特征在于,所述预处理,包括:删除历史航班数据和实时航班数据中货运航班、私人飞机和取消航班的数据;删除历史航班数据和实时航班数据中延误时间前1%和后1%的数据。
3.一种基于Stacking的航班延误预测系统,其特征在于,包括:获取模块:用于获取待预测机场的历史数据和实时数据,包括历史航班数据、历史气象数据、实时航班数据、实时气象数据;第一处理模块:用于对获取到的历史数据和实时数据分别进行预处理后构建用于预测的历史特征数据集和实时特征数据集,特征集包括航班属性、天气、日期、进离场压力和巡航压力;所述构建用于预测的历史特征数据集和实时特征数据集,包括:所述航班属性包括航班所属航空公司、航空公司是否将待预测机场作为基地、飞机容量、前序航班的延误时间;其中,待预测机场是否为基地是0-1哑变量;飞机容量由飞机座位数衡量,根据座位数等级进行划分,是离散变量,前序航班根据飞机注册号来识别;所述天气包括待预测航班计划进/离场时间前τ小时的温度、大气压、相对湿度、风向、风速、水平能见度,τ为需要提前τ小时预测航班的延误情况;所述日期包括待预测航班计划进/离场时间为一天中的第几个小时、一周中的第几天、一年中的第几个月、季节、是否为节假日;其中,是否为节假日是0-1哑变量;所述进离场压力反映机场的拥堵情况,定义为单位时间Δt内的计划航班数以及实际航班数,通过下式计算:式(1)中,NS为待预测航班计划进/离场时间前后 内的计划航班数,n s 为计划航班数量;NA为预测航班时间前Δt内的实际航班数,n a 为实际航班数量;所述巡航压力反映航路情况,定义为同一航路上或相似航路上航班的延误情况,通过下式计算:式(2)中,CP i 为航班i的巡航压力,F为与航班i使用相同航路或相似航路的航班集合, 为航班i的计划进/离场时间, 为航班j的实际进/离场时间,d j 为航班j的延误时间,SC j 是航班j所在航路与航班i所在航路的相似系数,τ为需要提前τ小时预测航班的延误情况,tc j 为时间系数, 与 的间隔越大,时间系数越小,符号 为向下取整函数;第二处理模块:用于对历史特征数据集和实时特征数据集分别进行二次处理和重要特征筛选,得到历史重要特征集和实时重要特征集;所述二次处理为对离散数据进行编码处理、对连续数据进行标准化处理,包括:航空公司、飞机机型等级使用One-Hot编码进行处理;前序航班的延误时间、进离场压力、巡航压力、温度、大气压、相对湿度、风速和水平能见度使用Z-score标准化进行处理;待预测航班计划进/离场时间为一天中的第几个小时、一周中的第几天、一年中的第几个月、季节具有周期性,风向采用角度来度量,为了体现出周期性,使用正余弦函数进行编码处理,通过下式表示:式(3)中,CAC为转换过后的特征,V为原始特征变量,T为特征的周期;所述重要特征筛选,包括:使用Boruta算法进行特征选择,使用Z-score表示每个特征的重要性,Z-score的计算公式如下:式(4)中,X为该特征在所有树中的平均精度损失,σ为相应的标准差;复制每个特征,得到影子特征,影子特征与原始特征拼接构成新的特征矩阵,如果原始特征的Z-score高于所有影子特征的Z-score,则该特征为重要特征;在所有影子特征中找出最大的Z-score记为Z max ,选取原始特征的Z-score大于Z max 的原始特征为重要特征;第三处理模块:用于采用历史重要特征集的数据对预先构建的预测模型进行训练和优化,得到最优预测模型;其中,所述预先构建的预测模型采用stacking方法,由不同的学习器堆叠形成,所述预先构建的预测模型共有两层,第一层为N个基础学习器,第二层为一个元学习器,第一层的输出水平堆叠作为第二层的输入;所述采用历史重要特征集的数据对预先构建的预测模型进行训练和优化,包括:将用历史重要特征集中80%的数据作为训练集D,20%的数据作为测试集T;使用K折交叉验证的方法,将训练集D随机划分为K个大小相似的子集D 1 ,…,D K ;对于基础学习器i,每次从D 1 ,…,D K 中选取1个子集为测试集,剩余K-1个子集为训练集,直到K个子集均做过测试集,K个测试集的训练结果构成基础学习器i的输出P i ,每次预测原始测试集T的结果取平均值记为p i ;将训练集和测试集分别输入每个基础学习器,使用平均绝对误差MAE和平均绝对百分比误差MAPE作为评价指标,公式如下:式(5)中,H(x i )为航班i的预测结果,y i 为航班i的实际延误值,M为样本总数;基于评价指标,从基础学习器Linear Regression、the K-nearest Neighbouralgorithm、Support Vector Regression、Random Forest、Artificial Neural Network、Light Gradient Boosting Machine、AdaBoost中找到最优的N个基础学习器;将最优的N个基础学习器的结果水平拼接,得到P=(P 1 ,P 2 ,...,P N ),p=(p 1 ,p 2 ,...,p N ),P、p分别作为元学习器的训练集D’与测试集T’;基于最优的N个基础学习器,将训练集D’与测试集T’输入元学习器,对比不同元学习器情况下的评价指标,从元学习器Linear Regression、the K-nearest Neighbouralgorithm、Support Vector Regression、Random Forest、Artificial Neural Network、Light Gradient Boosting Machine、AdaBoost、Lasso Regression中找到最优的1个元学习器;所述最优的N个基础学习器为第一层,最优的1个元学习器为第二层,得到最优预测模型;实时预测模块:用于将实时重要特征集的数据输入最优预测模型,得到预测结果,即为航班延误最终预测结果。
4.一种计算设备,其特征在于,包括处理器及存储介质;所述存储介质用于存储指令;所述处理器用于根据所述指令进行操作以执行权利要求1~2任一项所述方法的步骤。
5.计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~2任一项所述方法的步骤。





