一种基于KNN和SVR的航班滑出时间预测方法与流程

文档序号:12124613阅读:434来源:国知局
一种基于KNN和SVR的航班滑出时间预测方法与流程

本发明属于预测理论与方法技术领域,特别是涉及一种基于KNN和SVR的航班滑出时间预测方法。



背景技术:

滑出时间预测是指在航班推出前,根据航班使用停机位、跑道等情况,预估航班从停机位滑出至实际起飞所需要的时间。对离港航班进行滑出时间预测有助于提高地面交通的可预测性,对促进各运行保障单位的协同决策具有重要作用。具体体现在:1)在航班推出前,若能够准确预估航班的滑出时间,有助于及时预见场面可能的拥堵情况,管理人员可以以此为依据通过优化航班推出序列等方法避免场面可能的拥堵,从而缓解滑出延误及减少航班延误;2)对于航空公司而言,准确预测航班的滑出时间有助于降低因飞机在滑行道上长时间等待造成的资源浪费;3)由于作为空中交通流量预测主要依据的航班预计起飞时间是根据航班撤轮挡时间加上航班预计滑出时间计算得到,因此,准确预测航班的滑出时间还有助于空管人员更好地平衡机场需求与容量、优化空中交通流量及提高预计到达时间的精准性等。

滑出时间的预测方法主要有线性回归预测法、神经网络预测法、强化学习预测法和模糊规则法等,且以线性回归预测法为主。以滑行距离、进离港航班数等因素为自变量构建线性预测模型,虽对场面交通管理起到一定的指导作用,但预测模型参数恒定不利于描述机场运行的复杂性和动态性;而采用非线性模型预测滑出时间,虽然提升了平均滑出时间的预测准确率,但是未给出单个航班的预测结果。国内大多数机场均采用统一的默认预计滑出时间来预估离港航班的滑出时间,具体做法是:每条跑道对应一个固定的滑出时间(例如,北京首都国际机场起飞跑道36R对应15min的滑出时间),这些滑出时间一般根据历史运行数据粗略计算得到。对于起降架次较少的机场,这种做法基本可行。而对于大型繁忙机场,由于受到机场布局、机位分配及航班流量等多种因素的影响,其航班滑出时间差别很大,若使用统一的默认滑出时间会产生较大误差。故提出基于KNN和SVR的航班滑出时间预测方法,首先使用KNN预测航班滑出期间使用同一跑道的起降航班数量,然后将预测结果、滑行距离等作为影响滑出时间的主要因素,再基于SVR构建滑出时间预测模型。



技术实现要素:

为了解决上述问题,本发明的目的在于提供一种基于KNN和SVR的航班滑出时间预测方法。

为了达到上述目的,本发明提供的基于KNN和SVR的航班滑出时间预测方法包括按顺序执行的下列步骤:

步骤1)获取机场航班实际运行数据:

步骤2)利用不同历史航班的离港滑行路径获得多个历史航班的滑行距离Dt,同时利用上述机场航班实际运行数据计算出多个历史航班的航班撤轮挡时使用同一跑道正在滑出航班数Nt及航班撤轮挡前15分钟同一跑道的平均滑出时间Tavg

步骤3)利用上述机场航班实际运行数据,使用K近邻算法预测出航班滑出期间使用同一跑道的预计起降航班数Pd+a

步骤4)将步骤2)及步骤3)获得的数据进行归一化处理,以消除不同属性值量纲的影响;

步骤5)确定构建支持向量机回归模型时所需的惩罚函数C、核参数σ,并构建用于航班滑出时间预测的支持向量机回归模型;

步骤6)收集某段时间内的机场航班实际运行数据而构成数据集D1,然后将数据集D1分成5个子集,选取数据集D1中的部分数据作为训练集而对支持向量机回归模型进行训练,其余数据作为测试集而对支持向量机回归模型进行验证;

步骤7)将待预测航班的特征向量X(Pd)代入上述已经过验证的支持向量机回归模型中,输出即为待预测航班的滑出时间预测值。

