一種基於Gradient Boosting的公交車運行時長預測方法

一種基於Gradient Boosting的公交車運行時長預測方算法

賴永炫1,2, 楊旭3, 曹琦4, 曹輝彬1,2, 王田5, 楊帆6數組

1 廈門大學信息學院,福建 廈門 361005網絡

2 廈門大學深圳研究院,廣東 深圳 518057框架

3 長春公交(集團)有限責任公司,吉林 長春 130000機器學習

4 龍巖菸草工業有限責任公司,福建 龍巖 364000;ide

5 華僑大學計算機科學與技術學院,福建 廈門 361021函數

6 廈門大學航空與航天學院,福建 廈門 361005工具

摘要:目前,我國公交公司主要依靠經驗豐富的工做人員估計車輛回場時間,進而進行車輛調度,此方式缺少輔助的預測方法,經常形成較大的偏差與錯誤的調度決策。從公交公司的實際需求出發,提出了一種基於動態特徵選擇的預測方法R-GBDT。R-GBDT利用特徵選擇組件和模型調參組件爲預測組件提供符合線路特徵的特徵組合與參數,由融合組件對其餘組件的結果進行融合,造成一個用於預測最終時間間隔的框架。結果代表,相對於其餘算法,所提方法能大大提升公交運行時長預測的準確度。性能

關鍵詞: 公交調度 ; 到站預測 ; GBDT學習

論文引用格式:

賴永炫, 楊旭, 曹琦, 曹輝彬, 王田, 楊帆.一種基於Gradient Boosting的公交車運行時長預測方法. 大數據[J], 2019, 5(5):58-78

LAI Y X, YANG X, CAO Q, CAO H B, WANG T, YANG F.A bus running length prediction method based on Gradient Boosting.Big Data Research[J], 2019, 5(5):58-78

1 引言

近年來,隨着人們對公共交通領域關注度的上升,「智能交通」成爲重要的研究領域。21世紀將是公路交通智能化的世紀,將來將會出現一種一體化的交通綜合管理系統,在這一系統中,人們將藉助信息採集技術、數據通訊技術、電子傳感技術等先進的信息技術,實時、準確、高效地採集交通數據,並將其有效地應用於智能交通管理系統,從而使車輛可以依靠智能交通調整至最佳行駛狀 態。此外,車輛管理人員也可以利用這個系統對道路、交通情況有更全面、實時、準確的掌握。
而隨着「公交優先」觀念的日益深刻,我國各大城市紛紛研發各自的智能交通系統。公交系統做爲智能交通領域的重要組成部分,受衆普遍且影響深遠。近年來,智能公交系統的研究和應用方向主要集中在公交的排班與調度方面,如利用啓發式算法(如遺傳算法、模擬退火算法、粒子羣算法、蟻羣算法等)進行公交車排班的研究,包括:路線的制定、發車間隔的計算 、駕駛員排班、車輛排班。對於公交調度,主要集中在利用機器學習方法進行研究,如車輛到站時間預測、公交動態調度。然而已有工做主要集中在合理規劃線路、合理安排排班計劃等方面,並未從輔助公交公司調度車輛的角度出發,研究車輛從起點站到終點站到站時間的預測方法。
本文從公交公司的實際調度需求出發,提出了一種基於機器學習模型的公交車運行時長的預測方法——修正的梯度提高決策樹(revised gradient boosting decision tree,R-GBDT)。該方法利用特徵選擇組件和模型調參組件選擇符合線路特徵的特徵組合與參數,構建基於Gradient Boosting的預測組件;並由融合組件對預測組件的結果進行融合,造成一個用於預測最終運行時長的框架。對真實公交到站、離站數據進行實驗的結果代表,相對於其餘算法,本文提出的方法能大大地提升公交運行時長預測的準確度。R-GBDT是公交公司輔助決策工具的關鍵模塊,可以輔助調度人員進行科學合理的車輛調度,使得調度人員作出的決策能更好地減小「串車(公交車遇到一塊兒)」和「大間隔(公交車之間離得太遠)」現象的發生,進而提升車輛的運行效率和乘客的滿意度。

2 相關工做

