荊靈玲,解 超,王安琪
(1.中航勘察設計研究院有限公司,北京 100098;2.中國交通通信信息中心,北京 100011;3.中交信有限責任公司,北京 100007;4.北方工業(yè)大學,北京 100144)
城市公共交通是交通運輸業(yè)的重要組成部分,落實“公交優(yōu)先”政策,大力發(fā)展公共交通系統(tǒng)是緩解城市交通擁堵和交通安全問題行之有效的手段[1],而準確、實時地預測公交到站時間是城市智能交通系統(tǒng)(ITS)的重要組成部分。隨著定位和通信技術的發(fā)展和完善,準確預測公交車輛到站時間有利于市民合理規(guī)劃出行時間、滿足市民多元化出行需求、減少等車時間、緩解乘客焦慮情緒及提供精細化服務,將居民出行方式吸引到公共交通上來,使居民的出行融入可持續(xù)發(fā)展的交通系統(tǒng)中[2],進而緩解城市交通擁堵等問題,有利于構建以公共交通為主體的暢通、安全、高效、舒適、環(huán)保、經(jīng)濟、公平的城市交通系統(tǒng)[3]。
國內(nèi)外學者在公交到站時間預測方面提出了多種不同的方法。根據(jù)數(shù)據(jù)源可以分為基于歷史數(shù)據(jù)的方法、基于實時數(shù)據(jù)的方法和兩者相結合的方法。從預測方法上可以分為統(tǒng)計模型、回歸模型、時間序列模型、神經(jīng)網(wǎng)絡模型、SVM、 Kacman濾波和路況相似性方法等。李天雷等[4]基于大量的歷史公交軌跡數(shù)據(jù),用多元回歸計算各路段分時段的平均速度,基于平均速度進行預測。該統(tǒng)計模型對于路況比較穩(wěn)定的線路預測性能好,但不能適應路況變化較多的線路。孫棣華[5]在歷史平均速度的基礎上考慮車輛實時速度、到站距離、車站、信號燈等因素,建立了到站時間預測的線性方程。這種方式考慮了車輛的速度及其他影響因素,但由于公交車的密度不足以覆蓋所有時段和路段,所以在實時速度方面難以達到較高的覆蓋率和準確率。Li等[6]和Tetreault等[7]基于時間、歷史速度、實時速度、天氣、路段長度和交叉口數(shù)量等影響因子構建多元回歸方程進行預測,由于路況的多變和影響因子較多,線性回歸模型的擬合能力有限。孫玉硯等[8]對歷史路況進行聚類,找到與當前路況相似的歷史路況來預測站點到站點的行程時間,這種方法在復雜路況下的聚類和相似性判斷方面難以達到較高準確性。
另外,不少學者使用人工神經(jīng)網(wǎng)絡模型(ANN)來預測到達時間。 Chien[9]提出了基于link和stop的ANN預測模型。與線性模型相比,該模型學習能力更強,預測更準確,但是需要大量的訓練數(shù)據(jù)且在線性能較差。
卡爾曼濾波模型由于對歷史數(shù)據(jù)依賴小、抗干擾能力強被許多學者采用。Shalaby[10]提出用卡爾曼濾波來預測公交到站時間和離站時間??柭鼮V波利用通過某路段的前車數(shù)據(jù)對后面通過該路段的公交車時間進行預測。這種方法較好地考慮了實時路況,對歷史數(shù)據(jù)要求不高,但是由于公交車運行在各路段和各時段的不均衡,會導致數(shù)據(jù)稀疏。此外,由于長距離預測時路況變化較大,所以在實際應用中存在較多限制。
SVM 作為主流機器學習方法,因非線性擬合能力強、適合小樣本的特點常被用來預測到達時間。Yu[11]提出了基于SVM的預測模型,把時間、天氣、路段、當前路段的行程時間和下游路段的行程時間作為特征。實驗結果表明,該模型的預測精度優(yōu)于歷史平均模型和ANN模型。陳旭梅等[12]在卡爾曼濾波基礎上結合SVM對BRT進行了行程時間預測,效果較好。由于公交線路及路況的復雜性遠大于BRT系統(tǒng),所以該模型在公交系統(tǒng)上的適用性還需要進一步驗證。
智能公交系統(tǒng)在長時間運營過程中積累了海量的公交軌跡數(shù)據(jù)。 作為一項數(shù)據(jù)驅動的技術,機器學習在眾多領域取得了成功。集成學習作為機器學習的一個重要研究領域,通過聯(lián)合若干弱模型來提高效果,與單一模型相比可以得到更好的預測效果。張威威等[13]利用實測的車輛旅行時間數(shù)據(jù),提出了多步預測的主成分分析-梯度提升決策樹 (PCA-GBDT) 方法,實驗結果表明該方法具有更高的預測精度與算法穩(wěn)定性。
本文提出了一種基于集成學習的公交車到站時間預測方法。利用集成學習方法,確定優(yōu)化目標,把公交車到站時間相關的影響因素進行特征化,基于海量歷史數(shù)據(jù)訓練出機器學習模型,預測公交到站時間。
數(shù)據(jù)源包括靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)。靜態(tài)數(shù)據(jù)主要指公交線路及站點,動態(tài)數(shù)據(jù)主要指車輛上報GPS坐標流。公交線路及站點見圖1,公交車輛GPS坐標流見表1。
圖1 北京市公交站點線路
線路編號車輛編號GPS上報時間緯度經(jīng)度10016b8c4f149860901339.873 863116.458 18110016b8c4f149860902039.873 849116.458 85310016b8c4f149860902739.873 914116.459 15210016b8c4f149860903439.874 104116.459 43110016b8c4f149860904139.874 065116.459 80210016b8c4f149860904839.873 881116.460 54910016b8c4f149860905539.873 678116.460 77010016b8c4f149860906239.873 124116.460 82610016b8c4f149860906939.872 554116.460 84610016b8c4f149860907639.872 268116.460 92810016b8c4f149860909039.871 643116.460 82710016b8c4f149860909739.871 442116.460 88810016b8c4f149860910439.871 539116.461 16110016b8c4f149860911139.871 977116.461 21310016b8c4f149860911839.872 714116.461 21110016b8c4f149860912539.873 374116.461 215
本文采用集成學習GBDT的方法進行公交車輛到達站點的時間預測。
集成學習通過構建并結合多個學習器來完成學習任務[14]。GBDT是集成學習的一種算法。GBDT算法(gradient boosting decision tree)由Friedman最早提出,它利用最速下降的近似方法,即利用損失函數(shù)的負梯度在當前模型的值,作為回歸問題中提升樹算法的殘差的近似值擬合一個回歸樹[15]。GBDT通過迭代地訓練一系列的分類器,使每個分類器采用的樣本分布都與上一輪的學習結果有關。GBDT算法輸入是訓練集樣本T={(x1,y1),(x2,y2),…,(xm,ym)},最大迭代次數(shù)T,損失函數(shù)L。GBDT算法描述如下[16]:
步驟1初始化f0(x);
步驟2迭代輪數(shù)t=1~T,有:
1) 對樣本i=1,2,…,N,計算負梯度rit:
2) 利用(xi,rit)(i=1,2,…,N),擬合1顆CART回歸樹,得到第t顆回歸樹,其對應的葉子節(jié)點區(qū)域為Rjt,j=1,2,…,Jt。其中J為回歸樹t的葉子節(jié)點的個數(shù);
3) 對j=1,2,…,Jt,計算最佳擬合值cjt:
4) 更新ft(x):
步驟3輸出f(x)
GBDT預測方法框架(如圖2)包括:① 目標函數(shù)定義;② 特征工程:確定特征因子和分析其重要性。公交車輛到站時間預測涉及影響因素主要有歷史路況、實時路況、站點分布、路段距離、紅路燈數(shù)量和路口數(shù)量等;③ 離線訓練與驗證;④ 在線預測。
圖2 GBDT預測方法框架
常用的回歸預測評價指標有MAE、RMSE和MAPE等,具體含義詳見表2。本文采用預測誤差MAPE作為集成學習目標函數(shù)。
表2 評價指標MAE、RMSE和MAPE的含義
定義目標函數(shù)L為
訓練目標為求解最優(yōu)化:
將特征因子分為初階和高階特征。初階特征包括請求時間、到站點距離、經(jīng)過站點數(shù)等;高階特征分為路網(wǎng)(路口數(shù)量、紅綠燈數(shù)量)和統(tǒng)計特征(歷史路況和實時路況),特征列表見表3。
表3 特征列表
2.2.1特征因子計算
請求時間:按15 min作為時間片段,用[0,96)來表示全天各個時間片段。
路網(wǎng)特征:利用公交線路對應的道路數(shù)據(jù)提取路口數(shù)量及紅路燈數(shù)量。
統(tǒng)計特征:歷史路況和實時路況。
1) 歷史路況計算
基于公交線路歷史軌跡計算歷史平均路況。計算某一路段在某一時間窗口的平均速度,該過程主要考慮時間塊劃分(t)和路段劃分(s)問題。
時間塊劃分(t):路況隨時間變化呈現(xiàn)出明顯的高峰期和平峰期、工作日和休息日的差異規(guī)律。公交車排班也呈現(xiàn)明顯的高峰期、平峰期、工作日和休息日的差異。
基于公交車排班差異將工作日和節(jié)假日采用不同的時間片劃分方式,主要差異在早晚高峰的劃分上。基于公交車排班差異可保證時間片內(nèi)有足夠的樣本數(shù)量?;谶@兩點采用如表4的時間塊劃分,時間塊是將每天的各個時間區(qū)間映射成一個數(shù)值。
表4 時間塊劃分
續(xù)表(表4)
路段劃分(s):① 不同路段路況不同,兩站點間距離從幾百米到幾公里不等,會導致嚴重的路況異質性;② 某一路線存在多條公交線路的車輛數(shù)據(jù),這些不同公交線路的歷史軌跡都可以用來計算該路段的歷史路況?;谝陨蟽牲c提出網(wǎng)格劃分的線路離散化方法。該方法將公交線路抽象成一系列連續(xù)的網(wǎng)格,網(wǎng)格大小為100 m,如圖3所示。
圖3 線路離散化網(wǎng)格
歷史路況計算采用cost單條軌跡計算方法,方法如下:
步驟1將軌跡數(shù)據(jù)映射到線路網(wǎng)格;
步驟2計算網(wǎng)格耗時。如圖4所示,2個軌跡點落在2號網(wǎng)格和5號網(wǎng)格;每個網(wǎng)格的耗時為 avg = (T1-T0)/ (5-2);
圖4 軌跡數(shù)據(jù)映射到線路網(wǎng)格
步驟3計算網(wǎng)格耗時異常值過濾和均值。當有若干條軌跡數(shù)據(jù)需進行異常值檢驗之后進行平均計算,最終得到每一個網(wǎng)格的平均耗時。
2) 實時路況計算
計算方式與歷史路況類似,統(tǒng)計了過去15min內(nèi)通過該路段的公交車輛平均耗時。
2.2.2特征因子重要性評價
特征的選取和處理決定了預測效果的上限。對于特征j,全局特征重要性通過在每棵樹中的重要度的平均值來計算:
其中M是樹的數(shù)量。
特征j在1棵樹中的特征重要性為
采用過去N天公交車輛到站時間請求數(shù)據(jù),按2.2方法計算出所有特征,并計算出實際到達時間。從訓練集隨機抽取10%作為驗證集。本文測試了不同訓練參數(shù)下的不同效果,如表5所示。
表5 不同訓練參數(shù)下的不同測試效果
線上預測部分主要包括特征生成模塊、預測模塊和驗證模塊。線上生成特征向量傳入預測模型,最終得到結果。驗證模塊會記錄公交車實際到達每個站點的時間,進而計算出預測的精度。
本文選取北京市2017-06-01—2017-06-30公交車輛的軌跡數(shù)據(jù)作為訓練集,以07-01—07-07日的數(shù)據(jù)作為測試集,利用XGBoost進行訓練,驗證公交到站時間預測模型的有效性。不同方法的測試效果見圖5。
圖5 不同方法測試效果
本文利用數(shù)條重合線路的坐標流數(shù)據(jù),提出將集成學習GBDT方法用于預測公交車輛到站時間,提高了公交到站預測的準確性。通過實例分析和驗證發(fā)現(xiàn),基于GBDT方法的預測性能明顯優(yōu)于其他方法,可靈活處理混合類型特征,包括連續(xù)值和離散值,無需特征歸一化處理,且預測準確率更高;有特征組合的作用,可自然地處理缺失值,對異常點魯棒,具有易于實現(xiàn)、抗干擾能力強及泛化能力強等優(yōu)點。但該方法也有一定的局限性,在ETA預測中,不同的線路、不同的司機都會影響到達時間,這些特征在GBDT模型中較難表達。另外,對突發(fā)的路況變化預測精度不夠, 例如,在北京等大城市,由于道路突發(fā)事件較多,類似體育比賽、臨時封路等也會影響周邊路況,實時路況特征無法表達這種特殊路況持續(xù)的時間和波及的區(qū)域,會影響長距離的到達時間預測精度。這些存在的問題有待進一步的研究。