在步骤1)中,所述的获取机场航班实际运行数据的方法是从机场航班运行数据库中获得,包括:进出港名称、跑道代码、停机位、航班预计进港时间、航班实际进港时间、航班实际起飞时间及撤轮挡时间。

在步骤2)中,所述的利用不同历史航班的离港滑行路径获得多个历史航班的滑行距离Dt,同时利用上述机场航班实际运行数据计算出多个历史航班的航班撤轮挡时使用同一跑道正在滑出航班数Nt及航班撤轮挡前15分钟同一跑道的平均滑出时间Tavg的方法是:

根据每个航班的跑道、停机位在内的信息计算出每个航班的滑行距离Dt,根据航班实际运行数据中的撤轮挡时间、跑道代码统计出撤轮挡时同一跑道正在滑出航班数Nt,其中滑出时间是指从停机位滑出到实际起飞这段时间;通过航班实际运行数据统计出撤轮挡前15min同一跑道的平均滑出时间Tavg

在步骤3)中,所述的利用上述机场航班实际运行数据,使用K近邻算法预测出航班滑出期间使用同一跑道的预计起降航班数Pd+a的方法是:

航班滑出期间使用同一跑道预计起降航班数Pd+a包括航班滑出时间预计起飞航班数Pd和航班滑出时间预计降落航班数Pa两部分,将航班运行数据中的预计进港时间作为实际进港时间,然后根据实际进港时间统计得到航班滑出时间预计降落航班数Pa

采用KNN算法预测航班滑出时间预计起飞航班数Pd,具体方法如下:

(1)根据步骤1)中获得的机场航班实际运行数据和步骤2)中的部分结果分别构建特征向量X={Dt,Nt,Np,Pa,T},并根据待预测航班的实际运行数据构建其特征向量X(Pd),用来预测航班滑出时间预计起飞航班数Pd;其中,Dt表示航班的滑行距离;Nt表示航班撤轮挡时使用同一跑道正在滑出航班数;Np表示航班撤轮挡后未来15分钟内推出的航班数;Pa表示航班撤轮挡后15分钟内预计进港的航班数;T表示航班撤轮挡时间所处时间段;

(2)确定KNN算法中的最优K值;

采用十折交叉验证法来确定效果最好的最优K值,采用10个测试数据集的平均绝对误差百分比的均值来确定最优K值,当均值取最小值时,所对应的K值即为最优K值;

(3)利用上述多个历史航班的特征向量X和待预测航班的特征向量X(Pd),使用欧式距离公式分别计算出每个历史航班与待预测航班的相似度;

欧式距离公式为:

式中,X(Pd)为待预测航班的特征向量,X(Nd(a))为第a个历史航班的特征向量;F为特征向量的个数;n为历史数据集个数;Xf(Pd)与Xf(Nd)分别为待预测航班的特征向量X(Pd)与第a个历史航班的特征向量X(Nd(a))中的第f个属性;

(4)利用上述最优K值和相似度,将K个与待预测航班的特征向量X(Pd)最相似的历史航班滑出时间实际起飞航班数进行加权估计而获得待预测航班的航班滑出时间预计起飞航班数;

选取K个与待预测航班的特征向量X(Pd)最相似的历史航班的滑出时间实际起飞航班数Nd,i,然后将这K个数值进行加权估计而得到待预测航班的航班滑出时间预计起飞航班数Pd;加权估计公式如下:

式中,w(i)为K个历史航班中第i个历史航班数据的权重,Nd,i为第i个历史航班的滑出期间实际起飞航班数;d(X(Pd),X(Nd(i)))为第i个历史航班与待预测航班的相似度;

(5)将上述航班滑出时间预计降落航班数Pa和待预测航班的航班滑出时间预计起飞航班数Pd相加而获得航班滑出期间使用同一跑道预计起降航班数Pd+a

在步骤5)中,所述的确定构建支持向量机回归模型时所需的惩罚函数C、核参数σ的方法是采用基于十折交叉验证的网格搜索法。