王麟珠等人提出了一種基於Elman神經網絡的公交車輛到站時間預測方法,並經過福州市的公交數據進行驗證,實驗結果代表,該模型具備更快的收斂速度、更高的預測精度、不易 陷入局部最優解等優點。張強等人提出了一種基於時間分段的動態實時預測算法,將一天分爲24個等長的時間段,分時段對 公交到站時間進行預測。季彥婕等人基於對公交運行特色的分析,提出了一種結合粒子羣算法與神經網絡算法的粒子羣小波神經網絡算法,實驗結果代表,結合粒子羣算法能有效減小預測偏差,且對於工做日與 週末都有較高的預測精度。羅頻捷等人將遺傳算法融入神經網絡中,進而提升整個神經網絡的尋優能力,做者利用該算法對成都某一公交線路進行預測,實驗結果代表,該算法具備較高的精確度。楊奕等人提出了基於遺傳算法的反向傳播(back propagation,BP)神經網絡算法,該算法結合遺傳算法與BP神經網絡,利用遺傳算法改進BP神經網絡易陷入局部最優的缺陷,經過對合肥市某一公交線路數據的研究和實驗得出,該算法有比較好的預測效果。張昕等人提出了一種基於遺傳算法和支持向量機(support vector machine,SVM)的預測模型,該模型考慮時間因素、天氣因素與道路因素等的影響,使模型更適用於客運車輛,其利用遺傳算法提高SVM的參數尋優效率。該論文對深圳市某一線路公交數據進行實驗模擬,結果代表,該算法可以更好地適應道路交 通等的變化,具備較好的預測精度。謝芳等人提出了一種基於MapReduce的聚類和神經網絡相結合的公交車到站時間預測模型,其首先分析公交車輛的運行特徵,而後結合聚類與神經網絡模型對車輛數據進行分段預測,最後,基於MapReduce的並行化框架減小算法的計算時間。實驗結果代表,該分段模型優於傳統的BP神經網絡預測模型,具備較高的預測精度 和預測速度。
O’Sullivan A等人認爲公交車輛的行駛時長是多種非線性組成因素(如乘客數、交通流量、事故、天氣條件、路線特徵等)相互做用的結果,這些因素形成了預測到站時間的不肯定性。他們使用來自現實世界的數據證實了這種不肯定影響存在異方差性,因而開發了一個黑盒解決方案,將預測算法融入黑盒處理中,經過預測和觀察到達時間之間的 偏差來估計與預測相關的數據。Sinn M等人提出了一種用於預測到站時間的基於實時全球定位系統(global positioning system,GPS)數據的非參數算法,關鍵思想是使用內核迴歸模型表示位置更新與公交車站到達時間之間的依賴關係。實驗代表,對於50 min的時間範圍,算法的預測偏差平均小於10%,明顯優於基於K-最近鄰(K-nearest neighbor,KNN)算法的線 性迴歸模型的參數方法。Abidin A F等人提出了一種基於卡爾曼濾波(kalman filtering, KF)的公交車到達時間預測模型,該模型使用交通模擬器城市交通仿真(simulation of urban mobility,SUMO)平臺模擬真實的道路情景,利用從社 交網絡獲取的信息預測到達時間。Jeong R等人提出了使用自動車輛定位(automatic vehicle location,AVL)數據,並藉助人工神經網絡(artificial neural network,ANN)模型預測公交車到達時間的方法,結果發現,ANN模型在預測精度方面優 於基於歷史數據的模型和迴歸模型。Maiti S等人提出了一種將車輛軌跡和時間戳視爲輸入特徵的基於歷史數據的車輛到達時間的實時預測方法。結果代表,他們提出的基於歷史數據(historical data,HD)的模型比ANN模型和SVM模型執行速度更快,同時也具備比較高的預測精度。
一樣地,本文針對公交線路進行公交車到站時間的預測。不一樣的是,本文從公交公司的角度出發,以輔助公交公司調度人員進行調度的預測到站時間爲中心,幫助解決某線路多輛公交運行過程當中發生的「串車」和「大間隔」問題。目前,較少有針對輔助公交公司調度進行的研究,公交公司每每採用人工調度,調度人員僅依靠我的主觀經驗估計公交車到站時間,經常錯誤估計車輛到站時間與晚點狀況,致使調度結果缺少科學性和合理性,使得「串車」和「大間隔」問題不能獲得解決。所以,增強該技術的研究具備重要的現實意義。本文提出了一種基於Gradient Boosting的公交車到站時間預測方法。不一樣於以往使用單一算法預測的方法,該方法將公交車停留時長、運行時長和總時長分爲單獨的模塊,爲每一個模塊選擇效果最優的模型、特徵以及參數,組合造成一套框架,從而提高預測的準確率。

3 數據處理與分析

3.1 原始數據描述

本文使用的原始數據來自於廈門市22路公交車數據,從動態接口得到的原始數據包括公交車到離站時上傳的GPS數據、車輛信息、計劃班次信息、天氣數據等。具體見表1,表2,表3,表4。

一種基於Gradient Boosting的公交車運行時長預測方法

一種基於Gradient Boosting的公交車運行時長預測方法

一種基於Gradient Boosting的公交車運行時長預測方法

一種基於Gradient Boosting的公交車運行時長預測方法

3.2 數據預處理

數據預處理流程如圖1所示。

一種基於Gradient Boosting的公交車運行時長預測方法

圖1 數據預處理流程

