?

基于Catboost算法的航班延誤預測研究

2022-04-22 11:20李任坤何元清
現代計算機 2022年3期
關鍵詞:樣本航班預測

李任坤,何元清

(中國民用航空飛行學院計算機學院,廣漢 618307)

0 引言

《2020年上半年全球機場和航空公司準點率報告》指出,因新冠肺炎疫情席卷全球,各機場航班量較之以前呈現大幅縮減,2020年上半年各大機場實際排班航班量約970萬架次,同比下降46.63%。準點率排名前三的國家依次是日本、中國和俄羅斯,分別為91.64%、88.36%和87.85%。航班延誤問題不僅打亂乘客的時間規劃,給公司帶來許多負面影響,還會影響后續的航班時間規劃。所以對航班延誤時間進行預測可以預告機場和乘客提前采取相應措施以減少或者避免后續影響,從而盡可能的減少航班延誤所帶來的損失。

目前在航班延誤預測領域,國內外研究人員已進行了深入探索。文獻[1]以XGBoost回歸算法為切入點,利用數據清洗加網格搜索結合交叉驗證的方法實現航班延誤預測模型的優化。文獻[2]詳細介紹了GBDT模型的來源,該算法核心是通過學習之前決策樹的殘差來擬合當前決策樹。文獻[3]介紹了一種新興的深度機器學習優化算法,極限梯度提升(XGBoost)算法能適應復雜的非線性關系,模型具有更佳的并行計算能力,能夠有效地解決過擬合問題。文獻[4]提出一種基于XGBoost模型升級的LightGBM模型,利用leaf-wise分裂策略,對已有的葉子結點進行對比,從中選擇分類收益最大節點完成分裂,極大減少了模型的訓練時間。文獻[5]使用了一種新型的Boosting算法CatBoost,創新性地在數據挖掘過程中選擇IV值分析進行特征選擇,有效去除了冗余特征。

本次實驗通過分析BST網站上公開的航班數據,利用CatBoost算法對比不同特征對航班的影響程度,選擇對航班延誤影響因素較高的特征用以精準預測航班延誤。本文先簡單介紹了CatBoost算法的原理,然后梳理了航班延誤預測的總體流程。①數據處理部分利用數據清洗和特征選擇輸出最優樣本集。②數據分析部分通過網格搜索及交叉驗證方法并結合訓練得到航班預測優化模型。③使用類似算法LightGBM和XGBoost對同樣數據集進行預測結果比對,可以看出,CatBoost算法的延誤預測精確度更高,時間更短,可以有效預測航班延誤。

1 算法介紹和流程搭建

1.1 Cat Boost算法介紹

CatBoost是一種能夠很好地處理類別型特征的梯度提升算法庫,作為GBDT框架的一種改進實現,其有著參數少、能夠匹配類別型變量以及準確性較高的優點,可以高效且合理地處理類別型特征。

1.1.1 類別型特征

CatBoost算法為了更好地選擇GBDT已有特征中存在的類別型特征,對以前的目標變量統計法(Greedy Target-based Statistics)進行了改進,通過添加先驗分布項,使得數據分布免受噪聲和低頻的影響,公式示例如下:

為了避免回歸錯誤造成過擬合問題,Cat?Boost對已有葉子的節點值進行計算,規避了多個數據集排列直接進行計算。

1.1.2 梯度提升(Gradient Boosting)

梯度提升是利用不可重復的迭代變量,不斷循環添加子模型,同時確保損失函數逐漸減小。

假設f()為子模型,復合模型為

設損失函數為[ ]F(),,進行迭代后添加全新子模型,隨著影響因子次高變量的梯度比前一次小,損失函數不斷減小。

作為GBDT的一種,CatBoost采用了完全對稱樹作為基模型,開創性地加入了自動轉換算法,將類別型通過計算轉換為數值型特征,達到高效處理類別型特征的目的。除此之外,Cat?Boost還解決了梯度偏差(Gradient Bias)和預測偏移(Prediction Shift)可能存在的問題,從而減少過擬合的發生,體現了本算法在提升準確性和加強泛化方面有明顯改善。

1.2 搭建預測實驗流程

本文對預測實驗進行了流程搭建,如圖1所示:第一步通過數據清洗對初始數據進行處理,利用嵌入算法篩選出有利于模型預測準確度的特征,獲取合適的樣本集后,將樣本特征隨機分為測試樣本集和訓練樣本集,通過網格搜索和交叉驗證的方法組合出最優參數解,再使用CatBoost算法對訓練樣本集進行訓練獲得預測模型,最后將最優參數組合帶入模型中得到航班延誤預測結果。

圖1 基于CatBoost的航班延誤預測流程

2 數據獲取、處理及分析

2.1 數據獲取處理