在步骤6)中,所述的收集某段时间内的机场航班实际运行数据而构成数据集D1,然后将数据集D1分成5个子集,选取数据集D1中的部分数据作为训练集而对支持向量机回归模型进行训练,其余数据作为测试集而对支持向量机回归模型进行验证的方法是:

收集某段时间内的机场航班实际运行数据而构成数据集D1,然后按照上述步骤1)—步骤4)的方法获得或计算出每一历史航班的滑行距离Dt、航班撤轮挡时使用同一跑道正在滑出航班数Nt、航班撤轮挡前15分钟同一跑道的平均滑出时间Tavg、航班滑出期间使用同一跑道预计起降航班数Pd+a及航班撤轮挡时间所处时间段T,之后将数据集D1按航班撤轮挡时间所处时间段T分成5个子集d1,d2,d3,d4,d5,分别对应时段T1:7:00-9:00、T2:9:00-15:00、T3:15:00-19:00、T4:19:00-23:00及T5:23:00-7:00,分别为每个子集中的每个历史航班构建特征向量X′={Dt,Nt,Tavg,Pd+a},取di(i=1,2,3,4)中75%的数据作为训练集,其余25%的数据作为测试集,然后将训练集中的每个历史航班的特征向量X′={Dt,Nt,Tavg,Pd+a}代入上述已确定好惩罚函数C和核参数σ的支持向量机回归模型中而对该模型进行训练,支持向量机回归模型的输出即为航班滑出时间预测值,之后将测试集中的每个历史航班的特征向量X′={Dt,Nt,Tavg,Pd+a}代入上述已训练好的支持向量机回归模型中而对该模型进行测试,并将输出的航班滑出时间预测值与其实际的航班滑出时间进行对比,以验证上述支持向量机回归模型的正确性。

本发明提供的基于KNN和SVR的航班滑出时间预测方法的效果:根据每天航班运行的实际情况,分阶段建立预测模型,可提高预测的准确率。在误差范围±3分钟内,航班的平均预测准确率为79.86%,误差范围为±5分钟内,平均预测准确率可达93.4%。

附图说明

图1为航班滑出时间与航班滑出期间使用同一跑道起降航班数Nd+a的相关性分析结果示意图。

图2为航班滑出时间预测模型示意图。

图3为在选择最优K值时,在不同最优K值情况下,平均绝对误差百分比的变化情况。

图4为北京首都国际机场2013年10月1日至2013年10月15日中36R跑道每小时的平均进离港航班情况。

图5为随机选择的100个航班的航班滑出时间预计起飞航班数Pd与滑行期间实际起飞航班数的对比。

图6(a)—(d)分别为时段T1、T2、T3、T4随机选择100个航班的滑出时间预测值与实际值对比。

图7(a)—(b)分别为利用本方法对滑出时间进行实时预测时,不同时段的MAE、MAPE对比,

图8(a)—(d)分别为利用本方法对滑出时间进行实时预测时,时段T1、T2、T3、T4的误差对比。

图9为本发明提供的基于KNN和SVR的航班滑出时间预测方法流程图。

具体实施方式

下面结合附图和具体实例对本发明提供的基于KNN和SVR的航班滑出时间预测方法进行详细说明。

如图9所示,本发明提供的基于KNN和SVR的航班滑出时间预测方法包括按顺序执行的下列步骤:

步骤1)获取机场航班实际运行数据:

从机场航班运行数据库(AODB)中获得机场航班实际运行数据,包括:进出港名称、跑道代码、停机位、航班预计进港时间、航班实际进港时间、航班实际起飞时间及撤轮挡时间;

步骤2)利用不同历史航班的离港滑行路径获得多个历史航班的滑行距离Dt,同时利用上述机场航班实际运行数据计算出多个历史航班的航班撤轮挡时使用同一跑道正在滑出航班数Nt及航班撤轮挡前15分钟同一跑道的平均滑出时间Tavg