3.2.1 線路靜態特徵處理
(1)數據清洗
原始到站、離站數據文件爲一段時間內22路上下行收集到的全部車輛進站及出站信息。進行特徵提取前,須要先將數據按日期進行分割,將分割後的每一天的數據根據上下行、車輛ID、獲取到離站數據的時間進行排列,將同一趟數據劃分到同一組中,剔除組內的髒數據。這些髒數據包括重複的到離站記錄、同一站的進站時間在該站出站時間以後的數據、到達後一站的時間在到達前一站以前的數據、同一趟的到離站數據大量丟失的數據等。
(2)線路特徵處理
線路特徵處理包括對線路、方向、車輛及駕駛員信息的處理。其中,線路和方向數據可從到離站數據中直接獲取,到離站信息裏車輛數據須要先通過必定規則的轉換,轉換成計劃班次信息中可識別的車輛ID,根據此車輛的ID查詢駕駛員的ID,將車輛ID和駕駛員ID分別做爲區分車輛和駕駛員的特徵。
(3)時間特徵處理
公交車輛的運行時長一般具備必定的時間規律,好比工做日與週末的區別、節假日與平時的區別、上下班高峯期與平峯期的區別等。爲了研究以上時間因素對研究結果的影響,須要根據到離站數據裏的時間字段提取車輛的發車日期、發車時間、是否爲節假日、是否爲工做日等信息。
(4)空間特徵處理
空間特徵包括站點的經緯度信息,該數據可從到離站數據中直接得到。
3.2.2 線路動態特徵處理
線路動態特徵主要是線路運行時產生的一些數據特徵,好比站間行駛時長和站點停留時長。根據線路運行過程上傳的站點、時間等數據,得出車輛運行中在各個站點的停留時長、各個站間的行駛時長。此外,計算通過拼接的最新各個站點的停留時長與行駛時長;近3天、近1周相同時段下的各站點的平均停留時長與平均行駛時長。拼接方式有直接加和、賦予權重再求和等。
其中,最新各個站點的停留時長與行駛時長一般是從起點站開始計算,對於每一個站點,把最近一班的車輛在該站的運行時長和停留時長做爲該站最新運行時長和停留時長,直至查詢到終點站。將拼接造成的一整條數據做爲該趟車最新的站點停留和站間行駛特徵值。近3天、近1周相同時間段的數據則可經過查詢該時間段內相同時間段下各車輛實際運行時的對應數據,並求平均值。
3.2.3 天氣特徵處理
在得到的原始天氣數據中,利用的主要字段爲時間、能見度與天氣描述。其中,時間須要處理成日期與時間段,天氣描述須要將晴、多雲、大霧等轉換爲可利用的數字描述方式。
3.2.4 缺失數據填充
數據收集段的不完整以及部分公交車到離站GPS數據的丟失使得當前車輛、最近時間內、3天內、1周內的站點停留和站間行駛時長可能缺失,須要進行填充。常見的缺失數據處理方式包括刪除缺失大量數據的樣本、刪除缺失大量數據的特徵、數據填充。數據填充的方式包括均值填充、中位數填充、衆數填充、相同條件下的數據填充等。在缺失數據填充中,對於站點停留和站間行駛時長的缺失,主要利用歷史數據相同條件下的均值進行填充,當不存在相同條件下的歷史數據時,則用臨近班次的數據進行填充。對於天氣數據的缺失,主要利用臨近小時內的天氣情況進行填充。

3.3 公交運行特徵及影響因素

經過對各路公交車輛的運行數據進行分析,發現公交車輛的運行特色呈現如下規律。
(1)週期影響
一般,公交線路的運行時間具備長期趨勢與週期趨勢。從長期角度看,運行時長具備一個穩定變化的趨勢,即運行時間在一個較長的時間內,同一線路的總時長在某一個範圍內浮動(如圖2所示)。在一段時間內,每週運行時長的變化趨勢相同,具備週期趨勢,即週末的運行時長略高於工做日的運行時長。

一種基於Gradient Boosting的公交車運行時長預測方法

圖2 公交運行時長長期變化

(2)工做日影響
在一週內,週一至週五的運行時長一般略低於週六至週日的運行時長。這是由於,週末私家車出行的數量高於工做日,使得道路交統統行情況變差,進而間接地影響了公交車輛的路段行駛速度。此外,週末出行的人數較多,這也在必定程度上增長了站點停靠的時間。
(3)時段影響
如圖3所示,即便在同一天,不一樣發車時刻的公交車輛運行時長也有所不一樣,主要體如今高峯期的運行時長大於平峯期與低峯期的時長。形成這一現象的主要緣由是,高峯期是人們上下班出行的時間段,在這一時間段內,部分主要路段的車流量變大,經常會出現交通擁堵的現象,進而影響公交車輛通行時間以及鄰近路段的運行速度。

一種基於Gradient Boosting的公交車運行時長預測方法

圖3 公交運行時長時段變化

