夏弋松,靳文舟
(華南理工大學(xué) 土木與交通學(xué)院, 廣東 廣州 510641)
影響城市公交客流預(yù)測的因素十分復(fù)雜,傳統(tǒng)的公交客流預(yù)測主要從純數(shù)理統(tǒng)計(jì)的角度對公交客流進(jìn)行擬合。多運(yùn)用時(shí)間序列、自回歸模型、灰色系統(tǒng)等統(tǒng)計(jì)方法進(jìn)行預(yù)測。然而,公交客流隨時(shí)間波動(dòng)趨勢明顯,受天氣、節(jié)假日、乘客類型等諸多因素影響。傳統(tǒng)的統(tǒng)計(jì)科學(xué)預(yù)測方法很難對客流變化的本質(zhì)規(guī)律和影響機(jī)理做出解釋,模型對不同數(shù)據(jù)的適應(yīng)性也比較差,預(yù)測精度亦不盡如人意。
近年來,隨著人工智能領(lǐng)域和機(jī)器學(xué)習(xí)各類算法的蓬勃發(fā)展,誕生了很多新的數(shù)據(jù)預(yù)測方法。比如神經(jīng)網(wǎng)絡(luò)模型、SVM支持向量機(jī)、隨機(jī)森林以及各類決策樹模型。這些方法和模型的預(yù)測精度和準(zhǔn)確性較傳統(tǒng)方法要好,在電商、電力等領(lǐng)域已經(jīng)有了較為成熟的應(yīng)用場景,國內(nèi)外也有少部分的學(xué)者將這類新型預(yù)測方法用于交通領(lǐng)域,但是相關(guān)的文獻(xiàn)還比較少,研究進(jìn)展不夠深入。
鑒于這種情況,為了充分發(fā)揮公共交通領(lǐng)域大數(shù)據(jù)的價(jià)值,對公交短期客流作更精準(zhǔn)的預(yù)測,本文采用梯度提升決策樹模型對多元公交客流數(shù)據(jù)進(jìn)行短期預(yù)測,以期找到精準(zhǔn)度和泛化性更強(qiáng)的機(jī)器學(xué)習(xí)模型,提升S-Catboost模型對不同類型短期客流預(yù)測的適應(yīng)性,讓機(jī)器學(xué)習(xí)在公共交通領(lǐng)域獲得更多應(yīng)用場景。
如何建立一個(gè)能夠精準(zhǔn)、有效地預(yù)測短時(shí)公交客流的客流預(yù)測模型一直是公共交通領(lǐng)域十分熱門的問題,在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)相關(guān)的算法理論問世之前,大部分學(xué)者使用的都是傳統(tǒng)的統(tǒng)計(jì)學(xué)預(yù)測模型,例如傳統(tǒng)的線性及非參數(shù)回歸模型[1-2]、邏輯回歸模型以及ARIMA[3- 6]自回歸移動(dòng)平均時(shí)間序列預(yù)測模型等。后來又在此基礎(chǔ)上引入了卡爾曼濾波[7-13]、小波分析[14]、灰色系統(tǒng)[15-17]等方法進(jìn)行公共交通領(lǐng)域內(nèi)的時(shí)間序列預(yù)測,這些預(yù)測方法相比傳統(tǒng)的回歸模型預(yù)測精度的預(yù)測穩(wěn)定性都有了較大的提高,但在對公交客流數(shù)據(jù)本身的利用方面還不夠充分,實(shí)際使用中的預(yù)測有效性也得不到保證。
2006年后神經(jīng)網(wǎng)絡(luò)的應(yīng)用開始逐漸進(jìn)入交通領(lǐng)域,國內(nèi)羅海燕等[18-19]比較早地將BP神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到公交線路站點(diǎn)時(shí)段上下車人數(shù)預(yù)測中,之后BP神經(jīng)網(wǎng)絡(luò)及相關(guān)的改進(jìn)算法開始在交通領(lǐng)域內(nèi)井噴式發(fā)展,BP神經(jīng)網(wǎng)絡(luò)算法在地鐵、公交及貨物運(yùn)量等短時(shí)預(yù)測領(lǐng)域有著出色的表現(xiàn),王立政等[20-26]發(fā)表了一系列相關(guān)的論文。除了BP神經(jīng)網(wǎng)絡(luò)外,被廣泛應(yīng)用于短時(shí)客流預(yù)測的還有RNN以及RNN的變體LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)等。LSTM相比于RNN模型多引入了一個(gè)記憶存儲(chǔ)單元,它的功能是自動(dòng)過濾網(wǎng)絡(luò)結(jié)構(gòu)中的無效成分并長時(shí)間自動(dòng)記憶輸入的有效成分,YANG等[27-31]認(rèn)為這有效解決了RNN在反向傳播過程中的梯度爆炸問題,因此實(shí)際使用過程中LSTM更適合用于時(shí)間序列類數(shù)據(jù)的分析。除了神經(jīng)網(wǎng)絡(luò)模型外,孫德山等[32]在國內(nèi)首次將SVR用于混沌時(shí)間序列的預(yù)測。楊軍等[33]又將LSSVM(最小二乘支持向量機(jī))方法開創(chuàng)性地用于軌道交通客流預(yù)測。
Leo Breiman和Adele Cutler提出并拓展了隨機(jī)森林算法,起初這項(xiàng)算法只是作分類使用,后來人們逐漸開始意識(shí)到它在預(yù)測方面的作用。YAO等[34]使用了隨機(jī)森林來預(yù)測公交到站時(shí)間。
深度學(xué)習(xí)類算法如LSTM對客流預(yù)測有較好的精度,但是需要的訓(xùn)練樣本過大,模型擬合成本過高(設(shè)備、時(shí)間),而支持向量機(jī)類算法預(yù)測精度不夠。對于短時(shí)公交客流預(yù)測,不僅需要比較高的預(yù)測精度,還要盡可能簡化對客流特征的處理過程。Catboost算法在訓(xùn)練模型時(shí)能夠?qū)⒐豢土麟x散化特征(如用戶ID、IC類型等)進(jìn)行自動(dòng)轉(zhuǎn)化為數(shù)值特征,此過程大大節(jié)省了特征處理的時(shí)間。此外,由于使用了對稱樹結(jié)構(gòu),Catboost算法的效率和泛化性能也優(yōu)于傳統(tǒng)的GBDT類算法(Xgboost、LGBM等)。本文通過Stacking框架將LSTM和RF算法作為第一層的基學(xué)習(xí)器,提取公交客流數(shù)據(jù)更強(qiáng)的特征信息,將Catboost算法作為第二層預(yù)測模型。以廣州市104和565路公交作為算例驗(yàn)證S-Catboost模型的實(shí)際性能,預(yù)測客流量能夠較好地為公交調(diào)度和居民出行提供決策依據(jù)。
本文旨在通過構(gòu)建一種基于Catboost方法的堆疊模型,對比以往的單一GBDT類模型,它能夠提高模型的解釋能力和預(yù)測性能,從而更加精確地進(jìn)行短時(shí)公交客流預(yù)測,并且更加深入地分析多源數(shù)據(jù)中不同影響因子和預(yù)測客流之間的關(guān)系。
Cart(分類和回歸)樹是一種采用二分遞歸分割技術(shù)產(chǎn)生的決策樹,即二叉樹,對于某個(gè)特征A而言,不管A的屬性是離散還是連續(xù),所產(chǎn)生的內(nèi)部節(jié)點(diǎn)分支都只有2個(gè)。如果Cart樹進(jìn)行決策的標(biāo)簽變量為連續(xù)值,則產(chǎn)生的樹為回歸樹;如果Cart進(jìn)行決策的標(biāo)簽變量為離散值,那么產(chǎn)生的決策樹為分類樹。
Cart回歸樹的算法流程如下:
Step 1:假定S為一組具有連續(xù)屬性標(biāo)簽的數(shù)據(jù)集S={(x1,y1),(x2,y2),(xn,yn)},其中x為特征變量數(shù)據(jù)集,y為標(biāo)簽屬性數(shù)據(jù)集。
Step 2:構(gòu)建損失函數(shù)fj,k,fj,k表示某個(gè)(j,k)組合下對特征集x進(jìn)行劃分并計(jì)算得到的損失,然后對特征變量劃分組合空間(j,k)進(jìn)行遍歷得到損失函數(shù)最小的(j,k)組合,作為構(gòu)建第一層回歸樹的依據(jù),其中Rm是輸入空間,cm是輸入空間對應(yīng)的輸出值。
(1)
Step 3:用給定的(j,k)對劃分區(qū)域并求出相應(yīng)的輸出值cm·Nm為對應(yīng)劃分區(qū)域內(nèi)的樣本個(gè)數(shù)。
R1(j,k)={x|xj≤k},R2(j,k)={x|xj≤k},
(2)
(3)
Step 4:構(gòu)建第一層決策樹,利用上一步結(jié)果求出cm,得到第一層決策樹T1。
(4)
(5)
Boosting方法屬于集成學(xué)習(xí)(ensemble learning)的一種,實(shí)質(zhì)上是基于多個(gè)基分類器對訓(xùn)練集的判斷,通過加法模型將這些基分類器組合得到最終的強(qiáng)學(xué)習(xí)器的過程。對于一類弱可學(xué)習(xí)的二分類樣本S={(x1,y1),…,(xi,yi),…,(xn,yn)},i=1,…,n,樣本中xi∈R,yi∈{-1,1}。我們使用Boosting方法將弱分類器通過加法模型組成強(qiáng)學(xué)習(xí)器。
(6)
Step 2:對于j=1,2,…,J,進(jìn)行(b)至(d)過程的迭代(J由最終構(gòu)建的分類器分類失誤率決定,最終分類無誤差時(shí)迭代過程結(jié)束)。
① 對于具有權(quán)值的分類樣本使用弱學(xué)習(xí)器(如Cart樹模型等)進(jìn)行學(xué)習(xí),得到基分類器Gj(x)。
Gj(x)∈{-1,1}。
(7)
② 計(jì)算分類誤差率ej。
(8)
分類誤差率反映了每一代分類器的分類效果,由每個(gè)數(shù)據(jù)樣本的分類結(jié)果和數(shù)據(jù)對應(yīng)的權(quán)重之積累加而成,其中I()為指示函數(shù),括號(hào)中的內(nèi)容為真,則返回1,反之則返回0。這一步旨在突出被分類器誤分類的樣本點(diǎn),樣本被誤分類時(shí)對應(yīng)的權(quán)值會(huì)增大,反之則減小。
③ 計(jì)算分類器的權(quán)重系數(shù)αj。
(9)
對于一個(gè)弱可學(xué)習(xí)的樣本,ej≤0.5,αj隨著ej的減小而增大,保證了分類誤差率越小的學(xué)習(xí)器在最終決策中的影響力越大,使學(xué)習(xí)結(jié)果能夠收斂。
④ 更新樣本S的權(quán)重矩陣。
(10)
Dj+1=[wj+1,1,…,wj+1,i,…wj+1,n]。
(11)
Step 3:構(gòu)建分類器的線性組合函數(shù)f(x)。
(12)
上述過程可用如圖1所示的流程圖形象描述。
圖1 Boosting過程Fig.1 Boosting process
GBDT(梯度提升樹)屬于集成學(xué)習(xí)中Boosting家族范疇內(nèi)的一員,其學(xué)習(xí)機(jī)理為通過迭代的方式構(gòu)建m棵子決策樹h(x;a1),…,h(x;am),最后通過加法模型和Boosting方法將它們組合成最終的GBDT模型。其中第n棵子樹的表達(dá)式為
Fn(x)=Fn-1(x)+vβnh(x:an),
(13)
式中,F(xiàn)n-1(x)代表第1棵子樹到第n-1棵子樹的累加之和;βn代表第n棵子樹的權(quán)重;v(v∈(0,1))代表步長。
Step 1:初始化學(xué)習(xí)器。
(14)
Step 2:對于m=1,…,M(M表示迭代次數(shù),即弱學(xué)習(xí)器的數(shù)量)不斷迭代分類器。
① 計(jì)算損失函數(shù)的負(fù)梯度在當(dāng)前模型的值并將它作為殘差的估計(jì)值。
(15)
③ 通過線性搜索的方式計(jì)算j=1,2,…,J每個(gè)葉子節(jié)點(diǎn)最佳的擬合值。
(16)
④ 更新回歸樹
(17)
Step 3:得到最終的強(qiáng)學(xué)習(xí)器。
(18)
Catboost總體算法框架與GBDT一致,但是在處理類別特征、Boosting方式以及決策樹生長評(píng)分方面作了比較大的改進(jìn)。這三個(gè)改進(jìn)令Catboost能夠有效地處理字符串特征,并且相同數(shù)據(jù)規(guī)模下的模型擬合速度要快于Xgboost和LGBM。
① 類別特征
Catboost的基礎(chǔ)仍是提升樹,與傳統(tǒng)的梯度提升樹不同的是Catboost在處理類別特征時(shí),沒有簡單地采用基于貪婪目標(biāo)統(tǒng)計(jì)的方法進(jìn)行分裂節(jié)點(diǎn)的選擇。而是創(chuàng)造性地在計(jì)算節(jié)點(diǎn)增益時(shí)考慮先驗(yàn)分布項(xiàng),有效地排除了類別變量中低頻率特征和噪聲對生成決策樹帶來的影響。
(19)
式中,σj為第j數(shù)據(jù);xi,k表示訓(xùn)練集中第i行數(shù)據(jù)的第k列離散特征;a是一個(gè)先驗(yàn)權(quán)重;p是先驗(yàn)分布項(xiàng)(對于回歸問題而言,先驗(yàn)項(xiàng)一般取訓(xùn)練集中預(yù)測標(biāo)簽的均值;對于二分類問題而言,先驗(yàn)項(xiàng)取值為正例也就是為1的項(xiàng)的先驗(yàn)概率);這里的[]為指示函數(shù),滿足內(nèi)部條件則輸出1,否則輸出0。
通過改進(jìn)后的TS方法,Catboost能夠在信息損失最小化的情況下將類別特征轉(zhuǎn)化為數(shù)值。
(2)排序提升(Ordered boosting)
傳統(tǒng)的GBDT模型采取的是無行列采樣的方式,所有的基學(xué)習(xí)器及即Cart決策樹是在一個(gè)完整的數(shù)據(jù)集上進(jìn)行梯度提升的,每次迭代都使用上一輪樹的負(fù)梯度進(jìn)行訓(xùn)練。這樣會(huì)導(dǎo)致預(yù)測偏差(bias)不斷累積和過擬合(over fitting)的現(xiàn)象。Xgboost和微軟開發(fā)的LGBM采用了行列采樣和正則化的處理降低了過擬合的效應(yīng)。Catboost更進(jìn)一步提出了Ordered boosting方法。算法偽代碼如下:
Algorithm:Orderedboosting
ordered according to σ,the numbers of trees I
σ←randompermutationof[1,n]
Mi←0fori=1ton
foriter← 1toIdo
fori← 1tondo
forj← 1toi-1do
M←learnatree(Xj,gj)
Mi←Mi+M
returnM1,M2,…,Mn
圖2 完全對稱樹ODT的結(jié)構(gòu)Fig.2 Structure of complete tree ODT
其中,σ是訓(xùn)練集隨機(jī)排序的次數(shù);I為需要生成對稱決策樹的數(shù)量也就是學(xué)習(xí)器的個(gè)數(shù)。
③ 快速評(píng)分
Catboost使用完全對稱樹(oblivious decision trees,ODT)作為基學(xué)習(xí)器,它的結(jié)構(gòu)如圖2所示,與一般決策樹不同的是,完全對稱樹對于相同深度的內(nèi)部節(jié)點(diǎn),分裂時(shí)選擇的特征以及特征閾值是完全一致的。所以完全對稱樹也可以變換成具有2^d條目的決策表格,d表示決策樹的層數(shù)。這種結(jié)構(gòu)的決策樹更加平衡并且特征處理速度遠(yuǎn)快于一般的決策樹。此外,通過將浮點(diǎn)特征,統(tǒng)計(jì)信息(用戶id等)、獨(dú)熱編碼特征統(tǒng)一用二進(jìn)制處理,模型的大大減少了調(diào)參需求。
④ 特征重要度排序
Catboost不僅有較高的預(yù)測精度,而且同時(shí)能夠能夠甑別不同影響因子(即預(yù)測所使用特征)對預(yù)測結(jié)果的相對貢獻(xiàn)度,某個(gè)特征在單棵決策樹中的相對貢獻(xiàn)度用以下公式衡量。
(20)
式中,M為迭代次數(shù)(樹的數(shù)量);Jj2代表特征j的全局重要度。
(21)
式中,L為樹的葉子節(jié)點(diǎn)數(shù)量;L-1為樹的非葉子節(jié)點(diǎn)數(shù)量;vt是和節(jié)點(diǎn)t相關(guān)聯(lián)的特征;it2是節(jié)點(diǎn)t分裂之后平方損失的減少值,it2減少的越多說明此次分裂的收益越大,意味著此特征對于所屬節(jié)點(diǎn)的特征重要度越高。
隨著互聯(lián)網(wǎng)和各種檢測技術(shù)的發(fā)展,在交通領(lǐng)域運(yùn)用多源客流數(shù)據(jù)進(jìn)行客流預(yù)測和分析逐漸成為一種趨勢。這些多源數(shù)據(jù)可能包含數(shù)個(gè)到數(shù)十個(gè)離散和連續(xù)的特征,單一機(jī)器學(xué)習(xí)模型對這類多源數(shù)據(jù)的處理效果很難達(dá)到極致。為了更充分地發(fā)揮這些模型本身的潛力,本文需要使用某種方法對多源客流數(shù)據(jù)進(jìn)行處理,使得不同特征狀態(tài)下的客流具有更加明顯的差異。堆疊(stacking)方法是一種采用多層次的模型進(jìn)行特征生成和模型融合的方法,通常采用數(shù)個(gè)基模型作為第一層的輸入,將輸出的預(yù)測結(jié)果作為新特征加入到第二層模型的特征矩陣中,最后使用次級(jí)模型進(jìn)行預(yù)測,以期得到更高的預(yù)測精度。理論上stacking的層數(shù)沒有限制,但是超過兩層后繼續(xù)stacking的效果十分有限。Stacking的流程如圖3所示。
圖3 Stacking過程Fig.3 Stacking process
首先,將原始數(shù)據(jù)集按照一定的比例劃分為訓(xùn)練集和測試集。其次,利用5折交叉驗(yàn)證的方式使用基模型對訓(xùn)練集的5個(gè)部分分別進(jìn)行預(yù)測。最后再對測試集進(jìn)行預(yù)測。經(jīng)歷這樣的5次“訓(xùn)練-預(yù)測”過程后,得到了圖中的“預(yù)測1-預(yù)測5”和5個(gè)測試集的預(yù)測結(jié)果。將“預(yù)測1-預(yù)測5”按照對應(yīng)的順序組合,并把測試集的5次預(yù)測結(jié)果均值求出來,最后合并為一列新的列向量,作為新特征添加原始數(shù)據(jù)中。若采用的基模型不止一個(gè),則重復(fù)上述過程,不斷生成新的特征。接下來使用第二層模型作為次級(jí)模型,對基模型產(chǎn)生的結(jié)果進(jìn)行訓(xùn)練并得到測試集的最終預(yù)測結(jié)果。
在Stacking方法中,采用的基模型數(shù)量沒有限制。但是更多基模型意味著總體模型的訓(xùn)練時(shí)間將會(huì)大大增加。此外不同基模型之間要有差異化并且預(yù)測能力要大體相近,否則stacking之后第二層模型的預(yù)測精度可能反而低于單獨(dú)使用某一種模型時(shí)的預(yù)測精度。基于上述考慮,本文使用了的LSTM和RF作為本文雙層堆疊的基模型。分別對兩種模型進(jìn)行stacking 操作,使用第二層的Catboost模型對新數(shù)據(jù)進(jìn)行預(yù)測和分析,得到最終的結(jié)果。
本文所選用數(shù)據(jù)集為廣州市104路和565路的小時(shí)公交客流數(shù)據(jù),如圖1所示。104路選用的數(shù)據(jù)集為6至8月份刷卡數(shù)據(jù),565路選用的數(shù)據(jù)集為10至12月刷卡數(shù)據(jù)。兩條線路均保留最后一天作為測試集。均保留廣州市104路公交起點(diǎn)在中山八路總站,終點(diǎn)為海印橋總站,全長8.8 km。565路則以大學(xué)城總站為起點(diǎn)、穗鹽路總站為終點(diǎn),兩條路線具體位置如下所示:
(a) 104路
(b) 565路
表1 104、565路客流情況Tab.1 Passenger flow of 104 and 565
對于某一個(gè)城市,影響公交客流的外部性因子有很多,但總體而言可以分為3類。
第一類是時(shí)間性指標(biāo)。眾所周知,公交客流隨著時(shí)間的變化呈現(xiàn)明顯的潮汐性波動(dòng)。在一天中不同時(shí)段,不同季節(jié)公交客流的變化都會(huì)呈現(xiàn)不同的規(guī)律。
第二類是天氣指標(biāo),分別有日最高溫度、日最低溫度、降雨量等級(jí)以及空氣指數(shù)等因素,這類指標(biāo)會(huì)對某段時(shí)間公交客流變化趨勢造成持續(xù)性影響,特別是會(huì)對非通勤類交通需求所屬的那部分客流產(chǎn)生較大的影響。
第三類是節(jié)假日指標(biāo),包括是否雙休日、是否法定節(jié)假日等。中國的一些重大節(jié)假日(五一勞動(dòng)節(jié)、國慶節(jié)等3 d以上的長假)會(huì)對某個(gè)地區(qū)的公交客流造成重大影響,使部分線路的公交客流斷崖式下跌或爆發(fā)性增長,對原有的客流變化規(guī)律產(chǎn)生巨大的擾動(dòng)。這些因素通常會(huì)為公交客流預(yù)測帶來很大的難度。
本文針對選用的廣州市兩條公交客流數(shù)據(jù),分別從時(shí)間、天氣和節(jié)假日類因素考慮,選用了共10種和公交客流波動(dòng)密切相關(guān)的特征進(jìn)行分析。這些特征及具體含義見表2。
表2 公交客流特征名稱及含義Tab.2 Name and meaning of characteristics of bus passenger flow
本文的研究思路和模型總體框架如圖5所示。第一部分是數(shù)據(jù)預(yù)處理過程,將原始公交客流數(shù)據(jù)經(jīng)過清洗和特征提取后進(jìn)行標(biāo)準(zhǔn)化處理,并劃分為訓(xùn)練集和測試集。第二部分是利用Stacking方法提取新特征,并將產(chǎn)生的強(qiáng)關(guān)聯(lián)特征添加到特征部分,生成新的數(shù)據(jù)集。第三部分是使用Catboost方法對新數(shù)據(jù)集進(jìn)行預(yù)測,得到最終的預(yù)測結(jié)果,然后與幾種常用的機(jī)器學(xué)習(xí)算法進(jìn)行對比,驗(yàn)證本文提出模型的優(yōu)越性。
圖5 總體框架Fig.5 Overall framework
在本項(xiàng)研究中,為了獲得較好的預(yù)測效果,需針對預(yù)測數(shù)據(jù)集進(jìn)行超參數(shù)優(yōu)化,尋找與本項(xiàng)研究所使用數(shù)據(jù)最佳的參數(shù)組合。本文選用了3個(gè)超參數(shù):C(最大樹深度)、M(基學(xué)習(xí)器數(shù)量)和ε(學(xué)習(xí)率)對模型進(jìn)行優(yōu)化,具體參數(shù)見表3。本文將所使用數(shù)據(jù)集劃分為訓(xùn)練集和預(yù)測集兩部分.首先使用訓(xùn)練集進(jìn)行超參數(shù)優(yōu)化,得到最佳參數(shù)組合。然后使用測試集檢驗(yàn)?zāi)P托阅?。本文通過構(gòu)建初始參數(shù)空間并利用網(wǎng)格搜索的方法對參數(shù)空間進(jìn)行網(wǎng)格搜索找到最優(yōu)參數(shù)組合。
表3 超參數(shù)描述Tab.3 Hyperparametric description
為了更好地發(fā)揮Catboost模型性能,需要對上述3個(gè)參數(shù)進(jìn)行網(wǎng)格搜索優(yōu)化。同時(shí),為了避免優(yōu)化后的參數(shù)組合在訓(xùn)練集中過擬和,本文使用5折交叉驗(yàn)證的方式計(jì)算不同參數(shù)組合下模型的測試分?jǐn)?shù)。最后選擇測試分?jǐn)?shù)最高的那組參數(shù)建立模型。
(a) 學(xué)習(xí)率=0.008
(b) 學(xué)習(xí)率 =0.01
(c) 學(xué)習(xí)率 =0.02
(d) 學(xué)習(xí)率 =0.05
調(diào)參結(jié)果的平均測試分?jǐn)?shù)隨著不同的“最大樹深度”、“學(xué)習(xí)器數(shù)量”以及“學(xué)習(xí)率”三個(gè)參數(shù)變化的情況如圖6所示,從圖6中可以看出“最大樹深度”對模型的預(yù)測精準(zhǔn)度影響最大。對于104路而言,當(dāng)“最大樹深度”由2上升到3時(shí),模型的測試分?jǐn)?shù)有了7%左右顯著的提高,但是隨著“最大樹深度”繼續(xù)增加到6,測試分?jǐn)?shù)只提高了不到2.5%,甚至有著略微的下降,并且565路也有著類似的表現(xiàn)。這表明應(yīng)根據(jù)問題的規(guī)模構(gòu)建決策樹的最大搜索深度,太小的“最大樹深度”會(huì)抑制決策樹向下分支,導(dǎo)致構(gòu)建的決策樹擬合效果不足;而足夠大的“最大樹深度”雖然能夠在訓(xùn)練集中很好地?cái)M合數(shù)據(jù)集,卻會(huì)造成“最大樹深度”catboost模型與訓(xùn)練集過擬合導(dǎo)致模型在測試集中泛化性能不足。而學(xué)習(xí)率從0.008增大到0.05時(shí)可以發(fā)現(xiàn),104和565兩條線路的模型達(dá)到收斂條件所需的“學(xué)習(xí)器數(shù)量”越來越少。并且當(dāng)學(xué)習(xí)率越小,模型的最優(yōu)測試分?jǐn)?shù)會(huì)略高一些。據(jù)此分析,學(xué)習(xí)率越小意味著“最大樹深度”catboost模型在梯度下降時(shí)的搜索步長越小,得到最優(yōu)的損失函數(shù)值的幾率越大,而學(xué)習(xí)率越大,錯(cuò)過最優(yōu)解的幾率就越大。然而,越小的“學(xué)習(xí)率”雖然能得到較好的訓(xùn)練分?jǐn)?shù),但是意味著要增加更多額外的樹和消耗更多的計(jì)算資源。因而學(xué)習(xí)率的實(shí)際選用因同時(shí)兼顧兩方面的因素。在“學(xué)習(xí)器的數(shù)量”和“學(xué)習(xí)率”之間找到一個(gè)平衡。對于兩條線路而言,隨著“學(xué)習(xí)器數(shù)量”的增加,不同“最大樹深度”和“學(xué)習(xí)率”下的測試分?jǐn)?shù)都有了一定的增加,直至模型充分?jǐn)M合,測試分?jǐn)?shù)基本平衡。
為了更好地顯示S-Catboost模型的預(yù)測性能和泛化能力,分別使用LSTM、RF、SVR和原始GBDT模型等4種預(yù)測模型進(jìn)行對比。本文采取相對指標(biāo)MAPE作為預(yù)測結(jié)果精度的評(píng)判標(biāo)準(zhǔn),將上述5種預(yù)測模型分別運(yùn)行50次,得到各個(gè)模型在分別在單步、雙步和三步預(yù)測條件下的日平均預(yù)測誤差分布情況并制成violin圖,圖7為5種不同模型在最優(yōu)參數(shù)條件下的預(yù)測精度、穩(wěn)定性情況。
(a) 步長=t-1
(b) 步長=t-2
(c) 步長=t-3
從圖7中可以看到5種模型在不同預(yù)測步長條件誤差離散程度,以此觀察不同模型的預(yù)測穩(wěn)定性。對于104路,顯而易見5種預(yù)測模型的預(yù)測精度呈現(xiàn)階梯狀分布。第一梯隊(duì)的模型有Stacking、GBDT,第二梯隊(duì)的模型有RF、LSTM,第三梯隊(duì)的模型有SVR。上述三個(gè)梯隊(duì)的模型不僅在預(yù)測精度方面存在明顯的差別,在預(yù)測誤差分布情況方面同樣如此。此外,GBDT類模型的預(yù)測精度要明顯優(yōu)于另外兩個(gè)梯隊(duì)的模型。值得一提的是,在時(shí)間步長由1增加到3時(shí),S-Catboost較傳統(tǒng)GBDT模型的預(yù)測精度都有所領(lǐng)先,特別是對于客流數(shù)據(jù)相對不平滑的565路。盡管隨著時(shí)間步長的增大,這種精度上的優(yōu)勢逐漸縮小。這仍然能夠顯示S-Catboost對處理多源數(shù)據(jù)的進(jìn)一步挖掘能夠有效地降低預(yù)測誤差以及抵抗時(shí)間步長增大對預(yù)測的不利影響。
對于565路,情況與104路略有不同。565路5種模型的預(yù)測誤差呈現(xiàn)為兩個(gè)層次:SVR模型和其他模型。在3種預(yù)測步長下,SVR模型因?yàn)?65路本身的數(shù)據(jù)波動(dòng)而表現(xiàn)遠(yuǎn)不如其他幾種模型.更多的是,565路LSTM模型多次運(yùn)行的結(jié)果遠(yuǎn)不如104路穩(wěn)定,這一點(diǎn)極大概率是由于565路的測試集中第23個(gè)小時(shí)的小時(shí)客流只有106人,LSTM對這個(gè)小時(shí)的預(yù)測極不穩(wěn)定。造成上四分位數(shù)、下四分位數(shù)差值達(dá)到了15%以上。
在利用S-Catboost模型對短時(shí)公交客流進(jìn)行預(yù)測時(shí),我們不僅關(guān)注它在預(yù)測性能方面的高精度和穩(wěn)定性,更關(guān)心各種影響因子對公交客流預(yù)測的全局重要性。了解不同影響因子在實(shí)際客流變化中所起的貢獻(xiàn)度在現(xiàn)實(shí)客流預(yù)測場景中極為重要。相關(guān)部門可根據(jù)實(shí)際客流情況尋找到最適合的影響因子組合,提高客流預(yù)測的效率。
表4 影響因子重要度排序Tab.4 Importance ranking of influence factors
影響因子重要度排序見表4,從表4可以看到,整體而言,無論是104路或者565路時(shí)間類變量對預(yù)測客流的貢獻(xiàn)度要大于天氣類因素。具體來看,對于104路和565路影響最大的變量為“一天中小時(shí)”,它的貢獻(xiàn)度分別是62.81%和91.10%。這一點(diǎn)驗(yàn)證了歷史小時(shí)客流數(shù)據(jù)在客流預(yù)測中無可替代的作用。這是因?yàn)閷τ谝粭l公交線路,客流的波動(dòng)和一天中的時(shí)間變化息息相關(guān),客流變化呈現(xiàn)明顯的周期性。除了時(shí)間因素,我們可以看到,節(jié)假日類因素“是否節(jié)假日”在104、565路客流預(yù)測中的重要度均在前4以內(nèi)。這說明節(jié)假日因素在客流變化中的地位也十分重要。與“一天中小時(shí)”不同,節(jié)假日類變量影響通常在周及以上的時(shí)間跨度才會(huì)比較明顯的體現(xiàn)。除了固定的周末節(jié)假日,還有眾多時(shí)間不固定的特殊節(jié)假日,在這些節(jié)假日時(shí)間段內(nèi),公交線路的客流與相鄰時(shí)間區(qū)間通常有較大的差異,對于公共交通部門進(jìn)行客流預(yù)測和分析時(shí)考慮這個(gè)因素至關(guān)重要。除了節(jié)假日和時(shí)間類因素,我們同樣對天氣因素對客流預(yù)測的影響感興趣,對于104路,“最高溫”對客流的影響因子為12.90%,位居第二,并且遠(yuǎn)高于565路,因?yàn)?04路的數(shù)據(jù)在4至6月搜集,白天的炎熱程度對居民出行方式選擇影響巨大,565路的數(shù)據(jù)主要集中在冬季,氣溫的影響相對要小得多。廣州夏季十分炎熱,一天中的“最高溫”過高會(huì)使通勤客流轉(zhuǎn)乘地鐵的比例升高,并且極端高溫會(huì)使乘客可忍受候車時(shí)間變短,進(jìn)而降低公交乘客的出行欲望。降雨量對通勤客流影響較小,主要影響的是娛樂、購物等客流的出行情況,由于這兩條線路的通勤客流比例都較高,導(dǎo)致降雨量對總體客流的影響并不明顯。
除了對不同特征對預(yù)測結(jié)果的重要度進(jìn)行排序,我們還關(guān)注這些不同類別的特征對預(yù)測標(biāo)簽的內(nèi)源性影響,本文使用偏效應(yīng)項(xiàng)(即將其他影響因素邊緣化之后,考慮其中某個(gè)單一特征的變化對預(yù)測目標(biāo)的變化趨勢所造成的影響)對不同特征進(jìn)行偏效應(yīng)分析??紤]文章篇幅,對4.3節(jié)中特征重要度排序種篩選出的貢獻(xiàn)度比較高的幾個(gè)影響因子做了偏效應(yīng)分析,具體結(jié)果如圖8、圖9所示。
圖8 104路幾個(gè)影響因子的偏效應(yīng)Fig.8 Partial effect of influence factors on line 104
圖9 565路幾個(gè)影響因子的偏效應(yīng)Fig.9 Partial effect of influence factors on line 565
圖8和圖9是從104路和565路公交客流數(shù)據(jù)特征數(shù)據(jù)集中選取的6個(gè)對客流變化影響較為顯著的特征標(biāo)簽。
從圖8可以看到,特征“一周中第幾天”由0變?yōu)?、由4轉(zhuǎn)為變?yōu)?時(shí)偏效應(yīng)指標(biāo)都出現(xiàn)了明顯的上升,與104路客流周變圖中的兩個(gè)上下班高峰相吻合。而一天中“最高溫”由13 ℃升到15 ℃時(shí),偏效應(yīng)值從15急劇上升到0.19,隨著“最高溫”一路增加到27 ℃,偏效應(yīng)也開始緩慢地上升,27 ℃之后偏效應(yīng)指標(biāo)隨著“最高溫”的上升反而呈現(xiàn)下降的趨勢,表明對于104路客流15~27 ℃是一個(gè)比較適合出行的溫度區(qū)間,超出這個(gè)區(qū)間,乘客出行欲望會(huì)降低。最低溫在4~10 ℃和12~14 ℃偏效應(yīng)維持較為平穩(wěn),在“最低溫”在10 ℃和14 ℃處繼續(xù)升高時(shí)偏效應(yīng)都發(fā)生了突變,顯示出10~14 ℃的“最低溫”范圍對乘客是否出行影響較大。當(dāng)發(fā)生下雨和放假的情況時(shí),偏效應(yīng)都明顯降低,說明發(fā)生上述事件時(shí)乘客的出行會(huì)明顯減少?!耙惶熘行r(shí)”引起的偏效應(yīng)變化與客流時(shí)變圖趨勢一致,上午8-9時(shí)和下午5-6時(shí)為偏效應(yīng)的兩個(gè)最高點(diǎn),同時(shí)也是客流出行的兩個(gè)尖峰時(shí)段。最后,隨著“空氣指數(shù)”指數(shù)從輕度污染變?yōu)橹卸任廴?,它對預(yù)測客流的偏效應(yīng)開始由3變?yōu)?10,顯示出“空氣指數(shù)”指數(shù)總體上對客流影響比較輕微,只有空氣質(zhì)量下降到一定程度,公交客流才會(huì)受到影響565路在這一點(diǎn)的情況與104路類似。
圖9中,“一周中第幾天”在值由0變?yōu)?和4變?yōu)?,即周一上午和周五下午這兩個(gè)時(shí)間點(diǎn)偏效應(yīng)都發(fā)生了明顯的正向突變,并且變化的數(shù)值區(qū)間要低于104路客流狀況,可能是因?yàn)?04路的通勤客流比例要高于565路。隨著“最高溫”由13 ℃升到31 ℃,偏效應(yīng)也隨著近似線性增大。而“最低溫”在4~9 ℃偏效應(yīng)在4.3附近保持平穩(wěn),在最低溫升高到10 ℃時(shí)偏效應(yīng)突然下降到-2,隨后“最低溫”逐漸升高時(shí)偏效應(yīng)的值持續(xù)增大到3。出現(xiàn)節(jié)假日和下雨兩種情況時(shí),565路客流偏效應(yīng)的變化情況與104路保持一致。此外,“一天中小時(shí)”對565路客流的影響與104路相同,都呈現(xiàn)兩個(gè)駝峰的態(tài)勢,但是由于104路客流量明顯高于565路,104路的“一天中小時(shí)”對偏效應(yīng)的影響在數(shù)值上要遠(yuǎn)遠(yuǎn)高于565路。
本文主要研究了一種基于雙層堆疊模型的短時(shí)公交客流預(yù)測算法。討論了幾種不同的機(jī)器學(xué)習(xí)學(xué)習(xí)算法在各種情況下的預(yù)測性能,對比情況顯示了基于stacking的S-Catboost模型在預(yù)測精度和穩(wěn)定性上的優(yōu)勢,說明了S-Catboost模型在公交客流預(yù)測領(lǐng)域有著明顯的應(yīng)用前景。
此外,S-Catboost相比于目前其他主流的機(jī)器學(xué)習(xí)算法,更大的優(yōu)勢在于對公交多源特征的挖掘,通過深入探索公交客流波動(dòng)有關(guān)的影響因子與預(yù)測目標(biāo)的關(guān)系,極大地提高預(yù)測模型的精準(zhǔn)性。不同于神經(jīng)網(wǎng)絡(luò)的黑箱式擬合過程,S-Catboost對預(yù)測結(jié)果的可解釋性很好同時(shí)決策樹的決策結(jié)果能夠?qū)@些影響因子進(jìn)行重要性排序和偏效應(yīng)分析。