馮耀 梅曉 呂燕賓 丁沂
摘要:航班延誤預測在航空領域有著廣泛的應用,不僅可以減少航空公司在經濟和信譽等方面的損失,而且可以給旅客提供更多的便利和更好的服務。利用線性回歸方法設計一個Web服務,用來預測航班是否延誤。用戶輸入航班號、出發時間、出發機場和到達機場,系統利用航班的歷史記錄和天氣等信息預測航班到港時間。
關鍵詞:航班延誤預測;線性回歸模型;Web服務;訓練;測試
隨著社會和經濟發展以及人們生活水平的提高,越來越多的人開始去國內外發展生意或旅游。為了更加便利、省時,在選擇出行工具時,多數人都會選擇搭乘航旅工具。近年來隨著空中航班航行次數的增加,航班延誤成為航旅中不可避免的一個問題。如果能夠提前預知航班的延誤,那么必然可以采取應對措施來減少由于延誤影響帶來的經濟和信譽的損失,從而提高用戶的滿意度。
影響航班延誤的因素很多,比如出發機場、出發機場的天氣、飛機機型、出發時間、飛行過程中的天氣情況、到達機場、到達機場的天氣等等,其原因很復雜,且多屬不確定因素,航班延誤問題一直不能有效解決。航班延誤主要分為出發延誤和到達延誤,通過對航班測試數據集的分析發現,航班的出發延誤時間和到達延誤時間之間有明顯的線性相關性,而且出發延誤比到達延誤受到的影響因素要少得多。因此,只要能合理預測出航班的出發延誤,就能根據這種關系推理出航班的到達延誤。
1 線性回歸分析
在統計學中,線性回歸是利用線性回歸方程的最小平方函數對一個或多個自變量和因變量之間關系進行建模的一種回歸分析。這種函數是一個或多個回歸系數的模型參數的線性組合?;貧w分析中,只包括一個自變量和一個因變量,且二者的關系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關系,則稱為多元線性回歸分析。在線性回歸中,數據使用線性預測函數來建模,并且未知的模型參數也是通過數據來估計,這些模型被叫作線性模型。最常用的線性回歸建模是給定x值的Y的條件均值是x的仿射函數。不太一般的情況,線性回歸模型可以是一個中位數或一些其他的給定X的條件下Y的條件分布的分位數作為x的線性函數表示。像所有形式的回歸分析一樣,線性回歸也把焦點放在給定X值的Y的條件概率分布,而不是X和Y的聯合概率分布(多元分析領域)。
2 基于線性回歸的航班延誤預測模型
2.1 線性回歸模型的建立
通過對數據集的分析發現,航班的出發延誤與到達延誤之間有明顯的線性相關性(見圖1),可以使用線性回歸模型來預測航班的到達延誤,具體的公式為:航班到達延誤=參數1×航班出發延誤+參數2,可以通過最小二乘法來估計模型的參數。一旦利用測試數據估計出最優的參數1和參數2,就可以將航班出發延誤帶入公式計算出航班到達延誤。
2.2 航班延誤預測算法
(1)輸入航班號、出發時間、出發機場、到達機場,在測試數據中找到要預測的航班。
(2)根據該航班記錄的出發天氣,機型和機場等信息在訓練數據中找到相近的數據并計算這些記錄的出發延誤時間。
(3)將這些相近數據的出發延誤時間的平均值作為要預測的航班的出發延誤時間。
(4)將出發延誤時間帶入線性回歸方程計算航班的到達延誤時間。
(5)如果航班到達延誤時間大于30分鐘,判斷該航班延誤。
3 實驗分析
3.1 數據說明及數據預處理
數據采用的是國內多個機場的航班數據,其中數據的時間是自2015年11月03日至2016年02月26日的119432條航班信息,每條航班包括航班號,航空公司,出發機場,出發城市,目的機場,目的城市,航班日期,計劃起降時間與實際起降時間,經停次數,航線,機型,距離,最高溫度,最低溫度,天氣描述,風向,風力,空氣指數,空氣質量描述,空氣質量級別等21個因素。
對航班原始數據進行了幾步預處理操作:
(1)去除航班取消的情況。原始數據中存在實際到達時間為空的航班,即航班因故取消,或者未知等情況,對此就對包含該因素的數據不進行考慮,于是把這些航班數據進行了去除。
(2)選擇因素。在航班預測方面,希望這個數據是能夠對預測的影響是比較大的,因素與航班延誤之間的相關性越大,對于預測幫助也就更大。刪除因素包括刪除原始數據中的重復因素和無關因素兩種,其中有些因素的性質重復,將其歸結到了重復因素;有些通過以往的數據和經驗判斷發現于航班延誤無關或者關聯不大,就將其分為無關因素。對原始數據的21個因素,我們進行了篩選,最終發現航班的出發延誤時間和到達延誤時間之間有明顯的線性相關性,而且出發延誤比到達延誤受到的影響因素要少得多。因此,只要能合理預測出航班的出發延誤,就能根據這種關系推理出航班的到達延誤。
3.2 實驗結果分析
測試數據總共82366條,均誤差為29.7分鐘。其中無延誤的數據(到達延誤時間小于30分鐘)69157條,延誤數據(到達延誤時間大于30分鐘)13209條,延誤數據占整個數據量的16%。對于沒有發生延誤的數據,預測的數據準確數為68093條,預測準確率高達98%;對于延誤了的數據,預測的準確數為603條,預測準確率4.6%;最終預測正確的數據為68696條,其中預測錯誤的條數為13670條,錯誤率為16.5%。
另外,預測值和實際值相差絕對值在30分鐘內的有61985條;預測值和實際值相差絕對值在50分鐘內的有9888條;預測值和實際值相差絕對值在100分鐘內有6253條;預測值和實際值相差絕對值在100分鐘以上有4240條。
4 Web服務開發
4.1 開發工具和環境
處理器:Inter(R)Core(TM) i7-4710MQ CPU@2.5GHz
內存:4.00GB
系統類型:64位
硬盤:500G
操作系統:Windows 10
開發及運行環境:Visual Studio 2015、Microsoft.NETFramework 4.0
4.2 系統功能及運行
(1)輸入接口:http GET請求形:http://[hostname]/query?flightno=[航班號]&depairport=[出發機場三字碼]&arrairport=[到達機場三字碼]&date=[計劃日期,形如"YYYY-MM-DD"]。
(2)輸出接口:返回結果為json格式,包含請求的航班號、計劃起飛日期和時刻、計劃到達日期和時刻、預測起飛日期和時刻、預測到達日期和時刻、是否延誤。系統運行界面如圖2所示。
5 結語
對于國內航班到港延誤預測問題,我們提出了一個線性回歸模型,開發了一個Web服務對航班延誤進行預測,并在一個國內真實的航班歷史記錄數據集上對方法和系統的有效性和可用性進行了驗證。將在今后的工作中進一步優化系統,提高系統預測的準確率,降低預測平均誤差。