(4)節假日影響
與工做日和週末在數據表現上的差別相似,節假日的運行時長一般也高於其餘時間,這是由於在節假日出行的人數大幅增長,特別是熱門旅遊景點附近的公交線路,這些線路在站點停留的時間會有所增長。
(5)路段影響
不一樣線路的行駛路線不一樣,進而表現出不一樣線路的總行駛時長的差別。這是由於不一樣道路的交通運行情況有差別,部分路段的交通流量大,會增長行駛時長。部分路段的上下車乘客較多,也會增長停留時長。

4 基於動態特徵選擇的時間預測方法R-GBDT

4.1 總體設計

本文提出了一種基於動態特徵選擇的公交到站時間預測方法。其動態主要體如今對於不一樣線路、同一線路不一樣方向的公交車通過特徵選擇組件(分別選擇對該線路該方向站點停留和站間行駛影響較大的特徵)選出的特徵可能有所差別。這種基於動態特徵選擇的公交到站時間預測框架主要包括如下模塊。
(1)特徵選擇組件
利用遞歸特徵消除法,根據特徵對預測結果的影響程度,提供特徵排名,嘗試不一樣特徵數量對預測結果的影響,選擇最佳特徵數量與特徵組合,將其做爲預測站點停留和站間行駛的子模型的訓練特徵。
(2)停留時長預測組件
經過對不一樣模型(Gradient Boosting、AdaBoost、決策樹、嶺迴歸等)的實驗嘗試,選擇採用預測效果最優的GradientBoosting模型對特徵選擇組件選出的用於停留時長預測的特徵進行預測,預測該趟車在全部站點停留的總時長。
(3)行駛時長預測組件
經過對不一樣模型(Gradient Boosting、AdaBoost、決策樹、嶺迴歸等)的實驗嘗試,選擇採用預測效果最優的嶺迴歸模型對特徵選擇組件選出的用於行駛時長預測的特徵進行預測,預測該趟車在全部站間行駛的總時長。
(4)融合組件(總時長預測組件)
經過對不一樣模型(Gradient Boosting、AdaBoost、決策樹、嶺迴歸等)的實驗嘗試,選擇採用預測效果最優的Gradient Boosting模型將預測的站點停留時長和站間行駛時長融合其餘特徵,預測該趟車從起點站到終點站所需的總時長。
(5)模型調參組件
用於模型訓練的特徵是根據特徵選擇組件選擇的,不一樣線路、不一樣方向選出的特徵也有所不一樣,且即便不一樣線路或方向選擇的特徵是相同的,它們對結果的影響程度可能也有差別。這就使得用於模型訓練的最佳參數有所差別。基於這樣的狀況,模型調參組件的主要工做是針對模型與特徵選擇合適的參數。
圖4展現了框架的總體流程。首先將數據處理獲得的待選特徵集輸入特徵選擇組件中,特徵組件根據目標任務,選擇停留時長特徵或行駛時長特徵,將選出的最優特徵組合傳入模型調參組件中。模型調參組件根據目標與特徵組件選擇的特徵,選擇合適的參數組合,並將特徵與參數選擇結果傳入停留時長預測組件或者行駛時長預測組件中。停留時長預測組件根據特徵與參數訓練模型,並在後續預測時爲融合組件提供預測停留時長。行駛時長預測組件根據特徵與參數訓練模型,並在後續預測時爲融合組件提供預測行駛時長。到這一階段,將得到兩個新特徵:模型組件預測出的停留時長與行駛時長,用於後續融合組件預測總時長。融合組件在進行預測時,還須要特徵選擇組件和模型調參組件爲融合組件提供用於預測總時長的特徵與參數,而後進行總時長的預測。接下來,本文將進一步對上述幾個模型的組件進行闡述。

一種基於Gradient Boosting的公交車運行時長預測方法
圖4 框架整體流程

4.2 詳細設計

(1)特徵選擇組件
特徵選擇組件對公交車運行時長(停留時長和行駛時長)的影響因素進行分析,待選擇的特徵因素見表5。

一種基於Gradient Boosting的公交車運行時長預測方法