经相关性分析,可知航班的滑行距离Dt、航班撤轮挡时使用同一跑道正在滑出航班数Nt、航班滑出期间使用同一跑道起降航班数Nd+a以及航班撤轮挡前15分钟同一跑道的平均滑出时间Tavg是影响航班滑出时间的最重要因素。以分析航班滑出期间使用同一跑道起降航班数Nd+a为例,图1为航班滑出时间与航班滑出期间使用同一跑道起降航班数Nd+a的相关性分析结果示意图。

由于不同的滑行路径时航班所经过的滑行距离不同,从而影响航班的滑行时间;而在离港航班高峰期,由于跑道、滑行道等资源受限,导致离港航班在滑出过程中需要等待其他航班,从而延长其滑出时间;根据每个航班的跑道、停机位在内的信息计算出每个航班的滑行距离Dt,根据航班实际运行数据中的撤轮挡时间、跑道代码统计出撤轮挡时同一跑道正在滑出航班数Nt,其中滑出时间是指从停机位滑出到实际起飞这段时间;通过航班实际运行数据统计出撤轮挡前15min同一跑道的平均滑出时间Tavg

步骤3)利用上述机场航班实际运行数据,使用K近邻算法(KNN)预测出航班滑出期间使用同一跑道的预计起降航班数Pd+a

由于航班滑出期间使用同一跑道起降航班数Nd+a为不可实时观察变量,从而给下面的支持向量机回归(SVR)模型的构建带来了困难,因此本发明采用航班滑出期间使用同一跑道预计起降航班数Pd+a来替代航班滑出期间使用同一跑道起降航班数Nd+a。航班滑出期间使用同一跑道预计起降航班数Pd+a包括航班滑出时间预计起飞航班数Pd和航班滑出时间预计降落航班数Pa两部分,而在实际运行中,航班预计进港时间与实际进港时间相差较小,所以可以将航班运行数据中的预计进港时间作为实际进港时间,然后根据实际进港时间统计得到航班滑出时间预计降落航班数Pa:但是若根据航班预计起飞时间计算航班滑出时间预计起飞航班数Pd误差会过大,故问题主要是预测航班滑出时间预计起飞航班数Pd

在同一航季,每日航班计划基本固定,因此机场航班实际运行数据中包含的信息对航班滑出时间预计起飞航班数Pd的预测至关重要,而KNN算法结构简单、计算效率高,且能充分利用历史数据信息,因此本发明采用KNN算法预测航班滑出时间预计起飞航班数Pd,具体方法如下:

(1)根据步骤1)中获得的机场航班实际运行数据和步骤2)中的部分结果分别构建特征向量X,并根据待预测航班的实际运行数据构建其特征向量X(Pd),用来预测航班滑出时间预计起飞航班数Pd

一般情况下,滑行距离较长的航班所经历的滑行时间较长,因此其航班滑出时间预计起飞航班数Pd会相应增加;航班撤轮挡时刻正在滑出的航班、正在滑入的航班以及滑出期间推出的航班反映了该航班在滑出期间面临的场面交通情况,在一定程度上反映了航班滑出时间预计起飞航班数Pd的情况;若滑出期间有较多航班进港,会因跑道被占用而导致离港航班排队等待,即航班滑出时间预计起飞航班数Pd减少;若撤轮挡前同一跑道的平均滑出时间较长,且起飞航班数量较多,说明当前时间段内航班流量较大,该航班的航班滑出时间预计起飞航班数Pd也会随之增加。

根据首都机场实际运行数据的实验表明,利用特征向量X={Dt,Nt,Np,Pa,T}对航班滑出时间预计起飞航班数Pd进行预测能够取得较好的结果,其中,Dt表示航班的滑行距离;Nt表示航班撤轮挡时使用同一跑道正在滑出航班数;Np表示航班撤轮挡后未来15分钟内推出的航班数;Pa表示航班撤轮挡后15分钟内预计进港的航班数;T表示航班撤轮挡时间所处时间段。

假定上述多个航班均与待预测航班使用同一跑道,且计算航班撤轮挡后未来15分钟内推出的航班数Np时,假设航班不存在推出延误,即按实际推出时间计算。

