羅 杰,侯 霞+,楊鴻波,劉 林,謝 豐
(1.北京信息科技大學 計算機學院,北京 100101;2.北京信息科技大學 自動化學院,北京 100192;3.中國信息安全測評中心 系統評估處,北京 100085)
近年來,隨著客運量與航班行程的增加、航空運輸需求與交通容量之間矛盾的加深,航班延誤變得更加頻繁。及時準確地預測航班延誤可以減少運輸行程沖突并提高航空公司的服務質量。當前,各航空樞紐已存有大量的公共飛行歷史數據。通過模型學習這些歷史數據,可以預測航班延誤,幫助機場發布延誤狀態并調整運營策略,從而減少由于航班延誤而造成的經濟損失和聲譽損失。
當前國內外已有一些關于航班延誤預測問題的研究成果。在預測方法上,文獻[1]使用Logistic模型預測某一空域航班延誤;文獻[2,3]將前序航班的延誤因素加入研究,使用支持向量機(SVM)進行延誤預測。但以上預測方法對數據要求較高,在多因素導致的延誤和數據量較大的場景下表現欠佳,而基于樹的模型可以更好地解決這些問題[4-9]。文獻[4]使用隨機森林(RF)與一些傳統機器學習相比得出RF效果最優的結論;文獻[5,6]為了滿足大數據量情況下的要求,使用并行式的RF進行延誤預測,提高了預測效率;文獻[7-9]使用梯度上升決策樹(GBDT)進一步提高了預測效果;文獻[8,9]通過對比傳統機器學習算法得到GBDT效果最優的結論。為了突破單一模型預測效果的上限,文獻[10-12]采用集成的思想,將多種預測器進行融合,相比單獨的預測模型效果有所提升。但集成時并未使用基于樹的模型,且對數據要求較高。在稀疏數據填充、規范化等步驟需要投入大量精力,多因素間的相互影響也需要提前人為處理。
為了適應現實中更廣泛的數據,減少數據處理的相關工作,提升多因素導致的航班延誤預測效果,本文采取集成學習的思想,提出一種將Xgboost模型作為特征篩選及特征轉換器,使用Logistic回歸進行規則集權重學習的集成離港航班延誤預測模型。
根據中國民用航空局2016年發布的《民航航班正常統計辦法》中的規定,進、離港實際時間晚于計劃時間15分鐘(含)的航班被認定為延誤,本文給出如下定義。
定義1 離港航班延誤標志Ddep用于標識航班離港是否延誤
(1)
其中,RDT代表航班實際起飛時間,SDT代表航班計劃起飛時間。如果發生延誤Ddep=1,未延誤Ddep=0。
本文將采用一種集成學習方法預測Ddep。
定義2 進港航班延誤參數Darr用于描述航班進港延誤的狀況
Darr=max{0,RAT-(SAT+15)}
(2)
其中,RAT代表航班實際到達機場時間,SAT代表航班計劃到達機場的時間。即,如果發生延誤Darr為實際延誤時間,未延誤Darr=0。
本文實驗數據來自國內某機場(后稱W)2019年航班數據和天氣數據,包括以W為目的地的航班數據與以W為始發站的數據共計518 915條。每條航班數據字段包括航班號、機型、始發站、終點站、航司、計劃起飛到達時間、實際起飛到達時間、W天氣、W起飛的目的站天氣。天氣數據包括溫度、可見度、風力等。
實際數據會普遍存在缺失的問題,部分缺失值可以通過均值、眾數和臨近值等方法進行填充。但由于部分數據含義的特殊性,缺失值難以填充。表1是對存在數據缺失字段的缺失率統計。

表1 稀疏數據缺失率
較大的數據缺失率會導致稀疏數據,這是現實航班延誤預測任務中較為常見的問題。在大數據量下,根據某些規則填充較大缺失率的字段會引入人為規則,影預測模型的實際性能。而未經填充的數據則會對一些優秀且簡單的算法模型帶來災難性后果。Xgboost模型對缺失值進行了定向分枝,可以正確處理稀疏特征帶來的影響[13],這啟發了本文使用Xgboost作為特征轉換器的想法。
航空網絡是一個復雜的系統,航班的準點率與機場狀況、天氣條件、航線狀況以及前序航班延誤情況密切相關,且前序航班的延誤具有傳播性、和累加性,因此航班延誤是一種多因素導致的狀況。以機場為主體的航班延誤分析如圖1所示。

圖1 航班延誤分析
對于以機場為主體的離港航班延誤而言,Ddep是航空網絡中延誤的累加結果,可描述為

Darr+DinPort+DoutPort
(3)
其中,n為前序航班途徑機場主體個數,Darri、Dinporti、DoutPorti、Ddepi分別為在前序第i個機場時的航班到達延誤、航班入港延誤、航班出港延誤,Ddep為機場W的航班出港延誤。
每個節點是否延誤都與航空網絡前序延誤因素有關。針對各階段延誤的主要影響因素進行分析,得到如表2所示的延誤特征。本文選用這些特征作為Xgboost模型的輸入特征。