(2)停留時長預測組件
停留時長預測組件主要根據特徵選擇組件選出的用於預測站點停留時長的特徵,利用Gradient Boosting模型對站點停留時長進行預測。
Gradient Boosting其實是一種Boosting算法,其經過屢次迭代,根據必定的規則,不斷改進模型偏差,提升模型的準確率。常見的Boosting算法包括AdaBoost與Gradient Boosting。使用集成算法的優點在於:第一,因爲模型之間的差別性,每每模型在決策時會出現不一樣的錯誤,將多個模型結合可以獲得更好的預測結果,作出更合理的決策;第二,當數據集較小時,採用有放回的方式隨機抽取N個集合用於訓練,再把多個模型進行集成,能夠獲得更好的結果;第三,當模型的決策邊界過於複雜時,每每多個模型的集成結果會優於單一模型的集成結果。
(3)行駛時長預測組件
行駛時長預測組件主要根據特徵選擇組件選出的用於預測站間行駛時長的特徵,利用嶺迴歸模型對站間行駛時長進行預測。
進行迴歸預測的方法有不少種,如線性迴歸與嶺迴歸。線性迴歸假設樣本知足式(1),其中將預測結果表示爲n個變量(x1~xn)的線性相關(其中,x0=1,θ0~θn爲待定參數),使用普通最小二乘法使其損失函數(式(2))最小,其中圖片,是第i個預測值與真實值的差值,共有m次測試,對每次預測的差值平方求和。因爲差值平方後被放大,這使得在線性迴歸模型中,異常值對偏差的影響較大,即模型對異常值較爲敏感。在現實生活中收集到的數據每每會由於各類因素致使異常值的存在,故利用線性迴歸進行預測時效果每每不盡人意。

一種基於Gradient Boosting的公交車運行時長預測方法

爲了減小異常值對模型的影響,嶺迴歸引入正則化項做爲閾值,見式(3)。其中,λ是正則化參數,做用是控制θj(j=1,⋯,n)的取值平衡,以減弱異常值對模型的影響程度。此外,因爲自變量之間每每存在多重共現性,即便這種多重共現性並不影響最小二乘估計量的無偏性和最小方差性,可是,利用這種方式求得的方差並不必定小。事實上,能夠找一個有偏估計量,雖然這種有偏估計量有微小的誤差,但其精度卻比無偏估計量高。此外,嶺迴歸一般用於自變量間存在多重共線性的狀況,因爲各時刻和各站點之間的停留時長可能存在時間與空間上的相關關係,所以選用嶺迴歸模型做爲站間行駛時長的預測模型。

一種基於Gradient Boosting的公交車運行時長預測方法

(4)融合組件
實際上,因爲各特徵因素間的複雜影響,經過行駛時長預測組件和停留時長預測組件預測獲得的站間行駛和站點停留時長並不能直接加和做爲最終的預測結果,還須要融合組件結合其餘特徵進行結果融合,以求得最終從起點到終點總時長的預測結果。因爲不一樣線路之間的差別,各個站點對最終結果的影響程度也有所不一樣,因此融合組件在進行融合時,一樣須要特徵選擇組件在已有特徵和兩個預測特徵之間進行特徵組合的選擇,以求得體現該線路特色的特徵組合。
(5)模型調參組件
動態特徵選擇的公交到站時間預測方法,其動態性不只僅體如今特徵選擇隨線路和方向的變化而動態變化,並且,對於同一個訓練模型來講,因爲不一樣的特徵組合與訓練數據表現出的差別,其最優參數也相應體現出差別,故模型調參組件主要是根據輸入的特徵數據選擇最優的參數組合。

5 實驗與分析

5.1 實驗過程與結果

實驗基於廈門市全部22路公交車自2018年12月至2019年2月的到離站數據、計劃班次信息、車輛信息以及對應時間的廈門天氣情況等數據進行,使用Python3.7進行數據處理與算法編寫,實驗中使用sklearn0.18.1庫中的模型接口進行部分算法實現。
實驗對於公交站點停留時長、站間行駛時長以及總時長3個模塊均使用不一樣模型(Gradient Boosting、AdaBoost、決策樹、嶺迴歸等)進行實驗,在每種模型基礎上使用不一樣特徵、不一樣參數組合,最後爲每一個模塊選擇出預測效果最優的模型(包括模型的最佳特徵與參數組合)進行組合,造成最終框架。
5.1.1 停留時長預測
(1)特徵選擇
在特徵選擇階段,筆者發現,當組件選取表6所示的18個特徵時,在Gradient Boosting、AdaBoost、決策樹、嶺迴歸上表現相對較優。

一種基於Gradient Boosting的公交車運行時長預測方法

從選擇的特徵能夠看出,是否爲工做日、是否爲節假日、天氣是影響停留時長的因素之一;此外,線路特徵的表現較爲複雜,停留時長的變化主要體如今個別站點上,且不一樣站點停留時長的變化具備不一樣的時間特徵,好比第六、七、八、13站點等的客流量具備週期趨勢,第1五、22站點受3天內變化的影響較大,第十一、16站點受最新狀況的影響較大。
接着在實驗中,對比了不一樣模型對停留時長預測的準確率和偏差率隨特徵數量的變化(如圖五、圖6所示),其中,準確率表示預測值與真實值的差值的絕對值在必定範圍內(本文設定爲5 min)的比率,偏差率=(預測值與真實值的差值的絕對值)/真實值,並對比了隨着特徵數量的增長,同一訓練集訓練時長的變化(如圖7所示)。筆者發現,利用同一訓練集,在不一樣的模型下,各模型的準確率與偏差率呈現一個波動變化的過程,而且,隨着特徵數量的增多,訓練模型消耗的時間增長。此外,因爲影響公交車輛在站點停留時長的因素不少,各類因素間相互做用的複雜程度不一樣,且不一樣線路具備不一樣的線路特徵,所以,在進行訓練前,根據待選特徵集選擇出體現線路特徵的特徵集合是很是有必要的。一方面,能夠針對不一樣線路選取更有效的線路特徵;另外一方面,經過下降特徵數量,能夠縮減訓練時間。

