劉艷麗 趙卓峰 丁維龍 徐 揚
(1.北方工業(yè)大學計算機學院 北京 100043)(2.大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點實驗室 北京 100043)(3.北京易華錄信息技術(shù)股份有限公司 北京 100043)
隨著我國高速公路建設(shè)和運營業(yè)務(wù)的發(fā)展,對高速路網(wǎng)管理中的交通信息服務(wù)、交通誘導(dǎo)、交通管制以及交通擁堵緩解等提出了更高的要求,利用各類高速公路運行數(shù)據(jù)滿足上述要求以促進路網(wǎng)運營管理和決策水平的提高就成為當前高速公路信息化建設(shè)的重點,而高速流量預(yù)測則是其中的一個主要研究內(nèi)容。實時準確的高速流量預(yù)測是交通誘導(dǎo)的基礎(chǔ),對于有效緩解高速交通擁堵,縮短出行時間,降低車輛能耗和環(huán)境污染,提高高速公路通行能力與服務(wù)水平具有重要的意義?,F(xiàn)如今高速公路收費站擁堵現(xiàn)象還較嚴重,采取有效的方法對收費站出入口交通流量進行預(yù)測,及時對收費站收費人員的窗口設(shè)置、車道的開放進行調(diào)控,提高路段的通行能力,是高速公路行業(yè)亟待解決的問題。收費站交通流量的有效預(yù)測,還可以為收費站車道的設(shè)計、收費廣場長度的設(shè)計和電子不停車收費系統(tǒng)設(shè)施建設(shè)提供有力的決策支持,為整個高速公路系統(tǒng)提供運維保障。
現(xiàn)有的對高速公路交通流量的預(yù)測多是利用微波車檢器的實測數(shù)據(jù)對某個斷面或某個路段的預(yù)測,很少有對收費站出入口流量進行預(yù)測的研究。高速公路聯(lián)網(wǎng)收費系統(tǒng)實時上傳的收費數(shù)據(jù)蘊含著大量有價值的信息,每條收費記錄都包括車輛出入口收費站、車輛出入口時間、車道類型、車輛類型、車牌號等相關(guān)信息。收費數(shù)據(jù)目前主要應(yīng)用于收費額統(tǒng)計及車流量統(tǒng)計,其價值并沒有充分挖掘。
利用海量的高速聯(lián)網(wǎng)收費數(shù)據(jù)對高速公路收費站出入口交通流量進行短時預(yù)測目前存在兩個主要問題:
1)高速聯(lián)網(wǎng)收費數(shù)據(jù)是實時更新、動態(tài)增長的,其數(shù)據(jù)規(guī)模之大,對數(shù)據(jù)處理時效性提出更高的要求。
2)現(xiàn)有預(yù)測模型多是離線建模,不能很好地適應(yīng)短時交通流變化的不確定性,且不能并行處理上百個站點的預(yù)測問題。
針對以上問題,本文基于高速公路聯(lián)網(wǎng)收費系統(tǒng)的收費數(shù)據(jù),利用大數(shù)據(jù)的技術(shù)手段,統(tǒng)計出每個收費站及全網(wǎng)的短時出入口車流量,并從模型識別和參數(shù)調(diào)整兩方面對傳統(tǒng)的ARIMA預(yù)測模型進行優(yōu)化,利用車流量統(tǒng)計結(jié)果和改進的預(yù)測模型對多個收費站短時交通流量進行并行預(yù)測。
基于實時數(shù)據(jù)分析的短時交通流預(yù)測,其研究受到廣泛關(guān)注。迄今為止,已經(jīng)有許多理論和方法應(yīng)用于短時預(yù)測的研究。
歷史趨勢模型假定交通狀況是周期性發(fā)生的,即交通流量在一個交通斷面是以一天為周期重復(fù)出現(xiàn)的。該模型利用某路段在一定時間間隔內(nèi)的舊的交通流量及最新觀察到的交通流量,通過擬合平滑系數(shù)得到新的交通流量[1]。雖然該模型可以在一定程度內(nèi)解決不同時間、不同時段里的交通流變化問題,但靜態(tài)的預(yù)測不足取,因為它不能解決不確定、非線性和突發(fā)的交通狀況時的交通流量預(yù)測問題,比如天氣變化、事故等。
神經(jīng)網(wǎng)絡(luò)模型是有大量處理單元(神經(jīng)元)廣泛互連而成的網(wǎng)絡(luò),是對人腦的抽象、簡化、模擬。該模型通過使用一部分數(shù)據(jù)來訓練模型,即確定網(wǎng)絡(luò)結(jié)構(gòu),用剩余部分數(shù)據(jù)進行預(yù)測。神經(jīng)網(wǎng)絡(luò)由于其自身特有的自適應(yīng)和自學習優(yōu)勢,在實時交通流預(yù)測領(lǐng)域的應(yīng)用很多。文獻[2]提出將遺傳算法的思想引入到粒子群算法中,建立了基于APSO-BP神經(jīng)網(wǎng)絡(luò)的短時交通流量預(yù)測模型。文獻[3]提出一種基于改進粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的預(yù)測方法。但神經(jīng)網(wǎng)絡(luò)存在收斂速度慢、容易陷入局部最優(yōu)解的問題,且訓練過程復(fù)雜,需要大量樣本數(shù)據(jù)進行網(wǎng)絡(luò)訓練。
灰色預(yù)測模型是一種對含有不確定因素的系統(tǒng)進行預(yù)測的模型。通過鑒別系統(tǒng)因素之間發(fā)展趨勢的相異程度,即進行關(guān)聯(lián)分析,并對原始數(shù)據(jù)進行生成處理來尋找系統(tǒng)變動的規(guī)律,生成有較強規(guī)律性的數(shù)據(jù)序列,然后建立相應(yīng)的微分方程模型,從而預(yù)測事物未來發(fā)展趨勢的狀況。文獻[4]提出一種基于背景值改進的GM(1,1)短期交通流預(yù)測模型以及一個兼顧考慮上下游交通流量的MGM(1,n)短期交通流預(yù)測模型。灰色預(yù)測模型算法簡單,所需數(shù)據(jù)少,運算時間短,但該模型更適用于中長期預(yù)測。
近年來國內(nèi)外出現(xiàn)了一些基于組合模型的預(yù)測方法,目的是為了發(fā)揮各種預(yù)測方法各自的優(yōu)點,克服各自的缺陷,以求得更加理想的預(yù)測效果。文獻[5]提出一種基于小波變換、自回歸積分滑動平均模型和人工神經(jīng)網(wǎng)絡(luò)的新型混合預(yù)測方法。文獻[6]通過建立單一的GM(1,1)灰色系統(tǒng)理論對傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)模型進行改進。文獻[7]針對十字路口的短時交通流量預(yù)測問題設(shè)計了基于交通流量序列分割和極限學習機組合模型的交通流量預(yù)測算法,該算法首先采用K-means對交通流量數(shù)據(jù)在時間上進行序列分割,然后采用ELM對各個序列進行建模和預(yù)測。文獻[8]針對混合交通流中車輛類型的不確定性和隨機性,依據(jù)各種車型的車流量變化規(guī)律不同的特點,提出一種分車型的流量預(yù)測方法,選用改進的時間序列算法對大型車和拖掛車的流量進行預(yù)測,選用二次指數(shù)平滑法對小客車和中型車的流量進行預(yù)測,然后通過車輛折算系數(shù)將各車型的流量預(yù)測值進行加權(quán)求和,從而得到總車流量預(yù)測值。
時間序列模型是較為成熟的預(yù)測方法之一。時間序列模型最主要的特征是承認觀察值之間的依賴關(guān)系和相關(guān)性,不僅考慮了觀測數(shù)據(jù)在時間序列上的依存性,同時也考慮了隨機波動的干擾,它是一種動態(tài)模型,能夠應(yīng)用于動態(tài)觀測[9]。自回歸積分滑動平均模型(ARIMA)是一種應(yīng)用最廣泛的時間序列模型,擁有較高的預(yù)測精度[10]。
有關(guān)高速數(shù)據(jù)建模問題的研究很多,但大多都屬于靜態(tài)數(shù)據(jù)模型,只包含一些靜態(tài)信息,如高速公路路段信息、收費站位置信息、分中心信息等。但僅用靜態(tài)信息描述高速公路并不全面,除了靜態(tài)信息,高速公路運營過程中還涵蓋一些動態(tài)信息,如收費站過車記錄、道路養(yǎng)護信息、事故信息、氣象信息等。高速公路數(shù)據(jù)不僅具備空間性質(zhì),還具有時間性質(zhì)[11]。為了更全面地描述高速公路,本文所建立的高速公路數(shù)據(jù)模型,融合時間概念和空間概念,整合靜態(tài)信息和動態(tài)信息,構(gòu)建高速公路時空一體化數(shù)據(jù)模型。時空一體化數(shù)據(jù)模型能夠?qū)崿F(xiàn)三個基本功能,即處理時間維度、空間維度問題;分析歷史數(shù)據(jù);預(yù)測未來的發(fā)展趨勢。
采用面向?qū)ο蟮慕7椒?gòu)建高速公路時空一體化數(shù)據(jù)模型,將構(gòu)成高速公路系統(tǒng)的收費站、路段、收費記錄等元素看成一個個實體,實體的主要特征用屬性來描述,既有空間屬性又有時間屬性。例如:收費站實體具有樁號、經(jīng)緯度等空間屬性,又有某段時間出口車流量等時間屬性。
聯(lián)網(wǎng)收費數(shù)據(jù)提供了動態(tài)的交通流數(shù)據(jù),包括出入口收費站、出入口時間、車型等信息。由于數(shù)據(jù)庫極易受噪聲數(shù)據(jù)、空缺數(shù)據(jù)和不一致數(shù)據(jù)的侵擾,為了提高數(shù)據(jù)挖掘的質(zhì)量,必須對數(shù)據(jù)進行預(yù)處理。
收費數(shù)據(jù)多存在下面的問題:司機進入高速公路后從入口掉頭、司機卡丟失、司機沖卡產(chǎn)生異常數(shù)據(jù);機器故障產(chǎn)生壞卡或者收費員發(fā)卡時誤操作產(chǎn)生異常數(shù)據(jù)[12]。
數(shù)據(jù)預(yù)處理方法:對于關(guān)鍵字段缺失的異常數(shù)據(jù),如沒有出入口時間,選擇剔除。
對于數(shù)據(jù)格式不規(guī)范的異常數(shù)據(jù),進行轉(zhuǎn)化統(tǒng)一。
在數(shù)據(jù)存儲方面,靜態(tài)數(shù)據(jù)變化少更新慢,存入MySQL數(shù)據(jù)庫中。收費站收費數(shù)據(jù)實時更新,動態(tài)增長,存入HBase數(shù)據(jù)庫。
搭建高可用分布式hadoop集群,實現(xiàn)數(shù)據(jù)的負載均衡,能夠支持高并發(fā)用戶訪問的速度。使用MapReduce進行離線計算。MapReduce是一種編程模型,適用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算,適合數(shù)據(jù)被一次寫入和多次讀取的應(yīng)用。通過運行MapReduce作業(yè)處理收費數(shù)據(jù),統(tǒng)計出每個收費站及全網(wǎng)的出入口車流量。
本文所研究的是收費站短時交通流量的預(yù)測,即對下一決策時刻(t+1時刻)的收費站出入口流量作出短期實時預(yù)測。就交通流而言,一般以15min以內(nèi)為短期,以小時和天為單位計算的預(yù)測為中期,以年為單位的為長期預(yù)測[13]。為了適應(yīng)交通控制與交通誘導(dǎo)的實時性要求,本文實驗所選取的流量數(shù)據(jù)的采樣間隔為5min。
ARIMA模型全稱為自回歸積分滑動平均模型(Autoregressive Integrated Moving Average Model,ARIMA),該模型是由博克思(Box)和詹金斯(Jenkins)于20世紀70年代出提出的著名時間序列預(yù)測方法,所以又稱為Box-Jenkins模型或博克思-詹金斯法。
其中ARIMA(p,d,q)稱為差分自回歸移動平均模型,AR是自回歸,p為自回歸項;MA為移動平均,q為移動平均項數(shù),d為時間序列成為平穩(wěn)時所做的差分次數(shù)。所謂ARIMA模型,是指將非平穩(wěn)時間序列轉(zhuǎn)化為平穩(wěn)時間序列,然后將因變量僅對它的滯后值以及隨機誤差項的現(xiàn)值和滯后值進行回歸所建立的模型。ARIMA模型根據(jù)原序列是否平穩(wěn)以及回歸中所含部分的不同,包括移動平均過程(MA)、自回歸過程(AR)、自回歸移動平均過程(ARMA)以及ARIMA過程。ARIMA模型的建模步驟如下:
步驟1平穩(wěn)化檢驗:檢驗時間序列的平穩(wěn)性,必須檢驗序列的均值和方差是否為常數(shù),即序列的自相關(guān)函數(shù)是否與時間間隔有關(guān),而與此間隔端點的位置無關(guān)。若不是常數(shù),進行步驟2,否則進行步驟3。
步驟2差分運算:對序列進行d階差分變換或者其他變換(對時間序列進行自然對數(shù)差分變換比較普遍),使其滿足平穩(wěn)性條件。
步驟3模式識別:計算原序列或者變換后的序列的樣本自相關(guān)函數(shù)和偏相關(guān)函數(shù),憑借統(tǒng)計手段檢驗判斷其相關(guān)函數(shù)的截尾性、拖尾性和周期性,選擇AR(p)、ARMA(p,q)、MA(q)三種模型中的一種。
圖4 ARIMA模型建模步驟
步驟4參數(shù)估計:運用AIC準則確定模型的參數(shù),并根據(jù)滯后多項式根的倒數(shù)判斷模型是否平穩(wěn),同時也要判斷模型的擬合效果和合理性。
步驟5預(yù)測及評價:利用所建立的模型進行預(yù)測,并評價模型的好壞。
采用傳統(tǒng)ARIMA模型進行短時交通流量預(yù)測時存在以下幾點不足:
1)傳統(tǒng)ARIMA模型是采用離線方式建立預(yù)測模型,無法根據(jù)實時檢測到的交通流量數(shù)據(jù)對模型參數(shù)進行調(diào)整,不能很好地適應(yīng)不確定性強的短時交通流動態(tài)預(yù)測的要求。
2)該方法在應(yīng)用于受隨機干擾因素影響大,不確定性強的短時交通流建模、預(yù)報的過程中,模型結(jié)構(gòu)辨識和模型檢驗的過程比價繁瑣[14]。
針對傳統(tǒng)時間序列模型的不足,本文從模型識別和參數(shù)動態(tài)調(diào)整兩方面對傳統(tǒng)時間序列模型進行優(yōu)化,提出一種改進的時間序列模型。
蘇聯(lián)科學家Kolmogorov證明:任何一個ARIMA(p,d,q)或ARIMA(0,d,q)過程可以用一個高階的ARIMA(p,d,0)過程表示[15]。ARIMA(p,d,0)模型結(jié)構(gòu),可以直接使用遞推最小二乘方法進行參數(shù)估計,而該方法具有算法簡單、估計精度高、收斂快、魯棒性強和便于在線應(yīng)用的優(yōu)點。因此,為了消除模型識別的不確定性,減輕模型識別的繁瑣,本文直接使用ARIMA(p,d,0)模型作為待選模型,只進行模型的定階和參數(shù)的估計,提高了算法的效率以及預(yù)測的時效性。
由于短時交通流量受隨機干擾因素影響大,具有高度的不確定性、非線性,因此本文所改進的ARIMA模型,每次在進行預(yù)測時,都要根據(jù)最新的采樣數(shù)據(jù)重新進行模型定階和參數(shù)估計,訓練出適合當前交通狀態(tài)的預(yù)測模型,實現(xiàn)動態(tài)預(yù)測。
改進的ARIMA模型建模步驟如下:
步驟1利用ADF單位根檢驗方法對原始流量序列進行平穩(wěn)性檢驗。若原始流量序列不平穩(wěn),進行差分變換,直至新序列通過平穩(wěn)性檢驗。
步驟2運用AIC準則確定模型的階數(shù),即確定AR(p)模型中p的值,運用最小二乘法進行參數(shù)估計。
步驟3運用確定的模型進行交通流量的預(yù)測。
步驟4當有新的采樣數(shù)據(jù)產(chǎn)生時,重復(fù)步驟1~3,實現(xiàn)流量的動態(tài)預(yù)測。
本算法思想已經(jīng)通過編程實現(xiàn),自動化運行,效率高,保證了預(yù)測的時效性。
實驗使用CentOS 6.6版本的Linux操作系,JDK1.7,mysql-5.6.17。使用 Cloudrea Manager的CDH部署集群,安裝Hadoop、Hbase等組件,實現(xiàn)集群的監(jiān)控和管理。集群的具體環(huán)境如下:集群包含六個節(jié)點,其中一個主節(jié)點,五個從節(jié)點,每個節(jié)點都是8G運行內(nèi)存、100G的主機內(nèi)存,Hadoop版本為 2.6.0,ZooKeeper版本為 3.4.6,Hbase版本為1.0.3。
實驗中采用的原始數(shù)據(jù)為河南省所有收費站2017年2月份和2017年4月份兩個月真實收費數(shù)據(jù),通過運行MapReduce作業(yè)統(tǒng)計出每個收費站點每五分鐘的出口流量和入口流量。
抽取出2017年2月9日~11日和2017年4月18日~20日共計6天的流量結(jié)果進行預(yù)測模型的驗證,并選用絕對百分比誤差A(yù)PE(absolute percentage error)、平均絕對百分比誤差MAPE(mean absolute percentage error)和絕對百分比誤差中位數(shù)MDAPE(median absolute percentage error)對預(yù)測結(jié)果效果進行評價。
APE計算公式為
MAPE計算公式為
其中xt為實測值;為預(yù)測值,N為預(yù)測次數(shù)。MDAPE為APE的中位數(shù)。
1)樣本數(shù)量的選擇
由于樣本量大小會影響序列的平穩(wěn)性,會對模型的識別、參數(shù)的確定產(chǎn)生不同的結(jié)果,進而直接影響模型的預(yù)測效果,因此樣本序列不能隨意選取。長度較大的樣本序列往往其平穩(wěn)性也較弱,利用平穩(wěn)性較弱的樣本序列進行預(yù)測難以獲得較高的預(yù)測精度,因此樣本序列的長度不宜太大;同時樣本序列的長度也不宜太小,由于交通流量變化具有不確定性和隨機性,較少的樣本序列難以通過平穩(wěn)性檢驗,而且無法反映交通流的變化趨勢,利用這樣的樣本序列進行流量預(yù)測可能會產(chǎn)生較大的預(yù)測誤差。
為了得到較優(yōu)的樣本數(shù)量,通過選取不同的樣本量來分析樣本量對車流量預(yù)測的影響。選取樣本量S∈[50,800],對2017年4月20日河南省多個收費站每五分鐘(共計288個時間段)的出口流量進行了預(yù)測,以MAPE作為評價指標,預(yù)測效果如圖2。
圖2 不同樣本數(shù)量預(yù)測效果
分析圖2發(fā)現(xiàn),當樣本量S較小時,對四個收費站4月20日當天288個時間段的車流量進行預(yù)測的MAPE值較高,隨著樣本數(shù)量的增加,MAPE先迅速減小然后趨于平穩(wěn)。觀察得S∈[350,400]時四個收費站的MAPE都能取得較小值,即預(yù)測的精度較高,因此樣本量的最佳取值區(qū)間S∈[350,400]??紤]到樣本量大的序列更能反映交通流的變化趨勢,故可選擇上述最佳取值區(qū)間中的最大值作為最佳樣本量的取值,本文選定最佳樣本數(shù)量為400。
2)對比實驗
高速公路工作日與節(jié)假日車流量在波動規(guī)律以及流量變化方面均存在明顯差異故設(shè)置了工作日和節(jié)假日的對比實驗。對比實驗分為兩組,第一組實驗對2017年4月20日(工作日)的流量進行預(yù)測,第二組實驗對2017年2月11日(節(jié)假日)的流量進行預(yù)測。
(1)第一組實驗
分別利用改進前后的ARIMA模型對2017年4月20日每5min(共計288個時間段)全網(wǎng)出口流量進行預(yù)測,每次預(yù)測都選取預(yù)測區(qū)間前400個時間段的真實車流量數(shù)據(jù)作為樣本序列。預(yù)測效果和絕對百分比誤差分別如圖3、4所示。
圖3 2017.4.20全網(wǎng)流量預(yù)測結(jié)果
圖4 2017.4.20全網(wǎng)流量預(yù)測APE
改進前后兩種模型的各項評價指標如表1所示。
表1 第一組實驗兩種模型評價指標
觀察圖3發(fā)現(xiàn),改進的ARIMA模型比傳統(tǒng)的ARIMA模型,其預(yù)測值更接近于真實的車流量數(shù)據(jù);觀察圖4發(fā)現(xiàn),改進的ARIMA模型比傳統(tǒng)的ARIMA模型,APE較小且比較穩(wěn)定;觀察表1發(fā)現(xiàn),改進的ARIMA模型比傳統(tǒng)的ARIMA模型MAPE減少了3.18%,MDAPE較小,運算時間也較短,說明改進后的ARIMA模型充分克服了傳統(tǒng)ARIMA模型的不足,具有較高的預(yù)測精度。
(2)第二組實驗
分別利用改進前后的ARIMA模型對2017年2月11日每5min(共計288個時間段)全網(wǎng)出口流量進行預(yù)測,每次預(yù)測都選取預(yù)測區(qū)間前400個時間段的真實車流量數(shù)據(jù)作為樣本序列。預(yù)測效果和絕對百分比誤差分別如圖5、6所示。
圖5 2017.2.11全網(wǎng)流量預(yù)測結(jié)果
圖6 2017.2.11全網(wǎng)流量預(yù)測APE
改進前后兩種模型的各項評價指標如表2所示。
表2 第二組實驗兩種模型評價指標
2017年2月11日為節(jié)假日,交通流較大。觀察圖5、6以及表2發(fā)現(xiàn),改進的ARIMA模型比傳統(tǒng)的ARIMA模型具有更高的預(yù)測精度,說明改進的ARIMA模型不僅適用于工作日,同時適用于節(jié)假日,對不同的交通流狀況具有較好的適應(yīng)性。
本文針對傳統(tǒng)ARIMA預(yù)測模型的不足,從模型識別和參數(shù)調(diào)整兩方面進行了優(yōu)化,直接使用ARIMA(p,d,0)作為模型識別的結(jié)果,并對參數(shù)實現(xiàn)動態(tài)調(diào)整,提出一種改進的ARIMA預(yù)測模型。利用實測流量數(shù)據(jù)對改進前后的模型進行對比實驗,實驗表明,改進的ARIMA預(yù)測模型分別應(yīng)用于工作日和節(jié)假日,都取得較好的預(yù)測效果,說明該算法對不同的交通狀況具有較好的適應(yīng)性。