諶婧嬌



摘要:在大數據環境下,為了提高航班延誤預測精確度和數據處理速度,提出基于Spark框架下處理海量數據方法。本文使用決策樹算法對航班數據進行分析,預測航班的延誤情況,并與使用支持向量機,Logistic回歸分類算法的預測結果進行比較。結果證明決策樹算法具有較高的準確率和靈敏度,表明決策樹算法可以應用到航班延誤預測中,給航空機構提供數據支持。
關鍵詞:Spark;航班延誤預測;決策樹算法
中圖分類號:TP391? ? ?文獻標識碼: A
文章編號:1009-3044(2021)04-0217-03
Abstract: In the big data environment, in order to improve the accuracy of flight delay prediction and data processing speed, the method of processing massive data based on Spark framework was first proposed to improve the speed of big data processing.The decisiodtree algorithm is used to predict the flight delay, and the results are compared with those of SVM and logistic regression. The results show that the decision tree algorithm has high accuracy and sensitivity, which shows that the decision tree algorithm can be applied to flight delay prediction and provide data support for aviation agencies.
Key words: Spark;Flight delay prediction; Decision tree algorithm
隨著國家經濟的飛速發展,居民出行量的日益增大,出行方式也有了很大的改變,航空出行逐漸成為居民出行方式的首選之一。隨著民航旅客需求快速增長,截止到2019年,選擇航空出行方式的旅客量達到6.1億人次。隨著航班量的增加,航班延誤作為一個熱點問題一直困擾著國內外民航業。
據統計,我國2017年民航的準點率只有71%,即29%的航班存在延誤。航班延誤會影響乘客正常行程,使航空公司付出額外運營成本,對航空公司聲譽也存在負面影響。因此,對航班延誤進行預測迫在眉睫。
航班延誤預測是指對航班是否晚點進行預警,可以將預測結果反饋到機場,以便提前采取措施,將航班延誤經濟損失降到最低;也可以將預測結果反饋給旅客,以便其提前做好行程安排[1] [6]。因此航班延誤預測,對于航空業來說,具有重要的實際意義和研究價值。
本文結合航空數據的特點以及大數據技術的發展,采用Spark集群作為內存計算框架,使用決策樹來建立模型,對航空數據進行預測分析,實驗結果可以為航空機構提供數據支持。
1 Spark平臺
1.1 Spark簡介
Spark是由美國加州大學伯克利分校于2010年開發,基于內存計算的大數據并行計算框架。目前已經形成了完整的生態圈,它以Spark Core為核心,可以使用不同的組件,如:SparkStreaming,SparkMLlib,GraphX等。主要力圖在算法,機器和人之間通過大規模集成來實現大數據應用的平臺。
1.2環境說明
在環境安裝中,首先配置3臺安裝Centos7 Linux系統的虛機,配置虛機間的SSH免密鑰登陸和系統時間同步,安裝Java環境和Hadoop環境。在Hadoop集群配置成功后,以Spark on Yarn模式安裝Spark集群。
2航班數據介紹
2.1 數據來源
本次課題研究主要分析從Data Expo 上提供的飛行準點率統計數據,數據集大小為657M,共29列數據,包括年,月,日,航空公司,飛機編號,起點機場編號,到達時間,起飛時間,飛行距離等相關信息。
2.2數據清洗
航班數據在采集過程中,可能會受到各種影響,比如噪聲,通信故障等等,所以數據可能存在不準確的情況,比如數據出現空值,部分數據存在特殊字符等問題。為了避免對后期數據分析的結果產生影響,需要對數據進行清洗。
對航班數據進行清洗,包括過濾空值條目和重復數據,過濾存在特殊字符的數據,以及判斷航班是否晚點。對于如何判斷飛機是否延誤,由于各國航空運輸系統存在差異,所以各個國家對于航班延誤的定義也有區別。一般來說,航班實際離場時間比計劃離場時間遲15min及以上,或者航班實際起飛時間比計劃起飛時間遲15min及以上,或者航班取消均可視為航班延誤。
對數據集進行處理過后,最終得到數據集類別如下:
3 基于Spark的預測算法實現
3.1 CART分類樹
CART是在給定輸入隨機變量X條件下輸出隨機變量Y的條件概率分布,CART算法生成的是二叉樹,只有“是,否”兩個類別。
CART分類樹通過GINI指數選擇最優特征。GINI系數表示模型的不純度,GINI系數越小,則不純度越低,特征越好。因此可以通過選擇較小的GINI系數來得到分類條件,以此作為切分點依次分配。
在分類問題中,假設有k個類別,第k個類別的概率為
對于給定的樣本D,假設有K個類別,第K個類別的數量為
對于樣本D,如果根據特征A的某個值a,把D分成D1和D2兩部分,在特征A的條件下,D的GINI系數表達式為:
GINI系數越大,樣本集合不確定性越大。
3.2評價指標
在分類模型中,評價分類器的優劣主要基于混淆矩陣,ROC和AUC來進行判斷。
混淆矩陣是用來表示精度評價,主要用來判別分類好壞的指標,以二分類為例,0和1代表兩類樣本,其中TP:真陽性,預測是1,實際也是1; FP:假陽性,預測是1,實際也是0;TN:真陰性,預測是0,實際也是0; FN:假陰性,預測是0,實際也是1。
準確率:分類正確的樣本占總樣本數的比例,表示評估的準確率。
精確率:表示被分為正樣本中實際為正例的比例。
靈敏度:實際為正樣本且被劃分為正樣本在正樣本中所占的比例,表示所有正樣本中被分對的比例,目的是衡量分類器對正例的識別能力。
ROC是一條曲線,由FPR和TPR的點連成。橫軸是FPR,縱軸是TPR。
AUC:ROC的曲線面積就是AUC值,AUC主要用于衡量二分類問題中機器學習算法性能或者泛化能力。ROC曲線越靠左上角效果越好,AUC的值越大,效果越好。
4實驗結果與分析
實驗中使用交叉驗證,隨機劃分測試集與訓練集,其中訓練集占數據量70%,測試集占30%。使用Spark編程實現決策樹算法,并分析算法的性能。同時,與其他兩種算法進行比較,結果如下表所示:
由上表中結果可知,使用決策樹算法對航班數據進行預測其分類準確率,靈敏度都比較高。分類準確率高表明該模型對航班是否延誤能做出準確的判斷,靈敏度高表明該模型的誤測率較低。因此可以得出結論,決策樹算法在航班預測判斷過程中更加有效。
5結語
本文介紹了決策樹算法原理,并將其應用于航班數據的預測分析中,實驗得到的預測準確率,靈敏度,召回率等指標都達到了較高的水平。因此該方法可以為航班延誤的預測提供有效的數據支持,能夠提高航班晚點預測效率,具有廣泛的應用前景。
參考文獻:
[1] 徐海文,韓松臣,劉曉東.基于旅客角度的航班延誤影響因素分析[J].中國市場,2015(52):221-224.
[2] 高彥杰.Spark大數據處理技術.應用與性能優化[M].北京:機械工業出版社,2015.
[3] 梁彥.基于分布式平臺Spark和YARN的數據挖掘算法的并行化研究[D].廣州:中山大學,2014.
[4] 何洋,朱金福,周秦炎.基于支持向量機回歸的機場航班延誤預測[J].中國民航大學學報,2018,36(1):30-36,41.
[5] 羅赟騫,陳志杰,湯錦輝,等.采用支持向量機回歸的航班延誤預測研究[J].交通運輸系統工程與信息,2015,15(1):143-149,172.
[6] 劉小平.航班延誤情境下旅客群體性突發事件致因機理及預警機制研究[D].武漢:武漢理工大學,2013.
[7] 莊榮,李玲娟.基于Spark的CVFDT分類算法并行化研究[J].計算機技術與發展,2018,28(6):35-38.
【通聯編輯:梁書】