一種基於Gradient Boosting的公交車運行時長預測方法

圖5 不一樣模型對停留時長預測的準確率隨特徵數量的變化

一種基於Gradient Boosting的公交車運行時長預測方法
圖6 不一樣模型對停留時間預測的偏差率隨特徵數量的變化

一種基於Gradient Boosting的公交車運行時長預測方法

圖7 不一樣模型對停留時間預測的訓練時長隨特徵數量的變化

(2)模型調參
因爲不一樣的線路通過特徵選擇組件會篩選出不一樣的特徵,所以同一個模型的最優參數組合也不一樣,故須要通過模型調參組件找到最優的參數。
首先對比了4種狀況下模型的偏差率,表7中列出了GBDT算法中的各項參數。其中,loss表示採用的損失函數(huber表示Huber損失,ls表示均方差,lad表示絕對損失,quantile表示分位數損失), learning_rate表示模型的學習率,n_estimators表示學習器最大的迭代次數, subsample表示控制模型子採樣的比例, alpha表示須要指定分位數的值。

一種基於Gradient Boosting的公交車運行時長預測方法

對於Gradient Boosting模型,其主要參數包括loss、learning_rate、n_estimators、subsample、alpha。經過模型調參組件,發現對於停留時長預測組件來講,最佳的參數組合爲:loss設置爲huber、learning_rate設置爲0.一、n_estimators設置爲600、subsample設置爲0.七、alpha設置爲0.2。在這樣的參數組合下,模型的偏差率爲7.98% (如圖8所示),5 min的偏差範圍內準確率爲98.45%。下面在上述基礎上,分別採用不一樣的損失函數,固定其餘變量,調整某一變量,進行偏差百分比的對比,結果以下。
一種基於Gradient Boosting的公交車運行時長預測方法

圖8 不一樣參數組合對停留時長預測的偏差率

如圖9所示,alpha對loss爲quantile時的偏差率影響較大,而對其餘幾個損失函數的影響較小。一般,alpha只在loss爲quantile時須要進行調整。

一種基於Gradient Boosting的公交車運行時長預測方法

圖9 模型偏差率隨alpha的變化

如圖10所示,隨着subsample的變化,模型的偏差率在不一樣的loss下,都會有所浮動。subsample是控制模型子採樣的比例,此處的子採樣不一樣於隨機森林中有放回的採樣。一般,當該值爲1時,表示不進行採樣,使用所有樣本;當該值小於1時,表示要進行採樣,使用部分樣本。當該值小於1時,能夠在必定程度上防止過擬合,可是若該值太小,也會增長樣本擬合的誤差,致使欠擬合,所以,該值最優的取值範圍爲[0.5,0.8]。

一種基於Gradient Boosting的公交車運行時長預測方法

圖10 模型偏差率隨subsample的變化

n_estimators指的是學習器最大的迭代次數,當該值太小時,容易致使模型欠擬合現象的發生,當該值過大時容易致使模型過擬合現象的發生,模型的預測偏差率隨着n_estimators變化的狀況如圖11所示。

一種基於Gradient Boosting的公交車運行時長預測方法

圖11 模型偏差率隨n_estimators的變化

learning_rate指的是模型的學習率,即模型學習的快慢,當該值較大時,可能致使在訓練過程當中跳過最優勢,該值較小時,模型學習得較慢。如圖12所示,隨着學習率的增長,模型的偏差率呈上升趨勢。

一種基於Gradient Boosting的公交車運行時長預測方法
圖12 模型對停留時長預測的偏差率隨learning_rate的變化

(3)小結
特徵選擇組件爲線路選擇合適的特徵,模型調參組件爲線路選擇最佳的模型參數組合,停留時長預測組件將根據選出的特徵和參數組合進行模型訓練,給出停留時長預測結果,該結果做爲融合組件中所用的停留時長預測特徵。經過前面的實驗對比發現,Gradient Boosting在準確率與偏差率上均優於其餘模型,故選用Gradient Boosting對公交站點停留時長進行預測。
5.1.2 行駛時長預測
(1)特徵選擇
在特徵選擇階段,筆者發現當組件選取表8所示的16個特徵時,在Gradient Boosting、AdaBoost、決策樹、嶺迴歸上表現相對較優。

一種基於Gradient Boosting的公交車運行時長預測方法