本文研究選取的是2019年全年的美國航班數據作為實驗,但因數據量巨大且考慮大型機場因自身原因造成的延誤可能性較小,篩選了由亞特蘭大哈茲菲爾德-杰克遜機場為出發機場,洛杉磯國際機場、西雅圖際機場或西雅圖塔科馬機場、芝加哥奧黑爾際機場、肯尼迪國際機場、舊金山國際機場為目的地的樣本數據38849條,每條樣本包含了計劃到港時間、起始機場距離、航班日期、航空公司代碼、始發機場代碼、目的機場代碼、原定出發時間、實際出發時間、實際到達時間等27個特征。因不同月份的天氣對預測相當重要,故使用數值型的年月日作為航班日期的特征表達。

2.1.1 數據補齊處理

數據集出現空值將影響實驗結果,需要一定的值去填充空值,從而使數據完備化。通?;诮y計學原理,根據初始數據集中其余對象取值的分布情況來對一個缺失值進行填充,在本實驗中,對于較高比例樣本存在缺失的情況,首先將樣本進行分類,然后以該類中樣本的均值來插補缺失值,較少比例樣本則直接去除空值樣本。

2.1.2 數值型處理

本文中因航空公司代碼為非數值型,無法有效進行數據處理,需轉換為數值型,本實驗采用15個航空公司的樣本數據,將航空公司按延誤率高低進行排序,并使用1~15的數值代替航空公式代碼。

2.2 特征選擇

選取對航班預測結果有用的特征至關重要,無用的特征會對預測準確度造成影響。先使用CatBoost模型進行訓練,獲得每個特征的權值系數,權值系數越高就表明了特征對模型的重要性或者程度越高,本實驗在sklearn中使用Se?lectFromModel設置的閾值參數為0.001,低于該閾值的特征則認為對模型不重要進行剔除,最后特征選擇字段如表1所示。

表1 特征字段解釋說明

3 結果分析及對比

CatBoost算法是通過在數據上構建多棵決策樹,匯總所有決策樹模擬結果的新型預測算法,本實驗中,為得到最優參數組合,將參數可能存在的取值進行依次列舉,得到組合結果后生成“網格”,然后將各網格結果帶入CatBoost算法進行訓練,最后利用交叉驗證評估測試集中的數據。通過評分函數得到評分最高的參數值,最后得到所有參數組合中的最優參數組合。下一步調整和評估參數,本文使用了Grid?SearchCV來完成,從而得到最優參數組合如表2所示。

表2 最優參數組合

將前面經過處理后的數據集進行劃分,20%的數據作為測試樣本集,剩余80%作為訓練樣本集,并通過CatBoost算法對訓練樣本進行訓練得到預測模型后,帶入測試集得到預測結果R-Squared為0.9897624,平均絕對誤差(MAE)為3.08分鐘,訓練時間為106 ms。最后使用LightGBM算法、XGBoost算法對相同的數據集進行類比預測,對比結果見表3。其中RSquared代表方差,值越趨近1,表示預測越準確;MAE值體現了預測值偏向真實值的差值;訓練時間與算f法的運行速度成反比:時間越短說明運行速度越快。通過實驗結果可以發現,使用CatBoost算法進行預測,結果精度更高,訓練時間更短。

表3 三種算法預測結果對比

4 結語

本文在航班受多種影響因素導致延誤的大背景下,使用了一種新型Boosting算法CatBoost進行航班延誤預測,取得了良好效果。首先對美國的亞特蘭大哈茲菲爾德-杰克遜機場、肯尼迪國際機場等五大國際機場在2019年全年的航班數據進行數據清洗,提取出對航班預測影響較大的關鍵類別型特征,并采用網格搜索和交叉驗證方法得到最優參數組合,帶入數據訓練獲取的預測模型中,通過實驗分析,CatBoost算法的R-Squared為0.9897624,MAE為3.08分鐘、訓練時間為0.106 s,相比于LightGBM、XGBoost算法,CatBoost在回歸指標方面都具有明顯優勢,表現出更高的預測精度和更短的預測時間。然而,由于現實中導致航班延誤的原因相當復雜,本文在特征選擇和參數調整上還有待進一步優化,比如將天氣、空管控流、電子故障等因素列入特征樣本中,從而更趨近現實情況以提升預測準確性。

猜你喜歡
樣本航班預測
選修2—2期中考試預測卷(B卷)
選修2—2期中考試預測卷(A卷)
英首個優步式飛機服務將推出
直擊高考中的用樣本估計總體
隨機微分方程的樣本Lyapunov二次型估計
航班延誤啥情況
2014年我國航班正常率僅六成
基于支持向量機的測厚儀CS值電壓漂移故障判定及處理
七年級數學下冊期末檢測題(B)
《福彩3D中獎公式》:提前一月預測號碼的驚人技巧!
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合