池賢昭, 陳 鵬, 祝佳莉, 耿小情
(武漢理工大學 交通學院,湖北 武漢 430063)
面對迅猛增長的地鐵建設現狀,以及智慧城市和智能交通的發展需要,實時精確的客流預測作為智能交通的重要支撐就顯得尤為重要。軌道交通短期客流預測通過對地鐵站歷史刷卡數據的分析,預測站點未來的客流量變化,幫助實現更合理的出行路線選擇,規避交通堵塞,提前部署站點安保措施等,可以最終實現用大數據和人工智能等技術助力未來城市安全出行。
現有研究大都從地鐵客流的周期性或者隨機性出發,針對性的提出預測方法。比較經典的方法有時間序列法[1,2]、非線性回歸法[3,4]、參數回歸法[5-7]等。近年來,很多學者考慮到實際客流的復雜性和單一預測模型的片面性,針對不同的客流狀況,嘗試利用組合模型來預測短期客流。通過選取兩種或兩種以上的客流預測方法進行組合,提高預測精度,實現優勢互補。郝曉濤[8](2016)根據交通流特性,在交通流時間序列數據聚類分析(CA)的基礎上,通過WNN神經網絡模型和ARIMA時間序列統計模型的組合模型來預測交通流,相較于傳統的短時交通流預測模型,組合模型在預測精度、預測速度和穩定性上都有了明顯的提高。高楊等[9](2016)以小時客流量為預測時間粒度,構造一種基于組合誤差優化模型的城市軌道交通短期客流預測模型。模型預測效果良好,但考慮因素單一,忽略了時空、客流屬性、票價以及車站運輸能力等多維度因素的影響。Guo等[10](2019)考慮軌道交通客流預測中異常客流的隨機性和波動性,在提取異常客流特征的基礎上,構建了一種基于支持向量機回歸和長短時記憶神經網絡的混合預測方法。但混合方法僅適用于預測15min內的客流量。
本文基于短時客流的隨機波動性,考慮客流序列的時間特性和組合模型和泛化性,提出了一種基于stacking算法的軌道交通短期客流組合預測方法。該方法能夠較為精確的預測隨機性和波動性較大的客流,一定程度上克服了組合模型泛化性能不強的缺陷。
組合預測也可稱為集成學習預測,組合預測的一般結構如圖1所示,先產生一組“個體預測器”,再用某種策略將他們結合起來[11]。

圖1 組合預測一般結構
stacking算法的基本思想是學習幾個不同的弱學習器,并通過訓練一個元模型來組合它們,然后基于這些弱模型返回的多個預測結果輸出最終的預測結果。因此,為了構建 stacking 模型,需要定義想要擬合的L個學習器和組合它們的元模型。
本文提出的GGRK-MLR組合模型基于stacking算法,將梯度提升回歸(GBR)、隨機森林回歸(RFR)以及K近鄰回歸(KNN)作為初級學習器,多層感知器回歸(MLR)作為次級學習器,并采用10次10折交叉訓練避免初級訓練模型與次級訓練模型過擬合。
1.2.1 梯度提升回歸和隨機森林回歸
梯度提升回歸是一種通過構建多個分類回歸決策樹并將之組合形成強學習器的集成模型。梯度提升屬于提升算法體系的一種,其基本思想是利用損失函數的負梯度在當前模型下的值作為模型本次訓練結果殘差的近似,并以該值作為下一次訓練的目標[12]。對于樣本N={(x1,y1),…,(xn,yn)},若使用最小二乘回歸為損失函數,則損失函數的負梯度就是預測值與真實值的殘差,其表現為:
=yi-Fm-1(xi)
(1)