從上述實驗結果選擇的的特徵能夠看出,與停留時長模塊中被選出的停留時長特徵不一樣,是否爲節假日、天氣等外部特徵並無被選出,這是由於對於22路公交車來講,其行駛時長不受這些因素的影響。廈門市做爲熱門旅遊城市,部分路段在某一時段內交通情況基本穩定在某一範圍,不受節假日和天氣等因素的影響。對於22路公交車的行駛時長來講,其部分站點(如第6站點、第9站點等)間的行駛時長受週期因素影響,第一、四、17站點等受近3天的數據表現影響,第八、21站點等受最近時段因素影響,第2站點同時受1周和近3天時段表現的影響。
實驗中對比了不一樣特徵數量在各個模型上預測行駛時長的準確率與偏差率(如圖1三、圖14所示),並對比了隨着特徵數量的增長,同一訓練集訓練時長的變化(如圖15所示)。筆者發現,利用同一訓練集,在不一樣的模型(包括Gradient Boosting、AdaBoost、嶺迴歸、決策樹)下,各模型的準確率與偏差率依舊呈現一個波動變化的過程,也就是說,特徵數量並非越多越好,相反,隨着特徵數量的增多,模型的訓練時長會增多。所以,進行特徵數量的選擇對於行駛時長預測來講,一樣是有必要的。

一種基於Gradient Boosting的公交車運行時長預測方法

圖13 不一樣模型對行駛時長預測的準確率隨特徵數量的變化

一種基於Gradient Boosting的公交車運行時長預測方法

圖14 不一樣模型對行駛時長預測的偏差率隨特徵數量的變化

一種基於Gradient Boosting的公交車運行時長預測方法

圖15 不一樣模型對行駛時長預測的訓練時長隨特徵數量的變化

(2)模型調參
因爲不一樣的線路經過特徵選擇組件可能會篩選出不一樣的特徵,所以同一個模型的最優參數組合可能也有所不一樣,故須要經過模型調參組件找到最優的參數。通過屢次實驗發現,當alpha爲90時,嶺迴歸模型的表現較優,偏差率爲6.69%,5 min的偏差範圍內準確率爲86.17%。
(3)小結
經過特徵選擇組件和模型調參組件爲線路選擇合適的特徵和模型參數組合,行駛時長預測組件將根據特徵和參數進行模型訓練,給出行駛時長預測結果,做爲融合組件中所用的行駛時長預測特徵。通過多種模型的對比發現,嶺迴歸模型在性能上(準確率與偏差百分比)的表現與Gradient Boosting基本相同,但隨着特徵數量的增加,其時間的增加比Gradient Boosting慢,所以,選擇綜合表現較好的嶺迴歸模型做爲預測行駛時長的主要模型。
5.1.3 總時長預測
(1)特徵選擇
在總時長預測模塊中,特徵選擇組件將在影響站間行駛和站點停留的全部特徵字段中進行特徵篩選。筆者發現,當組件選取表9所示的12個特徵時,在Gradient Boosting、AdaBoost、決策樹、嶺迴歸上表現相對較優。

一種基於Gradient Boosting的公交車運行時長預測方法

從上述實驗結果選擇的特徵能夠看出,停留時長預測組件和行駛時長預測組件產生的預測結果對預測總時長是有幫助的,由於在不一樣特徵數量下,特徵組件都選出了預測的兩個特徵。此外,預測組件還爲融合組件選擇了一些與運行或停留有關的特徵,這多是由於影響總時長的因素的複雜性,使得部分站點的狀況是影響最終目標值的重要因素。
在實驗中還對比了不一樣特徵數量在各個模型上預測總時長的準確率與偏差率(如圖1六、圖17所示),並對比了隨着特徵數量的增長,在同一訓練集訓練時長的變化(如圖18所示)。利用同一訓練集,在不一樣的模型(包括Gradient Boosting、AdaBoost、決策樹、嶺迴歸)下,各模型的準確率與偏差率呈現波動變化的過程,且隨着特徵數量的增多,模型的訓練時長會增多,所以,進行特徵數量的選擇對於總時長預測來講,一樣是有必要的。

一種基於Gradient Boosting的公交車運行時長預測方法

圖16 不一樣模型對總時長預測的準確率隨特徵數量的變化

一種基於Gradient Boosting的公交車運行時長預測方法

圖17 不一樣模型對總時長預測的偏差率隨特徵數量的變化

一種基於Gradient Boosting的公交車運行時長預測方法

圖18 不一樣模型對總時長預測的訓練時長隨特徵數量的變化

(2)模型調參
因爲不一樣的線路通過特徵選擇組件可能會篩選出不一樣的特徵,所以同一個模型的最優參數組合也不一樣,故須要通過模型調參組件找到最優的參數。對於總時長的預測,選擇Gradient Boosting做爲預測模型,該模型的參數組合見表10。