(2)确定KNN算法中的最优K值;

最优K值是KNN算法中唯一的参数,表示K个实例,其取值将会直接影响下面的支持向量机回归模型的预测结果。本发明采用十折交叉验证法来确定效果最好的最优K值,采用10个测试数据集的平均绝对误差百分比的均值来确定最优K值,当均值取最小值时,所对应的K值即为最优K值。

若取Kmin=1,Kmax=100,根据首都机场实际运行数据的实验表明,当K=56时,均值取得最小值,实验结果如图3所示,因此,确定最优K值为56。

(3)利用上述多个历史航班的特征向量X和待预测航班的特征向量X(Pd),使用欧式距离公式分别计算出每个历史航班与待预测航班的相似度;

欧式距离公式为:

式中,X(Pd)为待预测航班的特征向量,X(Nd(a))为第a个历史航班的特征向量;F为特征向量的个数;n为历史数据集个数;Xf(Pd)与Xf(Nd)分别为待预测航班的特征向量X(Pd)与第a个历史航班的特征向量X(Nd(a))中的第f个属性。

(4)利用上述最优K值和相似度,将K个与待预测航班的特征向量X(Pd)最相似的历史航班滑出时间实际起飞航班数进行加权估计而获得待预测航班的航班滑出时间预计起飞航班数;

当某个历史航班与待预测航班更接近时,该历史航班的滑出期间实际起飞航班数应对待预测航班具有更大的影响。因此,选取K个与待预测航班的特征向量X(Pd)最相似的历史航班的滑出时间实际起飞航班数Nd,i,然后将这K个数值进行加权估计而得到待预测航班的航班滑出时间预计起飞航班数Pd;加权估计公式如下:

式中,w(i)为K个历史航班中第i个历史航班数据的权重,Nd,i为第i个历史航班的滑出期间实际起飞航班数;d(X(Pd),X(Nd(i)))为第i个历史航班与待预测航班的相似度。

(5)将上述航班滑出时间预计降落航班数Pa和待预测航班的航班滑出时间预计起飞航班数Pd相加而获得航班滑出期间使用同一跑道预计起降航班数Pd+a

步骤4)将步骤2)及步骤3)获得的数据进行归一化处理,以消除不同属性值量纲的影响;

步骤5)确定构建支持向量机回归模型时所需的惩罚函数C、核参数σ,并构建用于航班滑出时间预测的支持向量机回归模型;

利用支持向量机回归模型进行预测时,涉及到一些参数的选取,如惩罚函数C、核参数σ等,这些参数会直接影响到支持向量机回归模型的类型以及复杂程度,因此确定合适的参数至关重要。

本发明采用基于十折交叉验证的网格搜索法来确定惩罚函数C、核参数σ。

步骤6)收集某段时间内的机场航班实际运行数据而构成数据集D1,然后按照上述步骤1)—步骤4)的方法获得或计算出每一历史航班的滑行距离Dt、航班撤轮挡时使用同一跑道正在滑出航班数Nt、航班撤轮挡前15分钟同一跑道的平均滑出时间Tavg、航班滑出期间使用同一跑道预计起降航班数Pd+a及航班撤轮挡时间所处时间段T,之后将数据集D1按航班撤轮挡时间所处时间段T分成5个子集d1,d2,d3,d4,d5,分别对应时段T1:7:00-9:00、T2:9:00-15:00、T3:15:00-19:00、T4:19:00-23:00及T5:23:00-7:00,其划分依据为北京首都国际机场2013年10月1日至2013年10月15日中36R跑道每小时的平均进离港航班情况,如图4所示。分别为每个子集中的每个历史航班构建特征向量X′={Dt,Nt,Tavg,Pd+a},取di(i=1,2,3,4)中75%的数据作为训练集,其余25%的数据作为测试集,然后将训练集中的每个历史航班的特征向量X′={Dt,Nt,Tavg,Pd+a}代入上述已确定好惩罚函数C和核参数σ的支持向量机回归模型中而对该模型进行训练,支持向量机回归模型的输出即为航班滑出时间预测值,整个流程如图2所示,之后将测试集中的每个历史航班的特征向量X′={Dt,Nt,Tavg,Pd+a}代入上述已训练好的支持向量机回归模型中而对该模型进行测试,并将输出的航班滑出时间预测值与其实际的航班滑出时间进行对比,以验证上述支持向量机回归模型的正确性。采用十折交叉验证的网格搜索法确定的参数是综合最好及最坏情况下的折衷结果,故由此确定的SVR模型也基本上达到了性能最优。

