焦朋朋,安 玉,2,白紫秀,林 坤,3
(1. 北京建筑大學(xué) 北京未來城市設(shè)計高精尖創(chuàng)新中心,北京 100044; 2. 北京市市政工程設(shè)計研究總院有限公司,北京 100082; 3. 福州市規(guī)劃設(shè)計研究院集團有限公司,福建 福州 350000)
目前已有較多模型方法用于短時交通流預(yù)測,主要包括:基于統(tǒng)計分析的方法、非線性理論的方法、仿真的方法、人工智能領(lǐng)域的方法以及組合模型的方法。傳統(tǒng)的基于時間序列的研究方法是利用差分自回歸移動平均(ARIMA)[1]。隨著交通流數(shù)據(jù)采集設(shè)備的升級和計算機計算能力的提升,應(yīng)用神經(jīng)網(wǎng)絡(luò)等復(fù)雜的機器學(xué)習(xí)模型進行高精度的交通流預(yù)測成為可能,特別是基于循環(huán)神經(jīng)網(wǎng)絡(luò)的LSTM模型[2]在短時交通流預(yù)測中獲得廣泛應(yīng)用。隨著研究的深入,模型的預(yù)測精度逐漸提高,但模型復(fù)雜度也越來越高。
J.WANG等[3]假設(shè)在一個預(yù)測周期內(nèi),交通流僅與前幾個周期的交通流相關(guān),運用自回歸綜合移動平均、卡爾曼濾波和反向傳播神經(jīng)網(wǎng)絡(luò)的方法,建立新的貝葉斯模型,達到了更好的預(yù)測結(jié)果;羅文慧等[4]結(jié)合卷積神經(jīng)網(wǎng)絡(luò)與支持向量回歸分類器,達到精準且快速的短時交通流預(yù)測的目的;Y .TIAN等[5]針對檢測器的缺陷導(dǎo)致的采樣不規(guī)則和缺少數(shù)據(jù)的問題,提出了一種基于LSTM的方法,采用多尺度時平法來推斷丟失的數(shù)據(jù),得到較高預(yù)測精度的結(jié)果;S .CHENG 等[6]認為在交通流預(yù)測時只考慮指定時間段內(nèi)相鄰路段之間的相關(guān)性,很難取得穩(wěn)定的結(jié)果,提出了自適應(yīng)時空K近鄰模型,根據(jù)自適應(yīng)空間鄰域、時間窗口、時空權(quán)重等參數(shù),綜合考慮城市交通的空間異質(zhì)性;廖榮華等[7]使用改進鄰近相點選取的混沌時間序列局域法對交通數(shù)據(jù)進行了分析預(yù)測并取得了較高的精度;康軍等[8]對預(yù)測的不確定性進行定量分析,提出基于高斯過程回歸的短時交通流預(yù)測方法,可得到預(yù)測值的方差估計值以及95%置信區(qū)間。
深度學(xué)習(xí)的興起再度為交通流預(yù)測提供了新的思路。CNN和RNN及其衍生模型均在深度學(xué)習(xí)[9]中具有廣泛的應(yīng)用,并有突出的效果;王祥雪等[10]在深度學(xué)習(xí)的理論框架下,構(gòu)建基于 LSTM-RNN的城市快速路短時交通流預(yù)測模型,利用交通流的時空相關(guān)性完成時間序列的重構(gòu);S .DENG等[11]利用交通流的時空流量關(guān)系構(gòu)造二維圖卷積神經(jīng)網(wǎng)絡(luò),將時間序列分析問題轉(zhuǎn)化為圖像分析任務(wù),預(yù)測結(jié)果得到較高的精度;S.GUO[12]針對空間和時間的關(guān)聯(lián)性和異質(zhì)性,提出3D 圖卷積神經(jīng)網(wǎng)絡(luò),捕獲流量數(shù)據(jù)的相關(guān)性提高精度。但是,深度學(xué)習(xí)方法受參數(shù)選擇影響較大,工作量大,計算時間長;Q. HOU等[13]考慮到交通流的周期性和變異性和單個預(yù)測模型的局限性,提出一種自適應(yīng)的短時交通流混合預(yù)測模型,采用ARIMA和非線性小波神經(jīng)網(wǎng)絡(luò)(WNN)將兩個模型輸出進行模糊邏輯分析和組合,對交通流進行預(yù)測;與此同時,E. I .VLAHOGIANNI等[14]提出目前在短時交通流預(yù)測研究的探索之中,對于模型方法的選擇要注重模型的解釋力、方法的合理性、提高數(shù)據(jù)的質(zhì)量、充分利用交通流數(shù)據(jù)的時間特性與空間相關(guān)性。當(dāng)前大多數(shù)預(yù)測方法的主要問題是精度和計算量的矛盾,精度高的預(yù)測方法一般計算量大,計算量小的預(yù)測方法精度不高,如何在計算量和精度之間取得平衡是一個關(guān)鍵[15]。
針對交通流預(yù)測問題中模型復(fù)雜度與預(yù)測精度的矛盾,筆者提出采用集成學(xué)習(xí)思想的XGboost方法進行短時交通流預(yù)測。集成學(xué)習(xí)的思想是:一個弱可學(xué)習(xí)的問題經(jīng)過多項式時間計算得到強可學(xué)習(xí)的問題。與神經(jīng)網(wǎng)絡(luò)模型[16-17]不同,為提升預(yù)測精度XGBoost集成多個CART決策樹的弱學(xué)習(xí)器,每個弱學(xué)習(xí)器以上一步的預(yù)測殘差作為逼近目標,加入正則項控制模型的復(fù)雜度以防止過擬合提高模型的泛化能力。XGboost方法具有可視化,適用于高維的樣本的特點,適用于交通流變化影響因素較多的情況。
采集設(shè)備硬件問題、車輛故障、不當(dāng)?shù)鸟{駛行為等會造成設(shè)備采集到的原始數(shù)據(jù)出現(xiàn)缺失和錯誤。因此,為了較好的預(yù)測效果需要對原始數(shù)據(jù)進行適當(dāng)?shù)娜笔?shù)據(jù)補全。
流量數(shù)據(jù)存在異常的0值,占有率數(shù)據(jù)存在異常的100%,速度數(shù)據(jù)存在異常的大于80 km/h,此類異常數(shù)據(jù)類似椒鹽噪聲。椒鹽噪聲是數(shù)字信號處理與數(shù)字圖像處理中常見的一種噪聲,它是一種隨機出現(xiàn)的白點或者黑點,對應(yīng)交通流數(shù)據(jù)的異常極大值、極小值。
因此,選取常用的中值濾波預(yù)處理椒鹽噪聲,其特點是將信號中的每個值都替換為其鄰域內(nèi)的中值,即鄰域內(nèi)所有值排序后中間位置的值。中值濾波的優(yōu)勢是仍能保留交通流的變化趨勢且減少數(shù)據(jù)噪聲導(dǎo)致的極大值、極小值,對脈沖噪聲有良好的濾除作用,特別是在濾除噪聲的同時,能夠保護信號的邊緣,使之不被模糊。
XGBoost的原理是構(gòu)造多個弱學(xué)習(xí)器,第1個基學(xué)習(xí)器擬合樣本數(shù)據(jù),擬合的誤差作為第2個基學(xué)習(xí)器的目標繼續(xù)擬合,以此類推,最后把所有基學(xué)習(xí)器累加,類似統(tǒng)計學(xué)上的殘差逼近,如式(1)。Boosting是減少偏置的模型組合方式,可以達到較高的預(yù)測精度。
(1)
從第t-1棵樹到第t棵樹目標函數(shù)為當(dāng)前預(yù)測結(jié)果Ft-1(xi)+ft(xi)與yi之間的差距,增加正則化項,得到XGBoost的目標函數(shù),如式(2):
(2)
式中:L[yi,Ft-1(xi)+ft(xi)]為真實值yi與近似函數(shù)Ft-1(xi)+ft(xi)的差距;Ω(ft)為正則項,表示樹的復(fù)雜度,用來避免過擬合,如式(3):
(3)
式中:γ為對整棵樹葉節(jié)點的正則,目的是用來控制葉節(jié)點的個數(shù),削弱每顆樹的權(quán)重,讓后面的樹有更大的學(xué)習(xí)空間;T為每棵樹葉子節(jié)點數(shù)量;λ為控制葉節(jié)點維度的正則;ω為葉子節(jié)點列向量;ωj為葉子節(jié)點j的權(quán)值。
對L[yi,Ft-1(xi)+ft(xi)]使用二階泰勒展開如式(4):
(4)
由于t-1輪的結(jié)果是已知的,可以不做考慮,簡化后目標函數(shù)如式(5):
(5)
進一步將正則化項展開并合并,且從n個樣本遍歷改至從葉子節(jié)點j遍歷,如式(6):
(6)
對式(6)求最小值可以得到ωj的最優(yōu)值和損失函數(shù)最小值,如式(7) 、式(8):
(7)
(8)
式(8)可以看作對決策樹不純度的衡量,也是作為樹節(jié)點分裂的依據(jù),即衡量節(jié)點在分裂前后式(6)對應(yīng)數(shù)值的大小用以判斷是否需要繼續(xù)分裂。
綜上所述,XGBoost的建樹過程、Boosting過程均是以目標函數(shù)為基礎(chǔ)進行的,一切操作的衡量標準均是最小化目標函數(shù),其采用的算法策略是貪心策略。由于引入了泰勒二階展開,建樹與Boosting的過程僅依賴于損失函數(shù)的一階導(dǎo)數(shù)與二階導(dǎo)數(shù),因此可以支持自定義損失函數(shù)。XGBoost優(yōu)勢是將正則項加入到了目標函數(shù)中,保證了每次的迭代均對模型的復(fù)雜度進行了對沖,有效降低了過擬合發(fā)生的可能性,此外支持并行處理、近似算法等,可提高模型的計算效率。
交通流的基本參數(shù)直接反映路段的交通狀態(tài),筆者將路段的流量作為預(yù)測目標進行研究,路段流量是指在第n時段內(nèi),通過觀測斷面的所有車輛數(shù)的累計。路段平均速度和平均占有率分別為第n時段內(nèi),通過觀測斷面的所有車輛的平均值,其計算方式如式(9):
(9)
模型數(shù)據(jù)集的特征包括上下游斷面流量、密度和時間占有率等參數(shù),均以固定5 min時間周期進行計算。
為更好分析計算結(jié)果,筆者選擇平均絕對誤差(MAE)、均方誤差(MSE)和決定系數(shù)(R2)作為模型的性能指標,如式(10)~式(12):
(10)
(11)
(12)
筆者利用XGBoost模型對路段流量進行預(yù)測。預(yù)測的基本思路是:提取斷面過車數(shù)據(jù),分析相鄰上游斷面上一時段的流量、速度及占有率數(shù)據(jù),進行斷面過車流量預(yù)測。具體步驟為:
步驟1將通過微波檢測設(shè)備得到的海量過車數(shù)據(jù),通過統(tǒng)計方法以一定的時間窗格對每個斷面統(tǒng)計其過車流量、速度及占有率,構(gòu)造多維時間序列。
步驟2對每個斷面的數(shù)據(jù)進行中值濾波處理,補全缺失數(shù)據(jù)并適當(dāng)降低數(shù)據(jù)的異常波動。
步驟3將濾波后數(shù)據(jù)劃分為訓(xùn)練集和測試集,訓(xùn)練集輸入XGBoost模型進行訓(xùn)練,使用交叉驗證的方法調(diào)整超參數(shù)以建立最優(yōu)的模型。
步驟4將測試集數(shù)據(jù)輸入模型得到斷面流量預(yù)測值,與其他短時交通流預(yù)測方法的預(yù)測值進行對比分析。
選取合肥市一段城市道路的過車數(shù)據(jù),數(shù)據(jù)源自O(shè)penITS的開源數(shù)據(jù)。合肥示范區(qū)位于經(jīng)濟技術(shù)開發(fā)區(qū)黃山路沿線,潮汐交通特征明顯。示范區(qū)范圍包括以下路段:黃山路、香樟大道、天柱路、科學(xué)大道、天智路和天湖路。示范區(qū)布設(shè)有微波交通流檢測設(shè)備。微波檢測數(shù)據(jù)包括編號、設(shè)備類型、設(shè)備編號、采集時間、時間占有率等多個字段信息,數(shù)據(jù)詳情如表1。
表1 交通流原始數(shù)據(jù)統(tǒng)計內(nèi)容匯總Table 1 Summary of statistical content of original traffic flow data
其中,設(shè)備編號DETECT_ID與路網(wǎng)交叉口的對應(yīng)關(guān)系如圖1,微波檢測設(shè)備主要檢測主路的4個車道,并實時返回交通流數(shù)據(jù)。其中,由于采集設(shè)備硬件問題、車輛故障、不當(dāng)?shù)鸟{駛行為等造成設(shè)備采集到的原始數(shù)據(jù)出現(xiàn)缺失和錯誤共占比3.7%,且異常數(shù)據(jù)不存在大段數(shù)據(jù)缺失問題。
圖1 設(shè)備編號DETECT_ID的位置示意Fig. 1 Location diagram of device DETECT_ID
將原始數(shù)據(jù)處理成以5 min為周期的時間序列數(shù)據(jù)。使用python的pandas庫對原始數(shù)據(jù)計算流量、速度、占有率的時間序列。以1號斷面的qt流量數(shù)據(jù)為預(yù)測目標(根據(jù)交通流的空間相關(guān)性,模型輸入選擇1號、4號、7號、8號斷面上一時段流量qt-1、速度Vt-1、占有率Ot-1數(shù)據(jù)。選擇2016年7月1日—2016年7月5日數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),選擇7月6日數(shù)據(jù)作為測試數(shù)據(jù)。
利用Scipy庫中signal 對原始數(shù)據(jù)進行中值濾波平滑處理,處理前后時間序列數(shù)據(jù)對比如圖2,可以看出濾波后異常值明顯減少,更加能滿足模型的需要。
圖2 濾波前后數(shù)據(jù)對比Fig. 2 Data comparison before and after filtering
為判斷模型的輸入數(shù)據(jù)時間和1號、4號、7號、8號斷面流量、速度、占有率數(shù)據(jù)之間的相關(guān)性,繪制相關(guān)系數(shù)熱力圖如圖3(特征前數(shù)字為卡口編號)??梢钥闯鲇捎跀嗝骈g距較小,以5 min為周期的時間序列數(shù)據(jù)間相關(guān)性偏低,可以作為模型的輸入。
圖3 特征間的相關(guān)性Fig. 3 Correlation between features
模型參數(shù)是模型內(nèi)部的配置變量,可以用樣本數(shù)據(jù)估計它的取值,而模型超參數(shù)是模型外部的配置,其值不能從樣本數(shù)據(jù)估計得到,需要針對目標問題通過反復(fù)試驗確定其最優(yōu)取值。
模型的復(fù)雜度受數(shù)據(jù)規(guī)模的影響,模型復(fù)雜、數(shù)據(jù)較少會導(dǎo)致過擬合,模型簡單、數(shù)據(jù)較多會導(dǎo)致欠擬合,都會影響模型的預(yù)測效果。XGBoost有較多的超參數(shù),這些超參數(shù)可以控制模型的規(guī)模,用來表征其復(fù)雜程度。
筆者采用交叉驗證的方法,確定數(shù)據(jù)規(guī)模對應(yīng)的模型復(fù)雜程度。利用Scikit-learn庫包建立模型以及交叉驗證,以損失函數(shù)為評價指標選擇最優(yōu)超參數(shù)取值。其中最小葉子節(jié)點權(quán)重與決策樹最大深度的取值示意如圖4。
圖4 超參數(shù)最佳取值Fig. 4 Best value of super-parameter
除最小葉子節(jié)點權(quán)重與決策樹最大深度外,XGBoost模型也支持正則化項、學(xué)習(xí)率、特征重采樣和樣本重采樣等。模型利用交叉驗證方法確定的超參數(shù)取值匯總?cè)绫?。
表2 超參數(shù)最佳取值匯總Table 2 Summary of super-parameter best value
特征重要度可以反映模型的預(yù)測值受其輸入特征之間的映射關(guān)系,表征不同特征在預(yù)測時的重要程度,統(tǒng)計此模型的特征重要度如圖5。
圖5 特征重要度匯總Fig. 5 Summary of feature importance
從圖5中可以看出各項特征均對預(yù)測模型造成一定影響,充分利用各項特征能達到提升預(yù)測精度的目的,反映出交通流時間序列的時間特性以及空間相關(guān)性對預(yù)測目標精度的重要性。
為評估中值濾波處理對原始數(shù)據(jù)的清洗效果,以及對比XGBoost與LSTM對交通流數(shù)據(jù)空間相關(guān)性和時間相關(guān)性的利用效果,評估XGBoost與其他交通流預(yù)測常用方法的預(yù)測水平。
匯總不同方法在是否中值濾波進行訓(xùn)練與預(yù)測后,性能指標情況與模型訓(xùn)練時間對比情況如表3。其中XGBoost累積交叉驗證確定模型超參數(shù)以及訓(xùn)練過程的時間為40.57 s,而確定超參數(shù)取值后單次訓(xùn)練的時間僅為0.045 s。神經(jīng)網(wǎng)絡(luò)模型的超參數(shù)學(xué)習(xí)率默認為0.01,epochs為50,batch為144。LSTM模型前2層LSTM神經(jīng)元維數(shù)為12、64;第3層全連接層維數(shù)64;GRU模型前2層LSTM神經(jīng)元維數(shù)為12、64,第3層全連接層維數(shù)為64;SAEs模型隱含層全連接層,維數(shù)分別為12、400、400、400;ARIMA模型,自回歸項p的取值為3,非季節(jié)性差異數(shù)d的取值為1,預(yù)測方程滯后預(yù)測q的取值為1。
根據(jù)表3結(jié)果分析如下:
1)對比表3中值濾波前后預(yù)測精度可以看出:中值濾波處理后原始數(shù)據(jù)的異常波動有明顯降低,使LSTM的預(yù)測精度提升3.8%,使XGBoost的預(yù)測精度提升5.5%。
表3 濾波前后不同方法性能指標與訓(xùn)練時長對比Table 3 Comparison of performance indexes and training durationof different methods before and after filtering
2)對比XGBoost與其他短時交通流預(yù)測方法的訓(xùn)練時間可以看出,在預(yù)測精度水平相差不大情況下,XGBoost模型具有較高的計算速度,扣除因交叉驗證確定超參數(shù)而花費的時間,即訓(xùn)練數(shù)據(jù)集確定后超參數(shù)也即確定,可認為文中模型訓(xùn)練時間相比神經(jīng)網(wǎng)絡(luò)模型速度快得多。
3)對比表3可以看出:神經(jīng)網(wǎng)絡(luò)相關(guān)模型能充分利用交通流數(shù)據(jù)的周期特性,反映出循環(huán)神經(jīng)網(wǎng)絡(luò)對時間周期性數(shù)據(jù)預(yù)測的優(yōu)勢。但在利用多個特征的交通流數(shù)據(jù)時,XGBoost更能充分利用斷面上下游的空間相關(guān)性,精度比神經(jīng)網(wǎng)絡(luò)相關(guān)模型高一些,反映出XGBoost能充分利用各個特征的優(yōu)勢,更適用于解決交通流變化利用上下游數(shù)據(jù)提升預(yù)測精度的情況。
在短時交通流預(yù)測中,使用中值濾波處理缺失數(shù)據(jù)與異常數(shù)據(jù),可以降低原始時間序列的異常波動,提高預(yù)測模型的精度。
相比神經(jīng)網(wǎng)絡(luò)模型,XGBoost模型較為簡單,可以充分利用交通流的時間特性與空間相關(guān)性,將斷面的上下游數(shù)據(jù)作為高維特征,可以達到較高的預(yù)測精度,尤其適用于交通流波動時充分利用上游交通流數(shù)據(jù)進行高精度的預(yù)測。
利用相鄰4個斷面6天的交通流數(shù)據(jù)進行訓(xùn)練與預(yù)測,可以適當(dāng)反映出XGBoost模型適用于高維特征數(shù)據(jù)的優(yōu)勢,但未考慮到擁堵狀態(tài)下下游斷面排隊車輛的蔓延對上游斷面交通流的影響,后續(xù)可深入研究。