梯度提升回歸建立在多個弱學習器的基礎上,采用連續的方式構造樹。第m個學習器在前m-1個弱學習器的誤差上重新進行訓練,更新樣本權重,這就導致模型不會過度學習異常值特征,即預測值較為平穩。在數據量相對較小的情況下,梯度提升回歸也可以達到很好的預測精度,同時用到了強預剪枝,從而使得梯度提升樹往往深度很小,這樣模型占用的內存少,預測的速度也快。
隨機森林回歸與梯度提升回歸一樣,都是建立在分類回歸樹基礎上的集成模型。與梯度提升最大的不同在于,隨機森林在構造過程中運用的隨機化方法,即隨機選擇構造每棵樹的樣本集,隨機選擇每個節點用于劃分的特征,這導致隨機森林中每棵樹之間都沒有關聯不會造成過度擬合的現象。值得注意的是,由于隨機森林對于數據集合特征劃分的隨機性,模型過度學習異常值(數據樣本量小)特征,導致預測結果更多的偏向異常值。
1.2.2 K近鄰回歸
K近鄰回歸原理與K近鄰分類算法類似,主要通過對于與預測特征(值)某種距離內的k個訓練值,劃分目標特征(值)的類別(值)從而得到預測的類比或者具體值。KNN有三大要素,分別為近鄰值k、度量距離d以及決策方式F(x)[13]。
KNN回歸對于特征向量不太多的數據有較好的應用,理論成熟、思想簡單。對于客流復雜的軌道交通換乘站點,在5min時間粒度內客流的關聯性較大,因此可以通過KNN回歸來擬合短時間內的客流變化特征。
1.2.3 多層感知機回歸
多層感知機(MLP)是多個單層感知機的組合。感知機也稱為感知器,是一種雙層神經網絡,即只有輸入層和輸出層而沒有隱層的神經網絡。多層感知機的本質就是通過在輸入層和輸出層之間加入一層或多層隱層,建立起來的神經網絡模型,并且每一層和前一層通過一個系數矩陣連接。
MLP基于BP算法,因此在訓練的過程中,模型會持續的更新參數的權值,所以MLP模型也能夠有效的學習數據的不同特征,分配合理的權重,達到整合不同特征優勢的作用。
1.2.4 GGRK-MLR組合模型
GGRK-MLR組合模型基于stacking算法,其基本步驟為:首先,對客流的原始數據進行匯總,然后提取數據的時間特征,并對數據進行歸一化處理。其次,將輸入數據導入到設定好參數的初級訓練模型(GBR、GBR、RFR、KNN)中進行訓練,整理訓練得到的數據形成次級矩陣的輸入矩陣。最后,將輸入矩陣導入次級訓練模型(MLR)中進行訓練,得到訓練好的GGRK-MLR模型。具體遵循以下步驟:
(1)數據預處理。
①客流數據匯總。將原始客流數據進行匯總,匯總后的歷史客流數據為Q。
②提取匯總數據的時間特征。簡單的數據統計和相似日特征并不能保證預測的準確性。本文在匯總客流數據的基礎上,提取客流數據的時間特性,提取每條數據的時間格式(%Y-%m-%d %H:%M:%S)所隱藏的星期、天、小時、分鐘特性,分別形成“dayofweek”“day”“hour”以及“min”列,并添加到歷史客流數據序列中。
③匯總數據歸一化處理。考慮客流量數據之間的相互影響,將客流量數據進行歸一化處理集體處理如下:

(2)
式中:Q為歸一化預處理的歷史客流數據;Qmin為Q中的最小值;Qmax為Q中的最大值;Q'為匯總后的歷史客流數據。
(2) 訓練初級模型和次級模型。經過數據預處理后,需要利用歷史客流數據訓練初級模型,得到訓練好的初級模型。
次級訓練器使用初級訓練器訓練得到的數據集,在一定程度上會造成次級訓練器輸出結果過擬合。為了克服這種限制,可以使用k-折交叉訓練方法。
初級學習器會在k-1 折數據上進行訓練,從而對剩下的一折數據進行預測。迭代地重復這個過程,就可以得到對任何一折觀測數據的預測結果。這樣一來,我們就可以為數據集中的每個觀測數據生成相關的預測,然后使用所有這些預測結果訓練元模型。
① GBR模型的p次k折交叉訓練。對GBR進行p次k折交叉訓練,則GBR模型p次k折交叉訓練的結果平均值Qtra,gbr(p,k)為:

