池賢昭, 陳 鵬, 祝佳莉, 耿小情
(武漢理工大學(xué) 交通學(xué)院,湖北 武漢 430063)
面對迅猛增長的地鐵建設(shè)現(xiàn)狀,以及智慧城市和智能交通的發(fā)展需要,實時精確的客流預(yù)測作為智能交通的重要支撐就顯得尤為重要。軌道交通短期客流預(yù)測通過對地鐵站歷史刷卡數(shù)據(jù)的分析,預(yù)測站點未來的客流量變化,幫助實現(xiàn)更合理的出行路線選擇,規(guī)避交通堵塞,提前部署站點安保措施等,可以最終實現(xiàn)用大數(shù)據(jù)和人工智能等技術(shù)助力未來城市安全出行。
現(xiàn)有研究大都從地鐵客流的周期性或者隨機(jī)性出發(fā),針對性的提出預(yù)測方法。比較經(jīng)典的方法有時間序列法[1,2]、非線性回歸法[3,4]、參數(shù)回歸法[5-7]等。近年來,很多學(xué)者考慮到實際客流的復(fù)雜性和單一預(yù)測模型的片面性,針對不同的客流狀況,嘗試?yán)媒M合模型來預(yù)測短期客流。通過選取兩種或兩種以上的客流預(yù)測方法進(jìn)行組合,提高預(yù)測精度,實現(xiàn)優(yōu)勢互補(bǔ)。郝曉濤[8](2016)根據(jù)交通流特性,在交通流時間序列數(shù)據(jù)聚類分析(CA)的基礎(chǔ)上,通過WNN神經(jīng)網(wǎng)絡(luò)模型和ARIMA時間序列統(tǒng)計模型的組合模型來預(yù)測交通流,相較于傳統(tǒng)的短時交通流預(yù)測模型,組合模型在預(yù)測精度、預(yù)測速度和穩(wěn)定性上都有了明顯的提高。高楊等[9](2016)以小時客流量為預(yù)測時間粒度,構(gòu)造一種基于組合誤差優(yōu)化模型的城市軌道交通短期客流預(yù)測模型。模型預(yù)測效果良好,但考慮因素單一,忽略了時空、客流屬性、票價以及車站運輸能力等多維度因素的影響。Guo等[10](2019)考慮軌道交通客流預(yù)測中異常客流的隨機(jī)性和波動性,在提取異??土魈卣鞯幕A(chǔ)上,構(gòu)建了一種基于支持向量機(jī)回歸和長短時記憶神經(jīng)網(wǎng)絡(luò)的混合預(yù)測方法。但混合方法僅適用于預(yù)測15min內(nèi)的客流量。
本文基于短時客流的隨機(jī)波動性,考慮客流序列的時間特性和組合模型和泛化性,提出了一種基于stacking算法的軌道交通短期客流組合預(yù)測方法。該方法能夠較為精確的預(yù)測隨機(jī)性和波動性較大的客流,一定程度上克服了組合模型泛化性能不強(qiáng)的缺陷。
組合預(yù)測也可稱為集成學(xué)習(xí)預(yù)測,組合預(yù)測的一般結(jié)構(gòu)如圖1所示,先產(chǎn)生一組“個體預(yù)測器”,再用某種策略將他們結(jié)合起來[11]。
圖1 組合預(yù)測一般結(jié)構(gòu)
stacking算法的基本思想是學(xué)習(xí)幾個不同的弱學(xué)習(xí)器,并通過訓(xùn)練一個元模型來組合它們,然后基于這些弱模型返回的多個預(yù)測結(jié)果輸出最終的預(yù)測結(jié)果。因此,為了構(gòu)建 stacking 模型,需要定義想要擬合的L個學(xué)習(xí)器和組合它們的元模型。
本文提出的GGRK-MLR組合模型基于stacking算法,將梯度提升回歸(GBR)、隨機(jī)森林回歸(RFR)以及K近鄰回歸(KNN)作為初級學(xué)習(xí)器,多層感知器回歸(MLR)作為次級學(xué)習(xí)器,并采用10次10折交叉訓(xùn)練避免初級訓(xùn)練模型與次級訓(xùn)練模型過擬合。
1.2.1 梯度提升回歸和隨機(jī)森林回歸
梯度提升回歸是一種通過構(gòu)建多個分類回歸決策樹并將之組合形成強(qiáng)學(xué)習(xí)器的集成模型。梯度提升屬于提升算法體系的一種,其基本思想是利用損失函數(shù)的負(fù)梯度在當(dāng)前模型下的值作為模型本次訓(xùn)練結(jié)果殘差的近似,并以該值作為下一次訓(xùn)練的目標(biāo)[12]。對于樣本N={(x1,y1),…,(xn,yn)},若使用最小二乘回歸為損失函數(shù),則損失函數(shù)的負(fù)梯度就是預(yù)測值與真實值的殘差,其表現(xiàn)為:
=yi-Fm-1(xi)
(1)
梯度提升回歸建立在多個弱學(xué)習(xí)器的基礎(chǔ)上,采用連續(xù)的方式構(gòu)造樹。第m個學(xué)習(xí)器在前m-1個弱學(xué)習(xí)器的誤差上重新進(jìn)行訓(xùn)練,更新樣本權(quán)重,這就導(dǎo)致模型不會過度學(xué)習(xí)異常值特征,即預(yù)測值較為平穩(wěn)。在數(shù)據(jù)量相對較小的情況下,梯度提升回歸也可以達(dá)到很好的預(yù)測精度,同時用到了強(qiáng)預(yù)剪枝,從而使得梯度提升樹往往深度很小,這樣模型占用的內(nèi)存少,預(yù)測的速度也快。
隨機(jī)森林回歸與梯度提升回歸一樣,都是建立在分類回歸樹基礎(chǔ)上的集成模型。與梯度提升最大的不同在于,隨機(jī)森林在構(gòu)造過程中運用的隨機(jī)化方法,即隨機(jī)選擇構(gòu)造每棵樹的樣本集,隨機(jī)選擇每個節(jié)點用于劃分的特征,這導(dǎo)致隨機(jī)森林中每棵樹之間都沒有關(guān)聯(lián)不會造成過度擬合的現(xiàn)象。值得注意的是,由于隨機(jī)森林對于數(shù)據(jù)集合特征劃分的隨機(jī)性,模型過度學(xué)習(xí)異常值(數(shù)據(jù)樣本量小)特征,導(dǎo)致預(yù)測結(jié)果更多的偏向異常值。
1.2.2 K近鄰回歸
K近鄰回歸原理與K近鄰分類算法類似,主要通過對于與預(yù)測特征(值)某種距離內(nèi)的k個訓(xùn)練值,劃分目標(biāo)特征(值)的類別(值)從而得到預(yù)測的類比或者具體值。KNN有三大要素,分別為近鄰值k、度量距離d以及決策方式F(x)[13]。
KNN回歸對于特征向量不太多的數(shù)據(jù)有較好的應(yīng)用,理論成熟、思想簡單。對于客流復(fù)雜的軌道交通換乘站點,在5min時間粒度內(nèi)客流的關(guān)聯(lián)性較大,因此可以通過KNN回歸來擬合短時間內(nèi)的客流變化特征。
1.2.3 多層感知機(jī)回歸
多層感知機(jī)(MLP)是多個單層感知機(jī)的組合。感知機(jī)也稱為感知器,是一種雙層神經(jīng)網(wǎng)絡(luò),即只有輸入層和輸出層而沒有隱層的神經(jīng)網(wǎng)絡(luò)。多層感知機(jī)的本質(zhì)就是通過在輸入層和輸出層之間加入一層或多層隱層,建立起來的神經(jīng)網(wǎng)絡(luò)模型,并且每一層和前一層通過一個系數(shù)矩陣連接。
MLP基于BP算法,因此在訓(xùn)練的過程中,模型會持續(xù)的更新參數(shù)的權(quán)值,所以MLP模型也能夠有效的學(xué)習(xí)數(shù)據(jù)的不同特征,分配合理的權(quán)重,達(dá)到整合不同特征優(yōu)勢的作用。
1.2.4 GGRK-MLR組合模型
GGRK-MLR組合模型基于stacking算法,其基本步驟為:首先,對客流的原始數(shù)據(jù)進(jìn)行匯總,然后提取數(shù)據(jù)的時間特征,并對數(shù)據(jù)進(jìn)行歸一化處理。其次,將輸入數(shù)據(jù)導(dǎo)入到設(shè)定好參數(shù)的初級訓(xùn)練模型(GBR、GBR、RFR、KNN)中進(jìn)行訓(xùn)練,整理訓(xùn)練得到的數(shù)據(jù)形成次級矩陣的輸入矩陣。最后,將輸入矩陣導(dǎo)入次級訓(xùn)練模型(MLR)中進(jìn)行訓(xùn)練,得到訓(xùn)練好的GGRK-MLR模型。具體遵循以下步驟:
(1)數(shù)據(jù)預(yù)處理。
①客流數(shù)據(jù)匯總。將原始客流數(shù)據(jù)進(jìn)行匯總,匯總后的歷史客流數(shù)據(jù)為Q。
②提取匯總數(shù)據(jù)的時間特征。簡單的數(shù)據(jù)統(tǒng)計和相似日特征并不能保證預(yù)測的準(zhǔn)確性。本文在匯總客流數(shù)據(jù)的基礎(chǔ)上,提取客流數(shù)據(jù)的時間特性,提取每條數(shù)據(jù)的時間格式(%Y-%m-%d %H:%M:%S)所隱藏的星期、天、小時、分鐘特性,分別形成“dayofweek”“day”“hour”以及“min”列,并添加到歷史客流數(shù)據(jù)序列中。
③匯總數(shù)據(jù)歸一化處理??紤]客流量數(shù)據(jù)之間的相互影響,將客流量數(shù)據(jù)進(jìn)行歸一化處理集體處理如下:
(2)
式中:Q為歸一化預(yù)處理的歷史客流數(shù)據(jù);Qmin為Q中的最小值;Qmax為Q中的最大值;Q'為匯總后的歷史客流數(shù)據(jù)。
(2) 訓(xùn)練初級模型和次級模型。經(jīng)過數(shù)據(jù)預(yù)處理后,需要利用歷史客流數(shù)據(jù)訓(xùn)練初級模型,得到訓(xùn)練好的初級模型。
次級訓(xùn)練器使用初級訓(xùn)練器訓(xùn)練得到的數(shù)據(jù)集,在一定程度上會造成次級訓(xùn)練器輸出結(jié)果過擬合。為了克服這種限制,可以使用k-折交叉訓(xùn)練方法。
初級學(xué)習(xí)器會在k-1 折數(shù)據(jù)上進(jìn)行訓(xùn)練,從而對剩下的一折數(shù)據(jù)進(jìn)行預(yù)測。迭代地重復(fù)這個過程,就可以得到對任何一折觀測數(shù)據(jù)的預(yù)測結(jié)果。這樣一來,我們就可以為數(shù)據(jù)集中的每個觀測數(shù)據(jù)生成相關(guān)的預(yù)測,然后使用所有這些預(yù)測結(jié)果訓(xùn)練元模型。
① GBR模型的p次k折交叉訓(xùn)練。對GBR進(jìn)行p次k折交叉訓(xùn)練,則GBR模型p次k折交叉訓(xùn)練的結(jié)果平均值Qtra,gbr(p,k)為:
(3)
式中:Qtra,gbr(k)為GBR模型對Qtra進(jìn)行k折交叉訓(xùn)練得到的的訓(xùn)練結(jié)果。
則訓(xùn)練好的GBR模型對驗證集進(jìn)行p·m次預(yù)測的平均值Qval,gbr(p,k)為:
(4)
式中:Gval,gbr,ij為GBR模型在測試集第i次第j折上的預(yù)測結(jié)果。
②RFR、KNN的p次k折交叉訓(xùn)練。同上,可以得到RFR、KNN進(jìn)行p次k折交叉訓(xùn)練的結(jié)果Qtra,rfr(p,k),Qtra,knn(p,k),Qv al,rfr(p,k),Qv al,knn(p,k):
③ MLR模型訓(xùn)練。整理初級訓(xùn)練模型得到的數(shù)據(jù)以形成次級模型的輸入矩陣。則次級訓(xùn)練器輸入訓(xùn)練集Qtrac為:
Qtrac={Qtra,gbr(p,k),Qtra,rfr(p,k),Qtra,knn(p,k)}
(5)
次級訓(xùn)練器的輸入測試集Qvalc為:
Qv alc={Qv al,gbr(p,k),
Qv al,rfr(p,k),Qv al,knn(p,k)}
(6)
將Qtrac和Qvalc輸入到次級訓(xùn)練器MLR,得到最后測試集的預(yù)測結(jié)果A為:
A=MLR(Qv alc)
(7)
式中:MLR(Qvalc)為經(jīng)過Qtrac訓(xùn)練好的MLR模型。
(3) 預(yù)測目標(biāo)客流。
利用訓(xùn)練好的組合模型對目標(biāo)值進(jìn)行預(yù)測,得到預(yù)測值A(chǔ),因為A為歸一化后的預(yù)測值,所以還需要將A進(jìn)行逆歸一化處理得到實際的預(yù)測值,具體方式如下:
A′=Qmin+A·(Qmax-Qmin)
(8)
式中:A′為逆歸一化之后的數(shù)據(jù);A歸一化預(yù)測值。
(4) 客流預(yù)測結(jié)果評價。平均絕對誤差(MAE)能夠更加真實的反映預(yù)測的誤差情況,所以本文使用平均絕對誤差對預(yù)測結(jié)果進(jìn)行評價,MAE計算那公式如下。
(9)
式中:m為預(yù)測客流的個數(shù);Ai′為模型預(yù)測值;Qi為客流實際值。
本文選取杭州地鐵4號線客流情況比較復(fù)雜的火車東站地鐵站(stationID:15),分別對其工作日(1月24、25日)5 min出站客流,周末(1月26日)5 min的出站客流量進(jìn)行預(yù)測。另外為驗證模型在其他時間粒度上也具有較好的預(yù)測精度,對1月26日15 min、30 min為統(tǒng)計區(qū)間的出站客流量進(jìn)行預(yù)測。本文數(shù)據(jù)基于杭州市2019年1月2-26日軌道交通售檢票系統(tǒng)(AFC)進(jìn)出站刷卡數(shù)據(jù),原始數(shù)據(jù)包括刷卡時間、線路、站點、設(shè)備ID、支付類型、進(jìn)出站狀態(tài)以及用戶ID等7種特征向量。具體表示見表1。
表1 杭州市軌道交通AFC原始客流數(shù)據(jù)特征表
考慮地鐵站實際運行狀態(tài),將訓(xùn)練和預(yù)測全天時間段縮為05∶30至23∶30(序號1-216)并以5 min為時間粒度統(tǒng)計站點客流數(shù)量。本文針對工作日與周末分別使用歷史相似客流數(shù)據(jù)作為訓(xùn)練集和驗證集數(shù)據(jù),并使用目標(biāo)日的歷史客流數(shù)據(jù)作為測試集數(shù)據(jù)。即:使用1月5、12、19日客流數(shù)據(jù)作為訓(xùn)練集和驗證集,使用26日客流數(shù)據(jù)作為測試集數(shù)據(jù);使用1月4、11、18日客流數(shù)據(jù)作為訓(xùn)練集和驗證集,使用25日客流數(shù)據(jù)作為測試集數(shù)據(jù);使用1月2、3、7、8、9、10、14、15、16、17、21、22、23日作為訓(xùn)練集和驗證集,使用24日客流數(shù)據(jù)作為測試集數(shù)據(jù)。以上訓(xùn)練集數(shù)據(jù)和驗證集數(shù)據(jù)均以7∶3分配。
本文GGRK-MLP組合模型選取的具體參數(shù)如下:
Stacking算法:初級回歸模型GBR、GBR、RFR、KNN,次級回歸模型MLR,交叉驗證的次數(shù)為10,折數(shù)為10,并行線數(shù)為6,得分函數(shù)neg-mean-squared-error;
GBR:損失函數(shù)為deviance,子模型數(shù)量為100,最大深度為3,節(jié)點分裂參與判斷的最大特征數(shù)為none;
RFR:決策樹個數(shù)為10,樹的最大深度為none;
KNN:近鄰半徑k值為5,限定半徑最近鄰法使用的算法為auto,每個樣本的近鄰樣本的權(quán)重選擇函數(shù)為uniform;
MLR:權(quán)重優(yōu)化器為adam,正則化參數(shù)為1e-5,輸入和隱層數(shù)量為(150,4),隨機(jī)種子數(shù)為72,最大迭代次數(shù)為2 000,隨機(jī)優(yōu)化大小為auto,學(xué)習(xí)速率為constant。
2.3.1 周末預(yù)測結(jié)果分析
對于1月26日杭州東站出站客流量的預(yù)測結(jié)果見表2,其組合模型預(yù)測值與實際客流量對比如圖2所示。
表2 1月26日杭州地鐵火車東站出站客流量預(yù)測平均絕對誤差(MAE)對比表
圖2 1月26日組合模型預(yù)測值與實際客流量對比圖
由表2可以看出,基于stacking的組合模型對杭州東站地鐵站1月26日(周六)5min時間粒度進(jìn)行的預(yù)測,stacking組合模型相對于隨機(jī)梯度提升回歸、隨機(jī)森林回歸、K近鄰回歸、多響應(yīng)線性回歸的平均絕對誤差值MAE最小,因此組合模型具有更高的預(yù)測精度。組合模型的平均預(yù)測精度相對于GBR提升0.85%,相對于RFR提升3.02%,相對于KNN提升26.39%,相對于MLP提升46.33%。證明了組合模型在5 min時間粒度預(yù)測上具有更高的精度。從圖2a可以看出(帶*虛線為預(yù)測曲線),組合模型能夠較好的擬合客流曲線。
表2中,組合模型對15 min和30 min時間粒度的客流量預(yù)測相對其他單個模型平均絕對誤差最小,預(yù)測精度更高。證明了組合模型在更大時間粒度上也具有很好的預(yù)測精度,組合模型的魯棒性和泛化性能更高。
從圖2b、圖2c上可以看出,在5 min時間粒度上,模型預(yù)測沒有出現(xiàn)過擬合現(xiàn)象,但在15 min、30 min時間維度上預(yù)測出現(xiàn)了明顯高于預(yù)測值的過擬合。三種維度的訓(xùn)練數(shù)據(jù)在輸入特征向量的維度上是一樣的,所以不考慮數(shù)據(jù)本身的影響。同時考慮到2月4、5日的除夕春節(jié)影響,城市軌道交通的客流量整體上會出現(xiàn)減少的情況,所以模型過擬合并不是數(shù)據(jù)的時間聚合維度原因,而在于組合模型沒有學(xué)習(xí)春節(jié)臨近客流量整體減少的趨勢。
2.3.2 工作日結(jié)果分析
利用GGRK-MLR組合模型對24、25日的5 min客流量進(jìn)行預(yù)測,預(yù)測結(jié)果見表3,預(yù)測值與實際客流量對比如圖3所示。
表3 1月24、25日杭州地鐵火車東站5 min出站客流量預(yù)測平均絕對誤差(MAE)對比表
圖3 1月24、25日組合模型預(yù)測值與實際客流量對比圖
由表3可以看出組合模型在工作日上的預(yù)測MAE值均小于其他幾種模型的預(yù)測誤差,可以證明stacking組合模型在工作日的預(yù)測上也具有有效性和一定的精確性。從圖3a、圖3b可以看出,雖然組合模型預(yù)測的MAE值最小,但在擬合曲線上還有一定的誤差,一些峰值和波動特征沒有預(yù)測出來?;疖嚃|站不同于一般的工作區(qū)、生活區(qū)或者娛樂區(qū)的地鐵站點,火車東站地鐵站客流受到火車站的影響較大,進(jìn)出站客流在有一定程度上表現(xiàn)得更加隨機(jī),所以模型在預(yù)測上沒有長周期的數(shù)據(jù)支持,很難做到精確的預(yù)測。
本文從軌道交通換乘站客流的波動和隨機(jī)性出發(fā),考慮鄰近數(shù)據(jù)和異常值對于組合模型的影響,提出了一種基于stacking算法的GGRK-MLR組合預(yù)測模型。組合預(yù)測模型利用MLP神經(jīng)網(wǎng)絡(luò)對于輸入數(shù)據(jù)權(quán)重的更新迭代,結(jié)合梯度提升回歸和隨機(jī)森林回歸對于客流數(shù)據(jù)特征的強(qiáng)大學(xué)習(xí)能力以及對于異常值的敏感性,在此基礎(chǔ)上加入K近鄰回歸模型,進(jìn)一步提高組合模型對于鄰近數(shù)據(jù)的擬合能力。實驗結(jié)果表明,在時間粒度為5 min時,GGRK-MLR組合預(yù)測模型能夠較好的預(yù)測大型綜合車站的短期進(jìn)出站客流,且相對于GBR、RFR、KNN、MLR具有更好的預(yù)測精度。但是,模型僅僅考慮提取客流數(shù)據(jù)的時間特性,沒有進(jìn)一步挖掘天氣因素、站點土地利用性質(zhì)以及站點客流之間的相互影響。這也是本文的下一步研究方向,即增加空間特性的影響因素,建立泛化性能魯棒性以及預(yù)測精度更高的組合預(yù)測模型。