表2 延誤特征
本節提出一種集成模型結構:基于Xgboost與Logistic的集成學習模型。該模型可以提取隱藏在特征中的深層次信息,同時完成特征的篩選和非線性變換,提高線性分類器的泛化能力和輸入向量的質量,從而提升預測效果。
GBDT與Logistic模型融合方法已經在眾多領域表現出廣泛且優秀的效果。而Xgboost在防止過擬合、處理稀疏數據等方面相較于GBDT擁有較多優勢,這使得用Xgboost作為線性回歸模型的特征轉換器更有意義。其學習模型是基于boosting集成方法,模型為如下的加法模型
(4)

設F為經Xgboost轉換后的特征空間,F={f1,f2,…,fs},fi為轉換后的某特征向量,s∈[1,N],N為樣本總量。fs={fs1,fs2,…,fsn},n為森林中所有決策樹葉節點總數
(5)
則經過xgboost的中間輸出為
(6)
其中,leaf()為葉函數,它計算樣本實例落入的葉節點的值,即fsn的值。此時Logistic模型的輸入樣本空間T={(f1,y1),(f2,y2),…,(fN,yN)},其中fi∈F,yi∈{0,1}。
此時定義一個可以區分F的y值的超平面
ωTf+b=0
(7)
其中,ω={ω1,ω2,…,ωn,b},在模型上表示為可以區分正負樣本的超平面,在特征方向表示學習規則集的權重。此時,集成模型表示為式(8),模型結構如圖2所示

圖2 集成預測模型
(8)
其中,hω(f;ω)為樣本是否延誤的概率。
控制特征的數量和去共線性化對模型表現至關重要。已知Xgboost通過計算特征增益Gain值控制節點分裂[13]。Gain值越大代表在當前節點以某特征進行分裂可以更大地降低模型的損失,說明該特征在某一條轉換規則(決策樹)上越重要,其隱藏在范疇特征中的信息越多。定義某特征在所有樹中Gain值的平均值為特征重要性
(9)
特征重要性反映了該特征在模型中對預測指標的支持程度,但無法直觀反映該特征在所有特征中的重要程度,因此采用特征重要性為依據進行特征篩選,即
(10)

通過轉換輸入特征來提高線性分類器的性能一般有兩種方式:對于連續型特征,可以將特征進行“分桶”,并把“分桶”索引作為新的分類特征值,以此實現非線性變換,但需要對分桶邊界進行學習;另外一種方式包括構建元組輸入特征,對于分類特征可以采用笛卡爾乘積的方式將分類特征的可能值進行組合,對于連續特征可以使用k-d樹進行分塊。
Xgboost通過稀疏數據感知分裂算法進行節點分枝,在稀疏、大樣本和高緯度數據中表現出許多特有的優勢[13],并且可以通過森林中每棵樹根節點到葉節點的路徑進行特征轉換。使用Xgboost進行特征轉換是實現上述非線性變換與元組轉換的一種更方便的方法。本文將Xgboost的每棵樹的路徑作為一個類別特征的轉換規則,將樣本實例最終所在的葉節點的索引作為轉換值。每棵樹的葉節點的索引值采用one-hot格式進行編碼,最終將森林中所有編碼向量進行拼接,得到某特征的轉換特征。Xgboot轉換特征是一種有監督的特征編碼,在二元向量上擬合線性分類器本質上就是學習規則集的權重。設規則集Z={z1,z2,…,zk},zk為Xgboost森林中每條轉換規則,k為森林中決策樹的數量。因此,線性分類器的學習過程就是轉換規則權重θ的學習過程,即
y=θ0+θ1z1+θ2z2+…+θkzk+ε
(11)
以圖2(集成預測模型)為例,森林中共有3棵樹,5個葉子節點,假設某樣本實例分別落在3棵樹的第1、2和2節點,即fi1=1,fi5=1,fi9=1。則特征向量最終取值為[1,0,0,0,1,0,0,0,1,0],其中fi1、fi2、fi3為第一范疇特征,fi4、fi5、fi6、fi7為第二范疇特征,fi8、fi9、fi10為第三范疇特征。4.2節驗證了該方法的可行性。
集成預測主要分為4個步驟:
(1)經過數據預處理、特征工程的航班數據進行學習訓練,得到特征重要度排名;
(2)逐步拋棄得分最低的特征,并使用剩余的特征訓練Xgboost,直至模型效果有明顯下降,加入該歩拋棄的特征得到最終航班特征;
(3)將樣本實例通過Xgboost進行特征轉換,得到轉換特征向量;
(4)Logistic模型預測航班延誤。流程如圖3所示。

圖3 集成預測流程
航班運營案例中,延誤航班(Ddep>15)案例遠小于準點航班案例。考慮到非平衡數據集對模型帶來的影響,在分類前對數據集進行平衡采樣。采樣可分為過采樣和欠采樣。過采樣會從現有數據集中為少數類別創建綜合樣本從而平衡類別的分布,而欠采樣技術則僅考慮多數類別的子集來平衡類別的分布。由于欠采樣僅考慮到來自準點航班案例的樣本的子集,忽略了拋棄的樣本子集中潛在的重要信息。而對于負樣本遠小于正樣本的數據集,僅使用過采樣通常無法解決類分布偏斜的數據集中存在的其它問題[9]。