(3)
式中:Qtra,gbr(k)為GBR模型對Qtra進行k折交叉訓練得到的的訓練結果。
則訓練好的GBR模型對驗證集進行p·m次預測的平均值Qval,gbr(p,k)為:
(4)
式中:Gval,gbr,ij為GBR模型在測試集第i次第j折上的預測結果。
②RFR、KNN的p次k折交叉訓練。同上,可以得到RFR、KNN進行p次k折交叉訓練的結果Qtra,rfr(p,k),Qtra,knn(p,k),Qv al,rfr(p,k),Qv al,knn(p,k):


③ MLR模型訓練。整理初級訓練模型得到的數據以形成次級模型的輸入矩陣。則次級訓練器輸入訓練集Qtrac為:
Qtrac={Qtra,gbr(p,k),Qtra,rfr(p,k),Qtra,knn(p,k)}
(5)
次級訓練器的輸入測試集Qvalc為:
Qv alc={Qv al,gbr(p,k),
Qv al,rfr(p,k),Qv al,knn(p,k)}
(6)
將Qtrac和Qvalc輸入到次級訓練器MLR,得到最后測試集的預測結果A為:
A=MLR(Qv alc)
(7)
式中:MLR(Qvalc)為經過Qtrac訓練好的MLR模型。
(3) 預測目標客流。
利用訓練好的組合模型對目標值進行預測,得到預測值A,因為A為歸一化后的預測值,所以還需要將A進行逆歸一化處理得到實際的預測值,具體方式如下:
A′=Qmin+A·(Qmax-Qmin)
(8)
式中:A′為逆歸一化之后的數據;A歸一化預測值。
(4) 客流預測結果評價。平均絕對誤差(MAE)能夠更加真實的反映預測的誤差情況,所以本文使用平均絕對誤差對預測結果進行評價,MAE計算那公式如下。

(9)
式中:m為預測客流的個數;Ai′為模型預測值;Qi為客流實際值。
本文選取杭州地鐵4號線客流情況比較復雜的火車東站地鐵站(stationID:15),分別對其工作日(1月24、25日)5 min出站客流,周末(1月26日)5 min的出站客流量進行預測。另外為驗證模型在其他時間粒度上也具有較好的預測精度,對1月26日15 min、30 min為統計區間的出站客流量進行預測。本文數據基于杭州市2019年1月2-26日軌道交通售檢票系統(AFC)進出站刷卡數據,原始數據包括刷卡時間、線路、站點、設備ID、支付類型、進出站狀態以及用戶ID等7種特征向量。具體表示見表1。

表1 杭州市軌道交通AFC原始客流數據特征表
考慮地鐵站實際運行狀態,將訓練和預測全天時間段縮為05∶30至23∶30(序號1-216)并以5 min為時間粒度統計站點客流數量。本文針對工作日與周末分別使用歷史相似客流數據作為訓練集和驗證集數據,并使用目標日的歷史客流數據作為測試集數據。即:使用1月5、12、19日客流數據作為訓練集和驗證集,使用26日客流數據作為測試集數據;使用1月4、11、18日客流數據作為訓練集和驗證集,使用25日客流數據作為測試集數據;使用1月2、3、7、8、9、10、14、15、16、17、21、22、23日作為訓練集和驗證集,使用24日客流數據作為測試集數據。以上訓練集數據和驗證集數據均以7∶3分配。
本文GGRK-MLP組合模型選取的具體參數如下:
Stacking算法:初級回歸模型GBR、GBR、RFR、KNN,次級回歸模型MLR,交叉驗證的次數為10,折數為10,并行線數為6,得分函數neg-mean-squared-error;
GBR:損失函數為deviance,子模型數量為100,最大深度為3,節點分裂參與判斷的最大特征數為none;
RFR:決策樹個數為10,樹的最大深度為none;
KNN:近鄰半徑k值為5,限定半徑最近鄰法使用的算法為auto,每個樣本的近鄰樣本的權重選擇函數為uniform;
MLR:權重優化器為adam,正則化參數為1e-5,輸入和隱層數量為(150,4),隨機種子數為72,最大迭代次數為2 000,隨機優化大小為auto,學習速率為constant。
2.3.1 周末預測結果分析
對于1月26日杭州東站出站客流量的預測結果見表2,其組合模型預測值與實際客流量對比如圖2所示。