一種基於Gradient Boosting的公交車運行時長預測方法

通過屢次實驗發現,當loss設置爲lad、learning_rate設置爲0.一、n_estimators設置爲250、subsample設置爲0.八、alpha設置爲0.6時,數據表現最優,其中偏差率爲5.55%(如圖19所示),5 min的偏差範圍內準確率爲81.07%。

一種基於Gradient Boosting的公交車運行時長預測方法
圖19 不一樣參數組合對總時長預測的偏差率

下面針對最優的組合,變化其中的值,觀察模型準確率的變化。
對於learning_rate,如圖20所示,模型的準確率總體上隨着learning_rate的增長而降低。

一種基於Gradient Boosting的公交車運行時長預測方法

圖20 不一樣模型對總時長預測的準確率隨learning_rate的變化

對於n_estimators,如圖21所示,模型的準確率在n_estimators取值爲200~300時獲得最優。

一種基於Gradient Boosting的公交車運行時長預測方法
圖21 模型對總時長預測的準確率隨n_estimators的變化

對於subsample,如圖22所示,模型的準確率在subsample取值爲0.8左右時達到最優。

一種基於Gradient Boosting的公交車運行時長預測方法
圖22 模型對總時長預測的準確率隨subsample的變化

對於alpha,如圖23所示,模型的準確率在alpha取值爲0.6左右時達到最優。

一種基於Gradient Boosting的公交車運行時長預測方法

圖23 模型對總時長預測的準確率隨alpha的變化

(3)小結
經過特徵選擇組件和模型調參組件爲線路選擇合適的特徵和模型參數組合,融合組件根據特徵和參數進行模型訓練,將行駛時長預測組件和停留時長預測組件的預測結果與其餘特徵進行融合,給出最終預測的行駛時長。通過多種模型的對比發現,Gradient Boosting在特徵數量較少的時候,其模型在準確率和偏差率上的表現較好,所以,在融合組件中,選擇Gradient Boosting做爲預測總時長的算法。圖24爲模型擬合總時長的曲線,其中,橫座標表示預測的第x條記錄,縱座標表示總時長的預測值(紅色)和真實值(數色),表11爲對3個模塊組件分別各自統計的準確率與偏差率。

一種基於Gradient Boosting的公交車運行時長預測方法

圖24 融合組件預測結果

一種基於Gradient Boosting的公交車運行時長預測方法

5.2 對比實驗

在已有的預測算法中,關於公交預測車輛到達終點站的研究較少,故將本文提出的R-GBDT和典型的幾個傳統機器學習算法進行對比。實驗結果見表12。

一種基於Gradient Boosting的公交車運行時長預測方法

其中,各個算法以下。● R-GBDT:本論 文提出的方法,即利用特徵選擇組件與模型調參組件選擇合理的特徵組合與參數。由停留時長預測組件與行駛時長預測組件預測停留時間與行駛時間。由融合組件將上述兩個組件的預測結果與其餘特徵進行融合,造成一個框架。● AdaBoost:機器學習中的一種集成的方法 ,使用的特徵爲R-GBDT中未經特徵組件選擇的特徵。● 決策樹:使用的特徵爲R-GBDT中未經特徵組件選擇的特徵。● SVM:支持向量機,使用的特徵爲R-GBDT中未經特徵組件選擇的特徵。● TTP(total predict):不引入行駛和停留運行特徵時利用GBDT進行總時長預測。● DS(direct sum):直接加和R-GBDT中停留時長預測組件與行駛時長預測組件的預測結果。從實驗結果看,本文提出的基於動態特徵選擇的預測方法R-GBDT的偏差率相對於其餘算法更低,實驗結果分析以下。● 對比R-GBDT與其餘機器學習模型(AdaBoost、決策樹、SVM)發現,其偏差率與準確率均優於其餘模型。這是因爲R-GBDT使用的GBDT方法是一種集成學習的方法,相似於一種投票的機制,可以很好地糾正單一模型的錯誤。從另外一個角度看,其餘機器學習模型均是採用直接預測最終結果的方式,R-GBDT採用的是相似於分類預測再累加的方式,對於實驗結果,融合結果並無出現分段預測模型中常出現的偏差累加現象,這也說明該方法在下降分段預測的偏差累加上有必定優點。● 對比R-GBDT與DSR發現,兩者都是在傳統的機器學習模型上進行的,不一樣之處在因而否使用細化的停留和行駛的相關運行特徵。從實驗結果上看,引入細化的停留和行駛相關特徵對預測最終結果是有必定幫助的。● 對比R-GBDT與DS發現,融合組件的結果比直接加和停留時長預測組件與行駛時長預測組件的結果略微好一些。這在必定程度上也反映了對於總時長,其可能存在除停留和行駛外的其餘影響因素。

相關文章
相關標籤/搜索