丁建立,孫 玥
(中國民航大學計算機科學與技術學院,天津 300300)
由于惡劣天氣、空域限制等諸多因素,航班延誤率居高不下。據(jù)民航局發(fā)布《2019年民航行業(yè)發(fā)展統(tǒng)計公報》所示,中國客運航空公司的全年平均正常航班率為81.65 %,有近20%的航班發(fā)生了延誤現(xiàn)象。航班延誤的頻繁發(fā)生,不僅會影響機場以及管制部門的正常運行,額外增加航空公司的運營成本,造成公共運輸服務資源的浪費,還會影響旅客的出行體驗。在發(fā)生大面積延誤時,大量滯留在機場的旅客很可能會引發(fā)混亂與糾紛,甚至與工作人員發(fā)生沖突,危害社會秩序與安全。因此,對航班的延誤情況提前進行預測,相關負責人員可以根據(jù)預測不同的延誤程度,提前進行有序的調度與合理的資源分配,防止因延誤的累積性造成惡性循環(huán),旅客也可以對延誤情況有一定的心理準備,及時對自己的行程安排進行調整,盡可能地減少航班延誤帶來的不利影響。
在航班延誤預測的相關工作中,較為傳統(tǒng)的預測方法主要包括回歸分析、貝葉斯網(wǎng)絡以及支持向量機等。Klein等[1]通過天氣影響交通指數(shù)(Weather impact traffic index,WITI)建立了一個機場延誤預測的多元回歸模型,對全年對流和非對流天氣下航班延誤的預測性能進行比較;文獻[2]基于貝葉斯網(wǎng)絡方法,通過建立預測階段和可靠性階段兩個步驟,提出了一種預測和評估機場到達系統(tǒng)運行狀態(tài)的方法,可以得出對機場性能有影響的因素之間的相互依賴關系;álvaro等[3]采用貝葉斯網(wǎng)絡方法對機場到達航班的擁擠程度和延誤情況進行預測,并利用馬爾可夫鏈技術對多狀態(tài)系統(tǒng)進行可靠性分析;文獻[4]建立了一種改進的支持向量機模型,采用主成分分析法進行特征篩選,并利用航班計劃的周期性,將歷史數(shù)據(jù)中的離港航班數(shù)和離港延誤率作為先驗知識提供給支持向量機,提高模型的精度。
隨著社會信息化程度的迅速發(fā)展,數(shù)據(jù)集的規(guī)模與復雜程度也在不斷提升,研究更多地運用了數(shù)據(jù)挖掘的方法。Achenbach等[5]將線性回歸和梯度提升進行結合,提出了一種短途航班到達時間預測和成本指數(shù)優(yōu)化模型,考慮了3種不同的飛行距離來模擬成本指數(shù)變化對登機口到達時間的影響;Gui等[6]分別訓練了兩種預測模型,并從分類與回歸任務兩個角度比較了模型的性能;周潔敏等[7]利用隨機森林進行特征篩選,建立了彈性神經(jīng)網(wǎng)絡預測模型,對航班落地延誤時間進行預測;吳仁彪等[8]基于DenseNet模型構建航班延誤預測模型,解決了深層訓練時的梯度消失現(xiàn)象,并提出SE-DenseNet模型,實現(xiàn)了特征提取過程中的權重自適應標定,減少了信息冗余的問題。
在航班延誤的預測問題上,相關研究已經(jīng)可以獲得較高的準確率。本文進一步對影響航班延誤的因素進行完善,增加天氣因素與前序航班相關因素,并針對訓練時間較長的問題進行改進,選用運行速度快、占用內存低的輕量級梯度提升機(Light gradient boosting machine,LightGBM)算法[9]進行建模。
LightGBM是一種分布式的梯度Boosting框架,目前的相關研究已廣泛涉及醫(yī)學[10-11]、機械故 障 檢 測[12]和 風 力 發(fā) 電 功 率 預 測[13]等 多 個 方向。本文提出一種基于LightGBM的航班延誤預測多分類模型,可以實現(xiàn)對航班延誤時長的多等級預測,達到更快的訓練速度與更好的預測性能。
本文選定的目標機場為紐瓦克自由國際機場,,其航班的歷史數(shù)據(jù)來源于美國交通運輸統(tǒng)計局,該機構統(tǒng)計了從1987年至今的美國全空域航班信息。選取的數(shù)據(jù)為2019全年歷史航班數(shù)據(jù),內容主要包括時間信息、航空公司信息、機場信息與延誤情況等共120個特征。
天氣的歷史數(shù)據(jù)來源于美國國家海洋和大氣管理局,選取的天氣數(shù)據(jù)同樣以紐瓦克自由國際機場為目標,且與選定的航班數(shù)據(jù)有著相同的時間跨度,便于后續(xù)的數(shù)據(jù)融合。天氣數(shù)據(jù)包括測定時間、測定地點、氣溫、露點、降水、相對濕度、云層狀況、能見度、風向、風速和異常天氣類型等共29個特征。
1.2.1 缺失值處理
將航班數(shù)據(jù)與天氣數(shù)據(jù)根據(jù)時間標簽進行融合,最終形成統(tǒng)一的數(shù)據(jù)集,共有310447條數(shù)據(jù)。通過對數(shù)據(jù)集進行檢查,發(fā)現(xiàn)部分特征的缺失率較高,共有59個特征缺失率達到了7成以上。對于這些特征,采取直接刪除的方式。余下特征的缺失率在5%以下,可以根據(jù)不同特征的特點進行填充。部分特征處理方式如表1所示。在“降水量”這一特征中,降水量為0的樣本占所有樣本的74.4 %,可以直接用眾數(shù)0對其缺失值進行填充;“云層狀況”這一特征在相鄰時刻內的變化不會過大,可以用上一個時刻的值來對缺失時刻的值進行填充。經(jīng)過缺失值處理后的數(shù)據(jù)集共包含85個特征。
表1 特征缺失值處理方式(部分)Table1 Treatment for certain characteristic missing value(Part)
1.2.2 前序航班
同一架飛機在一天中會執(zhí)行多個連續(xù)航班的任務,如果前序航班發(fā)生到達延誤,當前航班的離港時間也會受到延誤波及。因此,本模型將航班信息按照飛機尾翼號劃分成組,并按照時間排序,找出當前航班的前序航班相關信息。將前序航班預計到達時間、實際到達時間以及延誤時間這3個特征作為數(shù)據(jù)集的新特征,充分考慮前序航班的延誤情況對當前航班的影響。
如表2所示的4個航班,尾翼號為“234NV”,其中序號1與序號3為當日第1班航班,沒有前序航班,故相關特征為空;序號2的前序航班實際到達時間早于預計到達時間,故延誤時間為0;序號4的前序航班實際到達時間晚于預計到達時間10min,故延誤時間為10min。
表2 前序航班處理方式(部分)Table2 Pre?order flight processing method(Part)
1.2.3 特征編碼
數(shù)據(jù)集中含有較多object類型的特征,為便于后續(xù)的運算與建模,需先對其進行特征編碼。由于部分特征含有的類別數(shù)量較多,例如“飛機尾翼號”的類別有4139個,如果采用one-hot encoding對進行編碼,特征空間會變得過大,容易造成維度災難。本文選擇label encoding進行編碼,將特征均轉化為數(shù)值型。部分特征類型如表3所示。
表3 特征類型(部分)Table3 Type of feature(Part)
數(shù)據(jù)集中的冗余特征與無關特征會增加模型的計算量,減慢訓練速度,甚至有產(chǎn)生過擬合的可能。對這些特征進行篩選,可以減少不必要的資源消耗,提升模型的預測性能。本文的特征選擇主要分為兩個部分:方差過濾與遞歸特征消除。
方差過濾是對所有特征的方差進行計算,并根據(jù)設定的閾值來過濾掉那些方差較小的特征。如果一個特征本身的方差很小,就代表著樣本在這個特征上的大多數(shù)取值基本沒有差異,甚至完全相同。例如在“出發(fā)機場名稱”這一特征中,由于本文只選擇了一個目標機場,故樣本的取值也只有一種,這對于樣本的區(qū)分毫無幫助。
遞歸特征消除是通過選定的基模型來對特征的重要性進行排序,在每一輪訓練過程中,都消除掉一個或一些權重較小的特征,如此迭代進行,直至最后留下的特征個數(shù)滿足要求。本文選用LightGBM作為基模型,在方差過濾的基礎上進行遞歸特征消除,最終選定30個特征,其中航班信息相關特征21個,天氣信息相關特征9個,部分特征選擇結果的描述如表4所示。
表4 特征選擇結果(部分)Table4 Feature selection results(Part)
本文將航班延誤的嚴重程度分為5級[8],按照航班的離港延誤時長進行劃分,具體方式如表5所示,其中t為實際起飛時間與計劃起飛時間之差。
表5 航班延誤等級劃分Table5 Classification of flight delay
每類樣本所占總樣本的比例如圖1所示。從圖1中可以看出,未延誤航班的數(shù)量接近總航班數(shù)量的3/4,約為占比最小的重度延誤航班的75倍。如果直接對這樣的數(shù)據(jù)集進行預測,很可能會造成多數(shù)類樣本過擬合,而其他類樣本欠擬合的結果,模型也會更偏向于將樣本預測成為“未延誤”航班,無法達到對航班的延誤等級進行精準預測的效果。
圖1 不平衡處理前各延誤等級航班占比Fig.1 Proportion of flights with different delay levels before imbalance treatment
對不平衡數(shù)據(jù)進行處理,主要是通過重采樣的方法調整原始數(shù)據(jù)中每個類別的樣本數(shù)量,使各類別的樣本數(shù)相對均衡。本文模型采用的SMOTE-Tomek組合采樣,即先使用合成少數(shù)過采樣技術(Synthetic minority oversampling technique,SMOTE)算法,通過少數(shù)類樣本的最近鄰來隨機生成新樣本,再移除數(shù)據(jù)中的Tomek link,在各類樣本大致均衡的前提下,盡量保持分類邊界的清晰。處理過后的數(shù)據(jù)各等級分布比例如圖2所示。
圖2 不平衡處理后各延誤等級航班占比Fig.2 Proportion of flights with different delay levels after imbalance treatment
2.1.1 算法原理
LightGBM是梯度提升決策樹(Gradient boosting decision tree,GBDT)的一種高效實現(xiàn)。它的原理與GBDT相似,是將損失函數(shù)的負梯度作為當前決策樹的殘差近似值,去擬合新的決策樹,即每一次迭代都保留原來的模型不變,再加入一個新的函數(shù)到模型中,使預測值不斷逼近真實值。
訓練的目標函數(shù)如式(1)所示,其中,yi為標簽的 真 實 值,y?K-1i為 第K-1次 學 習 的 結 果,cK-1為前K-1棵樹的正則化項和,目標函數(shù)的含義為尋找一棵合適的樹fk使得函數(shù)的值最小。
運用泰勒公式對目標函數(shù)進行展開
損失函數(shù)的二階泰勒展開結果為
用gi記為第i個樣本損失函數(shù)的一階導數(shù),hi記為第i個樣本損失函數(shù)的二階導數(shù)
簡化后的目標函數(shù)可表示為
2.1.2 算法優(yōu)勢
傳統(tǒng)的GBDT算法在構建決策樹時,選用的是Pre-sorted算法來尋找最優(yōu)分割點,對每個特征都要遍歷其所有的數(shù)據(jù)樣本,計算所有可能分割點的信息增益。如圖3所示,LightGBM采用了改進的Histogram算法,將連續(xù)的浮點特征值劃分為k個區(qū)間,只需要在這k個區(qū)間中選擇最優(yōu)分割點,大大提升了訓練速度與空間的利用效率[7]。
圖3 直方圖算法原理圖Fig.3 Schematic diagram of histogram algorithm
除此之外,LightGBM從減少訓練數(shù)據(jù)的角度,在建立決策樹時采用按葉生長(Leaf-wise)策略代替按層生長(Level-wise)策略(圖4),并增加最大深度的限制,在保證高效率的同時防止過擬合。采用單邊梯度采樣(Gradient-based one-side sampling,GOSS)保留梯度較大的實例,對梯度較小的實例進行隨機抽樣,用更小的數(shù)據(jù)量獲得精確的信息增益估計。從減少特征的角度,采用互斥特征合并(Exclusive feature bundling,EFB)將一定的沖突比率內互斥的特征進行合并,達到降維的效果,且不會造成信息丟失[7]。
圖4 Level-wise策略與Leaf-wise策略Fig.4 Level-wise strategy and Leaf-wise strategy
本文提出一種基于LightGBM的航班延誤多分類預測模型,以紐瓦克自由國際機場為目標機場,收集相關的航班數(shù)據(jù)與天氣數(shù)據(jù),并按照時間標簽進行融合。對數(shù)據(jù)進行預處理,主要包括缺失值處理、前序航班信息處理和特征編碼等,并運用方差過濾以及遞歸特征消除進行特征選擇,最終的數(shù)據(jù)集共包含30個特征。預測的標簽按照延誤時長進行劃分,共5個等級,采用SMOTE與Tomek Link對數(shù)據(jù)進行重采樣,改善其不均衡特性。最后劃分訓練集與測試集,使用LightGBM算法進行多分類預測,經(jīng)貝葉斯調參得出最終模型,并用測試集進行預測,根據(jù)結果來對模型性能進行評估。算法預測流程如圖5所示。
圖5 基于LightGBM的航班延誤多分類預測流程Fig.5 Multi-classification forecast process of flight delay based on LightGBM
本模型調參方式選用貝葉斯優(yōu)化,即尋找可以使目標函數(shù)達到全局最大的參數(shù)時,會考慮已有的先驗信息,從而更好地調整當前的參數(shù)[4]。相比于網(wǎng)格調參,貝葉斯參數(shù)迭代次數(shù)少,運行速度更快,可以一次調整多個參數(shù),不容易造成維度爆炸,且只需要給參數(shù)制定大體的調整范圍,不需要考慮如何對范圍進行進一步細分。
數(shù)據(jù)集共包含樣本1156413條,其中75%的數(shù)據(jù)作為訓練集,余下25%的數(shù)據(jù)作為測試集。設定調參范圍,并同時對最大葉子數(shù)、最大深度、學習率、最小分裂增益樣本抽樣率和特征抽樣率等多個參數(shù)進行調參,最終結果如表6所示。
表6 貝葉斯優(yōu)化的調參范圍與結果Table6 Parameter adjustment range and results of Bayesian optimization
用于評價分類模型的性能指標主要包括以下4種:準確率、精確率、召回率以及F1分數(shù)。其中準確率是預測正確的結果占總樣本的百分比,代表對樣本整體的預測準確程度。精確率是被所有預測為正的樣本中實際為正樣本的概率,代表正樣本結果中的預測準確程度。準確率與精確率的指標定義如下,其中TP為正樣本被判斷為正,TN為負樣本判斷為負,F(xiàn)P為負樣本判斷為正,F(xiàn)N為正樣本判斷為負。
式中:A為準確率;P為精確率。
在樣本不均衡的情況下,不能只參照準確率對模型進行評估。在正樣本的數(shù)量遠遠少于負樣本時,即使將所有樣本都預測為負類樣本,也可以達到很高的準確率,但模型并沒有起到任何檢測正樣本的作用。因此,在此類問題中,需要同時參考召回率這一指標。召回率是在實際為正的樣本中被預測為正樣本的概率,代表著對少數(shù)類樣本的捕捉能力,在航班延誤問題中,也就代表著對少數(shù)延誤航班的檢測能力。
式中R為召回率。
F1分數(shù)可以理解為精確率與召回率的調和平均數(shù),綜合了精確率和召回率的結果,能夠客觀全面地反映模型性能,其數(shù)值最小為0,越接近1代表模型的性能越好。
如上所述的對于精確率、召回率與F1分數(shù)的傳統(tǒng)計算公式只適用于二分類模型,由于本文所采用的模型為多分類,所以按照Macro average規(guī)則來進行計算,即分別計算每個類別精確率、召回率與F1,然后求均值,平等地對待每個類別。用于多分類的準確率、精確率與F1分數(shù)的指標定義如下
本文將BTS所提供的航班數(shù)據(jù)與NOAA所提供的天氣數(shù)據(jù)相結合,經(jīng)過上述處理,形成一份包含1156413個樣本,30個特征變量的數(shù)據(jù)集。類別標簽以航班延誤的時長為標準,劃分為從0~4的5個延誤等級。選取數(shù)據(jù)的75%作為訓練集,25%作為測試集,對航班延誤進行多分類預測。
模型的迭代次數(shù)為120次,運行時長為2min 16s。最終預測結果的準確率為90.33 %,精確率為90.30 %,召回率為90.31 %,F(xiàn)1分數(shù)為0.9024 。
對預測結果的混淆矩陣進行可視化,得到的結果如圖6所示?;煜仃囀菣C器學習中用來總結分類模型預測結果的一種分析表,表中的每列代表預測類別,每行代表數(shù)據(jù)的真實類別,對角線的數(shù)值則代表被預測正確的樣本數(shù)量?;煜仃噷蔷€的數(shù)值越大,即混淆矩陣圖對角線的顏色越深,模型的分類性能越好。
圖6 混淆矩陣圖Fig.6 Confusion matrix graph
提取在預測過程中,重要程度在前15名以內的特征,如圖7所示。特征分別為云層狀況、機尾號、航班號、計劃起飛時間、計劃飛行時間、前序航班實際到達時間、風速、前序航班預計到達時間、相對濕度、目的機場、目的城市、前序航班延誤時間、每月第幾天、風向,其中天氣特征約占總重要特征的26.7 %。
圖7 不同特征的重要性分布Fig.7 Importance distribution of different features
為驗證處理步驟的合理性,構建多個數(shù)據(jù)集,并對實驗結果進行對比。實驗1為3.2 節(jié)所訓練的模型,即使用經(jīng)過不平衡處理、前序航班特征處理且含有天氣信息的數(shù)據(jù)集,實驗2為僅缺失天氣信息的數(shù)據(jù),實驗3為僅缺失前序航班特征的數(shù)據(jù),實驗4為僅缺失不平衡處理的數(shù)據(jù)。模型的參數(shù)與迭代次數(shù)均相同,在測試集上的性能表現(xiàn)如表7所示。
表7 實驗結果對比Table7 Comparison of experimental results
實驗結果證明,在分別增加了前序航班特征與天氣數(shù)據(jù)后,航班延誤預測模型的各項性能都提升了6%以上,充分說明了前序航班特征與天氣數(shù)據(jù)對航班延誤預測模型的提升起到了良好作用。未經(jīng)過不平衡處理的數(shù)據(jù)集,雖然準確率基本達到了80%以上的水平,精確率、召回率與F1分數(shù)卻大幅度降低,尤其是召回率僅為47.98 %,意味著模型對延誤航班的檢測能力相當有限,這一實驗結果可以更直觀地通過混淆矩陣圖來比較。
對比圖6與圖8可以看出,在未經(jīng)過不平衡處理時,混淆矩陣圖的第1列顏色很深,意味著模型更偏向于將更高等級的延誤航班預測為“未延誤”,即樣本數(shù)量占比較多的多數(shù)類。在經(jīng)過不平衡處理后,第1列的顏色趨于正常,對角線的顏色加深,意味著預測正確的樣本數(shù)量增多,模型對延誤航班的分類性能變好。對比結果證明了對數(shù)據(jù)進行不平衡處理的的必要性。
圖8 不平衡處理前混淆矩陣圖Fig.8 Confusion matrix graph before unbalance treatment
為進一步對本文算法所實現(xiàn)的航班延誤多分類預測性能進行評估,將其與較為先進的XGBoost、GBDT與Ramdom Forest算 法 相 比 較。不同算法在訓練時的最大深度均為15層,在測試集上的性能表現(xiàn)如表8所示。
表8 不同算法的實驗結果對比Table8 Comparison of experimental results of different algorithms
在對相同數(shù)據(jù)集的處理中,本文算法在準確率、精確率、召回率以及F1分數(shù)4大指標中,均是最優(yōu)秀的,且在保持良好性能的同時,大幅度地降低了時間成本。本文算法對1156413條數(shù)據(jù)進行分析處理,并達到90%以上的準確率,僅需要花費2min16s的時間,而XGBoost達到了82%以上的準確率,需要花費6min31s的時間,是LightGBM的2.875 倍,GBDT與Random Forest所需時 間更久。實驗結果證實了本文算法在航班延誤的多分類預測問題中,預測性能與訓練速度均優(yōu)于其他算法。
提前對航班延誤的嚴重程度進行預測,有助于將事后被動應急轉為事前主動干預,減緩延誤累積的負面影響。本文根據(jù)真實的航班數(shù)據(jù),提出了一種基于LightGBM的航班延誤多分類預測模型。主要工作有:(1)將天氣信息與航班信息相結合,并增加前序航班的相關特征,綜合考慮各個因素對航班延誤的影響;(2)運用方差過濾與遞歸特征消除,對無關特征與冗余特征進行篩選,降低模型復雜程度與運算成本;(3)綜合運用SMOTE與Tomek Link對數(shù)據(jù)進行重采樣處理,消除數(shù)據(jù)的不平衡特性;(4)通過LightGBM算法與貝葉斯優(yōu)化對航班延誤時長進行多分類預測,并對模型進行全面的評估與比較。實驗結果表明,相比與其他先進算法所構建的預測模型,本文模型具有更低的訓練時間成本與更精準的預測性能,可以為航班延誤的預測問題提供高效準確的參考。未來的研究工作將會考慮空域限制、流量管理以及到達機場天氣等因素,進一步提升航班延誤預測的準確率。