表2 1月26日杭州地鐵火車東站出站客流量預測平均絕對誤差(MAE)對比表

圖2 1月26日組合模型預測值與實際客流量對比圖
由表2可以看出,基于stacking的組合模型對杭州東站地鐵站1月26日(周六)5min時間粒度進行的預測,stacking組合模型相對于隨機梯度提升回歸、隨機森林回歸、K近鄰回歸、多響應線性回歸的平均絕對誤差值MAE最小,因此組合模型具有更高的預測精度。組合模型的平均預測精度相對于GBR提升0.85%,相對于RFR提升3.02%,相對于KNN提升26.39%,相對于MLP提升46.33%。證明了組合模型在5 min時間粒度預測上具有更高的精度。從圖2a可以看出(帶*虛線為預測曲線),組合模型能夠較好的擬合客流曲線。
表2中,組合模型對15 min和30 min時間粒度的客流量預測相對其他單個模型平均絕對誤差最小,預測精度更高。證明了組合模型在更大時間粒度上也具有很好的預測精度,組合模型的魯棒性和泛化性能更高。
從圖2b、圖2c上可以看出,在5 min時間粒度上,模型預測沒有出現過擬合現象,但在15 min、30 min時間維度上預測出現了明顯高于預測值的過擬合。三種維度的訓練數據在輸入特征向量的維度上是一樣的,所以不考慮數據本身的影響。同時考慮到2月4、5日的除夕春節影響,城市軌道交通的客流量整體上會出現減少的情況,所以模型過擬合并不是數據的時間聚合維度原因,而在于組合模型沒有學習春節臨近客流量整體減少的趨勢。
2.3.2 工作日結果分析
利用GGRK-MLR組合模型對24、25日的5 min客流量進行預測,預測結果見表3,預測值與實際客流量對比如圖3所示。

表3 1月24、25日杭州地鐵火車東站5 min出站客流量預測平均絕對誤差(MAE)對比表

圖3 1月24、25日組合模型預測值與實際客流量對比圖
由表3可以看出組合模型在工作日上的預測MAE值均小于其他幾種模型的預測誤差,可以證明stacking組合模型在工作日的預測上也具有有效性和一定的精確性。從圖3a、圖3b可以看出,雖然組合模型預測的MAE值最小,但在擬合曲線上還有一定的誤差,一些峰值和波動特征沒有預測出來。火車東站不同于一般的工作區、生活區或者娛樂區的地鐵站點,火車東站地鐵站客流受到火車站的影響較大,進出站客流在有一定程度上表現得更加隨機,所以模型在預測上沒有長周期的數據支持,很難做到精確的預測。
本文從軌道交通換乘站客流的波動和隨機性出發,考慮鄰近數據和異常值對于組合模型的影響,提出了一種基于stacking算法的GGRK-MLR組合預測模型。組合預測模型利用MLP神經網絡對于輸入數據權重的更新迭代,結合梯度提升回歸和隨機森林回歸對于客流數據特征的強大學習能力以及對于異常值的敏感性,在此基礎上加入K近鄰回歸模型,進一步提高組合模型對于鄰近數據的擬合能力。實驗結果表明,在時間粒度為5 min時,GGRK-MLR組合預測模型能夠較好的預測大型綜合車站的短期進出站客流,且相對于GBR、RFR、KNN、MLR具有更好的預測精度。但是,模型僅僅考慮提取客流數據的時間特性,沒有進一步挖掘天氣因素、站點土地利用性質以及站點客流之間的相互影響。這也是本文的下一步研究方向,即增加空間特性的影響因素,建立泛化性能魯棒性以及預測精度更高的組合預測模型。