羅建平,陳 歡,楊森彬,張燕忠
(1.廣東省城市智能交通物聯(lián)網(wǎng)工程技術(shù)研究中心,廣州 510663;2.廣州交信投科技股份有限公司,廣州 510663)
實(shí)時公交到站預(yù)測是城市公交排班調(diào)度的重要依據(jù),也是影響乘客出行體驗(yàn)的重要因素,具有重要的社會意義和價值。如果公交車輛到站預(yù)測時間不準(zhǔn),將可能產(chǎn)生公交車輛調(diào)度斷位、發(fā)班不均勻等問題[1-3],進(jìn)而影響乘客出行服務(wù)體驗(yàn)。
國內(nèi)外相關(guān)領(lǐng)域的專家和學(xué)者在公交到站時間預(yù)測方面做了諸多研究。Tirachini[4]等考慮了城市不同區(qū)域道路環(huán)境對公交車行程時間的影響,采用多元線性回歸模型對公交到站時間進(jìn)行了預(yù)測;Huang[5]等基于貝葉斯模型預(yù)測短期公交出行時間;霍豪[6]等慮上下游車站的距離、信號燈數(shù)和彎道數(shù),基于KNN算法提高到站時間預(yù)測的準(zhǔn)確性和穩(wěn)定性;童小龍[7]等采用改進(jìn)的時間序列法進(jìn)行公交車輛站間行程時間預(yù)測,增強(qiáng)對于突發(fā)事件的反應(yīng)能力;賴永炫[8]等采用時空相關(guān)屬性模型進(jìn)行公交到站預(yù)測,模型準(zhǔn)確率為80.23%;李鵬程[9]等考慮公交到站前2~3站的信息,用兩層LSTM模型對公交到站時間進(jìn)行預(yù)測;瑪爾然[10]建立公交車在路段上的運(yùn)行時間、站點(diǎn)??繒r間、交叉口延誤時間的時間模型,采用卡爾曼濾波遞推方程預(yù)測公交到站時間,模型的準(zhǔn)確率可達(dá)到90%以上。
現(xiàn)有關(guān)于公交到站時間預(yù)測的研究普遍存在準(zhǔn)確性和穩(wěn)定性不高的問題。由于城市公交出行呈現(xiàn)明顯的早晚高峰現(xiàn)象,本文提出了一種基于LightGBM-LSTM的公交到站時間預(yù)測方法,考慮了影響公交到站時間的重要因素,如車輛實(shí)時位置、時間特征、高平峰狀態(tài)等。首先采用LSTM算法對高平峰狀態(tài)進(jìn)行有效識別;然后采用LightGBM算法進(jìn)行公交到站時間預(yù)測,并給出了模型的評價指標(biāo);最后以廣州市某典型公交線路為例進(jìn)行實(shí)驗(yàn),結(jié)果表明基于LightGBM-LSTM的方法具有良好的預(yù)測效果。
圖1是基于LightGBM-LSTM的公交到站時間預(yù)測算法總體架構(gòu),包括三大模塊:一是數(shù)據(jù)采集與預(yù)處理模塊,從公交調(diào)度系統(tǒng)中提取歷史數(shù)據(jù)集,經(jīng)過數(shù)據(jù)預(yù)處理劃分為訓(xùn)練集和測試集,用于模型訓(xùn)練和測試;二是分類和預(yù)測建模模塊,首先采用LSTM算法構(gòu)建高平峰模式識別模型,其輸出作為到站時間預(yù)測模型的一個輸入特征,然后采用LightGBM算法構(gòu)建到站時間預(yù)測模型;三是模型預(yù)測模塊,基于車輛實(shí)時信息封裝到站預(yù)測服務(wù)接口。
圖1 基于LightGBM-LSTM算法的公交到站時間預(yù)測算法總體架構(gòu)
1.1.1 LSTM工作原理
LSTM算法是一種RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))算法。LSTM算法對RNN網(wǎng)絡(luò)的改進(jìn)在于其在每一個判斷元胞中放置了四扇閥門(輸入閥門、遺忘閥門、更新閥門和輸出閥門),閥門的開閉狀態(tài)能夠用來判斷模型的記憶結(jié)果是否達(dá)到加入到當(dāng)前層的計算中的閾值。LSTM基本網(wǎng)絡(luò)架構(gòu)如圖2所示。
圖2 LSTM基本網(wǎng)絡(luò)架構(gòu)
LSTM網(wǎng)絡(luò)是由一個個的元細(xì)胞構(gòu)成,組成相應(yīng)的元細(xì)胞輸送帶,保證信息在整個鏈上保持不變,能夠解決長時依賴的問題,學(xué)習(xí)到更遠(yuǎn)的規(guī)律。
遺忘閥門Ft通過Sigmoid激活函數(shù)獲取舊元胞輸出值Yt-1和當(dāng)前元胞輸入值Xt,結(jié)合相應(yīng)的偏置和權(quán)重來判斷是否應(yīng)該保留當(dāng)前元胞的狀態(tài)St。計算公式:
Ft=σ(Wt[Yt-1,Xt]+bf)
(1)
式中:Wt是遺忘門對應(yīng)的權(quán)重;Wt和bf分別是遺忘門的偏置和權(quán)重;σ是Sigmoid激活函數(shù)。
輸入閥門It負(fù)責(zé)判斷輸入值Xt是否應(yīng)該用于更新當(dāng)前元胞的狀態(tài)St,一方面由Sigmoid激活函數(shù)決定當(dāng)前元胞輸出值Yt,另一方面由tanh激活函數(shù)創(chuàng)建一個當(dāng)前元胞的候選矢量Ut,由更新閥門判斷是否應(yīng)將其加入到當(dāng)前元胞的狀態(tài)St中。計算公式:
It=σ(Wi[Yt-1,Xt]+bi)
(2)
Ut=tanh(Wc[Yt-1,Xt]+bc)
(3)
式中:Wi是輸入門對應(yīng)的權(quán)重;Wc是細(xì)胞狀態(tài)對應(yīng)的權(quán)重;bi和bc是輸入門和細(xì)胞狀態(tài)的偏置;Ut是計算過程中的候選值向量。
更新閥門Ut通過將遺忘閥門和輸入閥門相乘來判斷當(dāng)前元胞是否應(yīng)該將舊元胞的狀態(tài)由St-1更新到St。計算公式:
St=Ft×St-1+It×Ut
(4)
輸出閥門負(fù)責(zé)計算當(dāng)前元胞的輸出值。計算公式:
Ot=σ(Wo[Yt-1,Xt]+bo)
(5)
Yt=Ot×tanh(St)
(6)
式中:Ot是t時刻LSTM單元的輸出;Wo是輸出門對應(yīng)的權(quán)重;bo是輸出門的偏置。
1.1.2 基于LSTM的高平峰模式識別
對交通高平峰狀態(tài)進(jìn)行有效辨識,對公交到站時間的預(yù)測具有重要意義。根據(jù)公交到站的時間曲線特性,結(jié)合控制圖模式識別理論[11],本文研究的六種典型公交到站時間模式如圖3和表1所示。
圖3 公交到站時間的六種基本模式
表1 六種控制圖模式及其表達(dá)式
為了有效模擬公交到站時間曲線以及避免耗時的人工標(biāo)注,本文通過蒙特卡洛法(Monte Carlo)對公交到站時間數(shù)據(jù)進(jìn)行模擬,其形式為:
y(k)=u+re(k)+ds(k),k=1,2,...,M
(7)
式中:y(k)是第k個班次的公交到站時間;u是平峰狀態(tài)下公交到站時間的均值;re(k)=r×σ是公交車輛行駛過程中偶然因素引起的隨機(jī)誤差,其分布為re(k)∈N(0,σ),σ是公交到站時間的標(biāo)準(zhǔn)方差,r∈(-1,1)的隨機(jī)數(shù);ds(k)是第k個班次的公交車輛在行駛過程中由其他因素引起的干擾值;k0是趨勢發(fā)生的初始位置,當(dāng)k-k0<0時,v0=0,表示趨勢狀態(tài)未發(fā)生;當(dāng)k-k0≥0時,v0=1,表示趨勢狀態(tài)已發(fā)生;kp是趨勢模式的斜率,其中kp=kσ/10;k1是階躍發(fā)生的初始位置,當(dāng)k-k1<0時,v1=0,表示階躍狀態(tài)未發(fā)生;當(dāng)k-k1≥0時,v1=1,表示階躍狀態(tài)已發(fā)生;sp是階躍幅值,sp∈[2σ,3σ];Ap是波動幅值,Ap∈[σ,1.5σ];Tp是周期長度,Tp∈[5,8]。
本文每種模式產(chǎn)生Q個樣本,每個樣本選取M個連續(xù)的公交到站時間,構(gòu)成LSTM模型樣本集,進(jìn)而對高平峰模式識別模型進(jìn)行訓(xùn)練和測試,以ROC曲線(Receiver operating characteristic curve, ROC曲線)和AUC值(Area Under Curve,AUC)作為模型評價指標(biāo),最后對實(shí)際的公交到站時間數(shù)據(jù)進(jìn)行識別。
1.2.1 LightGBM工作原理
梯度提升樹是經(jīng)過多輪迭代來不斷提高學(xué)習(xí)器的性能,在迭代過程中,假設(shè)前一輪得到的學(xué)習(xí)器是Ft-1(x),損失函數(shù)是L(y,Ft-1(x)),那么本輪的目標(biāo)就是找到一個弱學(xué)習(xí)器ht(x),使得本輪的損失函數(shù)最小。損失函數(shù)為:
(8)
然后計算損失函數(shù)的負(fù)梯度,用于擬合本輪損失函數(shù)的近似值。損失函數(shù)的近似值可表示為:
(9)
最終得到本輪的強(qiáng)學(xué)習(xí)器:
Ft(xi)=ht(x)+Ft-1(x)
(10)
由于梯度提升樹在處理大數(shù)據(jù)集時計算開銷非常大,難以在精度和效率之間達(dá)到一個比較好的平衡,LightGBM算法對梯度提升樹進(jìn)行了改進(jìn),進(jìn)而提升了模型的計算效率,并且在維持較高計算效率的同時還能得到較高的準(zhǔn)確率。
1.2.2 基于LightGBM算法的到站時間預(yù)測模型
基于預(yù)處理后的數(shù)據(jù)進(jìn)行模型訓(xùn)練和測試。以MAPE作為模型評價指標(biāo),模型的輸出為到站時間,模型的輸入包括高平峰模式、行車方向、前N個班次的到站時間、天氣、時間特征、日期信息等。
時間特征提?。簩⒁惶熘忻縣劃分為4個區(qū)間,每個區(qū)間15min,即將一天24h劃分為96個區(qū)間,對每個區(qū)間進(jìn)行編號,則為1,2,3,…,96。如早上6:00,對應(yīng)的區(qū)間刻度為24;早上7:20,對應(yīng)的區(qū)間刻度為30;早上8:10,對應(yīng)的區(qū)間刻度為33。
由于公交到站時間受節(jié)假日等因素影響,如果僅僅以是否節(jié)假日作為特征,模型會丟失節(jié)假日與非節(jié)假日之間的數(shù)據(jù)關(guān)聯(lián)性。因此,本文從每條記錄的日期信息中提取出5個特征作為模型輸入,其中:第一個維度V1表示是否是節(jié)假日,取值范圍0或1,如果是節(jié)假日,值為1,否則為0;第二個維度V2表示當(dāng)天所在的日期類型(工作日或節(jié)假日)有多少天;第三個維度V3表示當(dāng)前日期在工作日或節(jié)假日中所占的比例;第四個維度V4表示當(dāng)天之前最近的連續(xù)不同的日期類型(工作日或節(jié)假日)天數(shù);第五個維度V5表示當(dāng)天之后最近的連續(xù)不同的日期類型(工作日或節(jié)假日)天數(shù)。以非節(jié)假日和國慶節(jié)為例,重構(gòu)后的日期信息見表2和表3。
表2 非節(jié)假日的重構(gòu)后的日期信息
表3 國慶節(jié)期間的重構(gòu)后的日期信息
本文研究對象是廣州市336路公交線路,從大觀路北總站(大觀濕地公園)至中海譽(yù)城總站。從公交調(diào)度系統(tǒng)中提取該線路的站點(diǎn)數(shù)據(jù)、電子路單數(shù)據(jù)、公交到離站數(shù)據(jù)、路網(wǎng)數(shù)據(jù)、公共汽(電)車暢行指數(shù)和天氣數(shù)據(jù)等,采樣時間從2019年10月1日至12月7日,得到基礎(chǔ)數(shù)據(jù)集Xm×n(m表示樣本量,n表示原始字段數(shù)目),包括站臺、日期、天氣、道路、公交到達(dá)時間、離開時間等信息,其核心數(shù)據(jù)見表4。
表4 公交核心數(shù)據(jù)信息
2.2.1 缺失值處理
缺失值處理主要有刪除法和插補(bǔ)法。當(dāng)缺失的信息占整個數(shù)據(jù)集的比例較低時,直接刪除缺失值。如果到達(dá)時間arrival_time和離開時間depart_time兩個字段的原始數(shù)據(jù)值出現(xiàn)缺失,本文采用均值插補(bǔ)法進(jìn)行缺失值處理。
2.2.2 異常值處理
對于異常值的處理,是將數(shù)據(jù)集中與其他數(shù)據(jù)具有顯著不同的孤立點(diǎn)、離群點(diǎn)等異常數(shù)據(jù)進(jìn)行檢測和刪除。本文主要通過箱型圖法剔除異常值。
經(jīng)過上述數(shù)據(jù)預(yù)處理,得到數(shù)據(jù)集Yk×n(k表示預(yù)處理后的樣本量,k=197 504)。不同時間段的數(shù)據(jù)量占比情況見表5,數(shù)據(jù)整體分布相對均勻,早上7:00~9:59之間的數(shù)據(jù)量分別為7.75%、7.99%和7.50%;早上6:00~6:59之間的數(shù)據(jù)量最小,為2.17%。工作日與非工作日的數(shù)據(jù)量占比分別為51.47%和48.53%。
表5 不同時間段的數(shù)據(jù)量比例
圖4表明單位站間的公交日均到站時間在一定范圍內(nèi)波動,其中站間編號為68561、680、6026、26963和26970的平均到站時間分別為163.34s、37.95s、74.92s、154.02s和77.73s。站間編號為68561和26963的路段為上下班高峰路段,站間距離較長、有1個紅綠燈,工作日平均到站時間(166.78s和155.67s)要高于周末的平均到站時間(156.68s和149.78s)。站間編號為680、6026和26970的路段為非上下班高峰路段,其中680的站間距離短、沒有紅綠燈,公交到站時間短,在工作日(37.13s)和周末(38.37s)的平均到站時間非常接近;站間編號為6026和26970的路段站間距離較長、有1個紅綠燈,公交到站時間適中,在工作日(74.58s和77.73s)和周末(75.64s和76.78s)的平均到站時間也非常接近。由圖5可知,站間編號為68561和26963在11月18日不同時段的公交到站時間波動較大,早高峰的公交到站時間要高于平峰期和低峰期,晚高峰出現(xiàn)在17:00~18:00。
圖4 不同單位站間的公交日均到站時間
圖5 站間編號為68561和26963在 11月18日不同時段的公交到站時間
圖6和圖7分別是公交車輛運(yùn)行的單程時間密度分布曲線和累積分布曲線,單程時間集中在 3 000~4 000s,其中單程時間在3 000s內(nèi)的概率為0.22,單程時間在4 000s內(nèi)的概率為0.91。
圖6 公交車輛運(yùn)行的單程時間密度分布曲線
圖7 公交車輛運(yùn)行的單程時間累積分布曲線
本文以2019年10月1日至2019年12月1日之間的2個月數(shù)據(jù)作為模型訓(xùn)練集,2019年12月1日至2019年12月7日之間的7d數(shù)據(jù)作為模型測試集。如1.1.2節(jié)所述,考慮到仿真數(shù)據(jù)的一般性,本文選取均值u=0,標(biāo)準(zhǔn)差σ=1,M=10,每種模式產(chǎn)生5 000個樣本,每個樣本選取10個連續(xù)的到站時間作為屬性數(shù)據(jù)點(diǎn),構(gòu)成 30 000×10樣本集,其中24 000×10樣本是訓(xùn)練集,其余6 000×10樣本是測試集。接收LSTM層輸出全連接網(wǎng)絡(luò)層(Dense層)的激活函數(shù)選擇softmax函數(shù);為避免模型訓(xùn)練過程中出現(xiàn)過擬合問題,丟棄部分隱藏層神經(jīng)元網(wǎng)絡(luò)節(jié)點(diǎn)的舍棄率為0.2。圖8是不同的優(yōu)化器對LSTM網(wǎng)絡(luò)測試性能的對比情況,Adam算法的收斂速度最快,且性能表現(xiàn)最好;RMSProp算法性能表現(xiàn)次之;SGD算法的性能欠佳。因此,選擇Adam算法作為LSTM網(wǎng)絡(luò)的優(yōu)化器。由圖9可知,不同模型隨參數(shù)變化時對高平峰模式的分類準(zhǔn)確度,其中LSTM模型隨著迭代次數(shù)的增加,分類精度處于99.12%,優(yōu)于決策樹和KNN分類模型,因此本文采用LSTM模型作為高平峰模式識別模型。
圖8 不同優(yōu)化器對LSTM網(wǎng)絡(luò)性能的影響
圖9 不同模型對高平峰模式分類的 準(zhǔn)確率隨模型參數(shù)的變化
LightGBM模型的基本參數(shù)為:每棵樹葉子的數(shù)量num_leaves和最大深度max_depth的取值范圍是2~100;學(xué)習(xí)率learning_rate的取值范圍是0.001~0.050;迭代次數(shù)的取值范圍是50~10 000。從表6可知,各模型對非上下班高峰路段的預(yù)測精度要高于上下班高峰路段的預(yù)測精度。LightGBM模型的預(yù)測準(zhǔn)確度要優(yōu)于SVM模型、BP神經(jīng)網(wǎng)絡(luò)模型和多元線性回歸模型,LightGBM模型在站間編號為680、6026和26970的MAPE低于9%,在站間編號為68561和26963的MAPE處于11.04%~14.07%。由圖10可知,隨著站序個數(shù)的增加,到站時間預(yù)測的精度會下降。
表6 預(yù)測結(jié)果誤差對比,MAPE(單位:%)
圖10 基于LightGBM模型的公交到站時間
本文建立了一種基于LightGBM和LSTM算法的公交到站時間預(yù)測模型。首先通過LSTM算法構(gòu)建高平峰模式識別模型對上下班高峰期狀態(tài)進(jìn)行有效辨識,然后以LightGBM算法進(jìn)行到站時間預(yù)測。以廣州市某典型公交線路為例,從公交調(diào)度系統(tǒng)中提取大量的歷史數(shù)據(jù)進(jìn)行預(yù)處理,分析了上下班高峰路段、時間刻度等對公交到站時間的影響,選擇時間刻度、高平峰模式、上一個班次的到站時間、是否節(jié)假日等作為模型的輸入,采用平均絕對百分比誤差作為預(yù)測模型的評價指標(biāo)。結(jié)果表明:基于LightGBM-LSTM模型的預(yù)測準(zhǔn)確率要高于支持向量機(jī)模型、BP神經(jīng)網(wǎng)絡(luò)模型和多元線性回歸模型。
影響公交到站時間的因素很多,如站間紅綠燈數(shù)量、人行道數(shù)量、車流量、道路交叉口等,后續(xù)進(jìn)一步的研究應(yīng)將更多的影響因素考慮進(jìn)來,結(jié)合更大規(guī)模的數(shù)據(jù),對上下班高峰期的公交到站時間進(jìn)行預(yù)測。