由于在实际运行中,不同时间段的航班流量相差很大,因此本发明将航班撤轮挡时间所处时间段T分成多个时段,使得每个时段内的历史航班特征相似。另外,由于夜间即T5时段内航班流量较小,不存在大量航班进离港而造成场面拥堵的情况,因此滑出时间可直接通过滑行距离除以平均滑行速度得到,所以,本发明只探讨前四个时段的滑出时间预测问题。

步骤7)将待预测航班的特征向量X(Pd)代入上述已经过验证的支持向量机回归模型中,输出即为待预测航班的滑出时间预测值。

为了验证本发明提供的基于KNN和SVR的航班滑出时间预测方法的效果,本发明人进行了如下实验:

1.航班滑出时间预计降落航班数Pd预测

以首都机场10月1日至11月14日的航班实际运行数据作为训练集,以11月15日至30日的数据作为测试集,表1给出了航班滑出时间预计降落航班数Pd在误差范围为±2和±3时的预测准确率、平均绝对误差(MAE)及平均绝对误差百分比(MAPE),由表1可知,利用KNN预测航班滑出时间预计降落航班数Pd能够取得较好的预测结果。且由图5也可以看出采用KNN预测航班滑出时间预计降落航班数Pd拟合效果比较好。

表1、航班滑出时间预计降落航班数Pd预测结果

2.滑出时间预测

为了对比说明本发明方法的有效性,分别利用如下几种不同方法预测滑出时间:

方法1:本发明提供的基于KNN和SVR的航班滑出时间预测方法;

方法2:与方法1所用方法相同,但训练SVR模型时,数据集不进行分组;

方法3:基于KNN-KNN的预测方法,即预测航班滑出时间预计降落航班数Pd及滑出时间均采用KNN;

方法4:基于SVR-SVR的预测方法,即预测航班滑出时间预计降落航班数Pd及滑出时间均采用SVR模型;

方法5:直接利用SVR模型对滑出时间的相关因素进行非线性回归预测。

表2和表3分别给出了各组实验的预测准确率对比、MAE及MAPE对比,由表2及表3可知:1)本发明方法预测准确率最高,且具有较小的MAE及MAPE;2)方法1、2的预测准确率高于方法3、4和5,方法5的准确率最低,说明KNN适合用于预测预测航班滑出时间预计降落航班数Pd,而SVR模型适合用于预测滑出时间,将滑出时间预测过程分成两个阶段进行预测优于直接预测;3)方法1预测结果优于方法2,说明按航班流量特征将数据分组,使得各子数据集内航班的特征更加相似,有助于提升预测准确率。

表2、预测准确率对比

表3、MAE及MAPE对比(T1-T4所有航班数据)

图6分别给出了不同时段随机选择100个航班的滑出时间预测值与实际值对比,由图6可知,预测值与实际值非常近似。图7与图8分别给出了利用本方法对滑出时间进行实时预测时,不同时间段的MAE、MAPE及误差对比,由图7及图8可看出,不同时段的MAE均在2min以内,预测值均匀地分布在实际值两侧,预测结果较好。

综上,利用本发明提供的基于KNN和SVR的航班滑出时间预测方法对待预测航班的滑出时间进行预测时,误差范围±3分钟内时,T1-T4时段所有航班的平均预测准确率为79.86%,误差范围为±5分钟内时,平均预测准确率可达93.4%,因此可以使单个航班的预测准确率大大提升。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1