(12)
通過對比Xgboost在不同處理方式的數據集上的效果,發現過欠采樣與過采樣的集成處理方法取得了最好效果,對比結果見表3。

表3 平衡方法效果對比
模型評估指標使用準確度Acc,用以衡量判斷正確的案例占所有案例總數的百分比,如式(13)所示
(13)
預測混淆矩陣見表4。

表4 預測混淆矩陣
為了更加貼合航班延誤案例少于正常航班案例的真實情況,測試集并沒有進行數據平衡處理。此外,模型采用ROC曲線與AUC值作為評判指標,以確保結果的正確性。ROC曲線橫軸為假陽性率(FPR),如式(14)所示。縱軸為真陽性率(TPR),如式(15)所示
(14)
(15)
AUC值為ROC曲線下面積,如式(16)所示
(16)
其中,rankinsi表示將樣本按概率從大到小排列后第i條樣本的序號。M、N分別代表正負樣本個數。∑insi∈positiveclass表示將正樣本序號之和。
使用平衡數據集上訓練得到的Xgboost模型進行特征重要度評估。原始特征見表2,共計62個特征。通過式(10)得到所有特征的重要度后進行降序排序,以每輪丟棄末尾一個特征的步進,將剩余的特征再次訓練Xgboost,直至模型性能出現明顯下降。最終保留了46個特征,包含整體特征重要度的95.2%,其中前17個特征包含了整體80%左右的信息。由圖4條形圖可知,離港航班延誤與飛機起飛前的運營關系最大,如旅客登機流程。該類特征距離起飛時間最近,可以直觀反映延誤情況。而風速作為飛行器起降的一大影響因素緊跟其后,這與航班運營經驗相符。前序航班延誤在航空網絡中的傳播也是一個重要的支持依據,這與現有研究結論相符。

圖4 特征重要度排名
Xgboost通過特征重要度篩選特征后的效果如表5中所示,對比表3可知,丟棄部分特征后模型準確度并沒有發生下降,而AUC值有所提高。實際上,減少特征數量增強了模型的泛化性能和訓練速度。至此,得到了可以作為特征轉換器的Xgboost模型。
本文做了相關對比實驗,驗證將Xgboost轉換特征作為線性模型的輸入可以有效提高線性模型的預測性能。該實驗對比使用了轉換特征的Logistic模型與未使用轉換特征的Logistic單獨模型,以及使用單獨的Xgboost作為對比參考。對比結果見表5,ROC曲線如圖5所示。
由表5與圖5可知,采用Xgboost與Logistic相集成的方法在稀疏航班數據集上相比單獨的Logistic模型與Xgboost(XGB)均有所提升,而單獨的Logistic(LR)模型表現明顯不佳。

表5 Xgboost特征轉換效果

圖5 Xgboost特征轉換效果對比
與當前已有研究中機器學習方法進行對比,本文集成策略也取得了最好成績。對比結果見表6,ROC曲線如圖6所示。

表6 預測結果對比

圖6 ROC對比
由表6與圖6可知,Xgboost與Logistic相集成的預測方法在稀疏數據集上取得了最高的準確度與AUC值,這在非平衡樣本結果中更加有說服力。其中,SVM模型耗時最久,遠遠超過了基于決策樹的學習模型,效果也不盡人意,這也驗證了SVM不太適合大樣本下的航班延誤預測任務。
由于基于決策樹的森林模型都可以按本文方法與線性模型相集成,將上述實驗中表現效果較佳的RF模型和GBDT模型按本文方法分別與Logistic模型進行集成,通過與本文集成預測模型進行對比,結果見表7,ROC曲線如圖7所示。

表7 集成方法預測結果對比

圖7 集成方法ROC對比
通過對比表6、圖7和表7可以看到,將基于森林的模型作為特征轉換器與Logistic相集成的策略可以有效提高單獨線性預測模型的效果,但效果仍不及Xgboost與Logistic相集成的方法。集成策略對樹模型的性能也有所提升,集成后的模型將RF預測準確度提升了1.4%,將GBDT預測準確度提升了0.7%,同時AUC值也沒有太大損失。GBDT與Xgboost作為特征轉換器的集成策略效果明顯優于RF集成策略,這與樹模型的學習算法有關。
本文提出了一種基于Xgboost模型與Logistc模型相集成的離港航班延誤預測方法。該集成策略可以有效提高線性分類器在稀疏數據集上的預測表現,相較于基于森林的單獨模型性能也有所提升。將基于森林的模型作為線性分類器的輸入特征轉換器的集成策略還同時完成了特征非線性轉換與篩選,可以有效抑制過擬合情況的發生。而特征重要度排名可以為決策提供可解釋依據。
相比現有研究中的航班延誤預測方法,該方法預測模型效果更佳、對數據寬容度高、收斂速度快,更適合現實中離港航班延誤預測任務。在實際案例中,通過Xgboost轉換特征雖然可以降低數據要求,但是無法完全替代特征工程的環節。在新特征的創造上還需對數據本身含義進行深究,挖掘出更有價值的特征。