?

基于隨機森林回歸的航班延誤預測

2019-07-15 01:37劉中祥王欣
現代計算機 2019年15期
關鍵詞:字段決策樹比值

劉中祥,王欣

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

0 引言

依據2017年民航行業發展統計公報,國內的客運航空公司完成航班403.9萬班次,其中正常航班289.5萬班次,平均正常航班率僅為71.67%。航班延誤問題不可避免且會帶來很多負面影響,不僅會對打亂旅客個人的時間安排,還會影響機場后續航班的安排以及航空公司的運營和形象。因此,預測航班的延誤時間,就可以提前采取措施以減少或避免上述情況的發生,從而大幅度減少延誤所帶來的問題和影響。

關于航班延誤預測的問題,國內外學者已展開了相關的研究。文獻[1]從延誤鏈式波及的角度出發,提出了基于貝葉斯網絡的延誤傳播模型,可以預測下游航班的離港時間和延誤情況;文獻[3]通過相空間重構理論發現到港時間序列存在混沌特性,對其進行相空間重構,比較不同算法,證明差分進化算法能很好地進行航班延誤預測;文獻[4]將數據挖掘中隱馬爾可夫模型和指數平滑預測方法應用在延誤預測中;文獻[5]提出了基于決策樹算法的航班到港延誤預測,結果表明基于C4.5決策樹的預測模型正確率趨近于80%。

本文將結合BST網站上提供的數據,通過分析各個特征項對航班延誤的影響,確定與航班延誤時間相關的特征因素,通過運用隨機森林回歸算法,得到航班到港的延誤預測時間。由于美國國內航班線路的復雜性,為簡化分析,最后選取美國國內機場排名前十的洛杉磯國際機場(LAX)和舊金山國際機場(SFO)之間來回往返的航班作為研究對象。最后實驗結果顯示航班延誤預測的平均絕對誤差為10.56分鐘。

1 回歸分析模型

隨機森林算法經過Bootstrap重采樣對原始數據集進行采樣,對每組樣本建立一個CART決策樹模型。然后,將多棵樹組合最終形成隨機森林,森林中每棵樹的預測結果通過相應的投票策略得到最終的預測結果。

1.1 CART決策樹算法

分類與回歸樹(Classification And Regression Tree,CART)是由Breiman等人提出的決策樹學習方法。當用作分類時,CART算法選擇基尼指數為最優特征;當進行回歸預測時,以誤差平方和為原則選取最優的二分切點。在訓練集所在的輸入空間里,遞歸地將每個區域劃分為兩個子區域并確定每個子區域上的輸出值。

算法的實現步驟:

(1)選取最優的切分變量j與切分點s,按照以下方式:

c1,c2分別為左右子區域輸出的平均值,可通過遍歷每個變量的值找出最優的切分點。

(2)通過確定的切分點來劃分區域并求出對應的輸出值;

(3)遞歸的調用步驟1和步驟2,直到滿足停止條件;

(4)輸入空間劃分為N個區域R1,R2,…,RN,生成最終的決策樹。

1.2 隨機森林算法

隨機森林(Random Forest,RF)是一種基于Bagging的集成學習方法,可以用來做分類問題或者回歸問題。該算法指的是通過多棵決策樹構建組合模型對樣本進行分析預測,每個決策樹模型都會有一個預測值,將每棵樹的預測值匯總,最終會提升模型的預測效果?;貧w預測會將每棵樹的預測值取平均,得到最終的預測值。

隨機森林的構建流程如下:

1. 從訓練集D中通過Bootstrap重采樣方法選出N個樣本;

2. 從眾多屬性中隨機選取K個屬性;

3. 選擇最佳分割屬性;

4. 建立CART決策樹。

End

上述算法流程中,在每棵決策樹的分裂過程中,不需要剪枝。最后構造的模型如圖1所示。

圖1隨機森林估計模型

2 數據獲取、處理及分析

2.1 數據描述

本文研究中所用到的數據來自于美國交通統計局(The Bureau of Transportation Statistics,BTS)網上公布的航班數據。據BTS的解釋,網上公布的航班數據包含了美國國內客運量數量超過1%的航空公司,以及自愿公開的兩家航空公司的直飛航班數據。本文實驗中所采用的數據為2017年美國全年的航班數據,其中包含了109個特征項,共計5674621個數據項。對于每一條航班數據,其中包括:航班號、航空公司代碼、起飛機場代碼、降落機場代碼、計劃和實際起飛時間、計劃和實際降落時間、計劃和實際飛行時間、飛機在機場的推出推進時間、航班延誤原因及其他相關信息。

2.2 特征分析及選擇

(1)月份因素

圖2展示的是2017年各個月份中延誤航班班次數與非延誤航班班次數之間的比值。從中可以觀察到,9月、10月和11月中的延誤比例明顯比其他月份低。因此,我們將Month字段作為考察變量。

(2)星期因素

圖3展示的是2017年全年一周七天中延誤航班班次數與非延誤航班班次數之間的比值。圖中的數字1到7代表的是星期一到星期天。從中可以發現,星期一、星期四和星期五中的延誤比例比另外三天高。因此,我們將DayOfWeek字段作為考察變量。

圖2月份因素與航班延誤關系統計圖

圖3星期因素與航班延誤關系統計圖

(3)航班時間因素

圖4展示的是2017年全年中一天24小時各個時間段(一個小時為一個時間段)中延誤航班班次數與非延誤航班班次數之間的比值。從中可以觀察到,早上5點那一段時間的航班延誤比值全天中最低,之后的時間比值升高到下午6點到達峰值,然后延誤比值下降。我們發現DayOfWeek字段與航班延誤的規律性較強。鑒于此,我們將DayOfWeek字段作為考察變量。

圖4航班時間因素與航班延誤關系統計圖

(4)航空公司因素

圖5展示的是2017年美國12個航空公司全年的延誤航班班次數與非延誤航班班次數之間的比值。從中可以觀察到,B6(JetBlue Airways,捷藍航空)和 VX(Virgin America Airways維珍美國航空)的航班延誤比值明顯比其他航空公司高,這兩家航空公司在美國同屬于廉價航空。從中可以看出Carrier字段與航班延誤的規律性較強。鑒于此,我們將Carrier字段作為考察變量。

圖5航空公司因素與航班延誤關系統計圖

(5)航線ID因素

圖6展示的是2017年在舊金山國際機場和洛杉磯國際機場往返航班的延誤班次與非延誤班次的比值。在這兩地機場往返的航線共計6條,其中19805航線的班次只有15個班次。故不考慮該航線的延誤狀況,觀察其他5條航線的延誤比值,發現19977和19790航線的比值明顯比其他三條航線要低。故我們將AirlineID字段作為考察變量。

圖6航線因素與航班延誤關系統計圖

2.3 數據處理

(1)數據的處理

為了簡化分析,只考慮在洛杉磯國際機場和舊金山國際機場來回往返的航班。篩選之后的數據共有31350條。

檢查數據,發現數據中ArrDel15字段共有1075個值為空,缺失率僅為3.43%,為研究方便,可以將這部分數據移除。

去除后各字段的基本統計量如表1。

表1字段基本統計量

通過2.2小節的分析,起飛時間段這個因素在航班延誤中所占的比重比較大。另外,DepTimeBlk字段的數據內容是一個時間段,為方便運算將該字段內容進行轉化。值的解釋含義不變,僅將時間區間簡化為數字。舉例:0800-0859簡化為8。

此外,航空公司這個要素在航班延誤中也較為重要,對于Carrier這個字段也要進行相應的數字化。篩選數據發現,在舊金山國際機場和洛杉磯國際機場之間執行飛行任務的有6家航空公司。因此,數值化的結果就是將這六家航空公司按照航班延誤比值從小到大進行排序,相應的轉化為1到6。

AirlineID字段的值為五位數的數字組成,該數字僅代表某條航線,其數值對于最終的延誤預測效果沒有意義。因此,按照六條航線的航班延誤比值從小到大進行排名。五位數的航線ID轉化為數字。

(2)數據的結構

篩選處理過后航班延誤的數據結構及各字段的解釋如表2。

表2字段示例及解釋說明

3 實驗與分析

原始數據經過上述小結的加工處理后,選取80%的隨機數據作為訓練集,剩下20%的數據集作為測試集。并選取字段 ArrTimeBlk,、AirlineID、Month、Dayof-Month、DayOfWeek、holiday、CarrierNum、DepTimeBlk、DepDelay作為特征項,ArrDelay字段作為目標變量。構建隨機森林回歸模型,應用網格搜索來進行參數調優并進行10折交叉驗證(基于Python的scikit-learn工具包),得到的模型如下:

RandomForestRegressor(n_estimators=240,criterion='mse', min_samples_split=20, min_weight_fraction_leaf=0.0,min_samples_leaf=1,max_features='auto',max_depth=None, max_leaf_nodes=None, min_impurity_split=None,min_impurity_decrease=0.0,oob_score=False,bootstrap=True,n_jobs=None,verbose=0,random_state=15,warm_start=False)

得到的平均絕對誤差為10.56分鐘,R2評分為0.91。

之后,用支持向量回歸(SVR)算法和嶺回歸(Ridge)算法進行航班延誤的預測。采用相同數據集,同樣應用網格搜索進行參數調優并進行10折交叉驗證。預測結果與隨機森林進行對比分析,結果如表3。

表3三種算法模型對比表

通過比較嶺回歸、支持向量機以及隨機森林三種算法的R-squared和平均絕對誤差,最終顯示隨機森林回歸的預測效果較好。

4 結語

對航班延誤預測的研究具有重要的意義,能夠提高機場的運轉效率,提升航空公司的形象,減少成本。本文是基于美國網上公開的航班數據,事先分析各個因素與航班延誤的相關性來確定特征項,將計劃起飛/到達時間段以及航線ID數字化,然后運用機器學習中相關方法,預測航班的延誤時間。研究結果顯示,航班延誤的時間和實際延誤時間的平均絕對誤差為10.56分鐘。然而考慮到航班延誤的成因十分復雜,本文最后提出的模型仍然具有優化的空間,例如可以增加天氣數據、飛機載客量、飛機機型、空中飛行時間、美國公共節假日等更多的特征項。還可以考慮加入往年的航班數據,增加數據量,以提高預測精度。

猜你喜歡
字段決策樹比值
帶鉤或不帶鉤選擇方框批量自動換
簡述一種基于C4.5的隨機決策樹集成分類算法設計
淺談臺灣原版中文圖書的編目經驗
也談極值點偏移問題破解策略
物理中的比值定義法
決策樹學習的剪枝方法
平均功率與瞬時功率的比較與應用
無正題名文獻著錄方法評述
無正題名文獻著錄方法評述
決策樹在施工項目管理中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合