田佳, 王德勇, 師文喜
(1.新疆大學信息科學與工程學院, 烏魯木齊 830017; 2.新疆聯海創智信息科技有限公司, 烏魯木齊 830011;3.中國電子科學研究院, 北京 100041)
近年來,隨著經濟的快速發展和人們生活水平的提高,機動車保有量與日俱增,隨之而來的交通擁堵和能源浪費等問題也日趨嚴重。在這一背景下,智能交通系統的應用越來越受到交通管理部門的關注[1]。短時交通流研究作為智能交通系統的重要組成部分,可以為交通引導和道路管理提供便利,是交通領域研究的重要內容[2]。短時交通流預測是指利用歷史交通流數據,實時預測未來較短時間內的交通流[3];通常基于交通流的三大參數,即平均車流量、平均車速、平均占有率等進行相關研究[3]。
短時交通流預測方法可以分為統計分析、非線性理論、仿真預測、智能預測和組合預測五大類[3-4]。但面對復雜且不確定的交通數據,并不存在一種算法可以在任何條件下都能具備良好的性能,因此,研究人員就提高模型預測精度和擴大其適用范圍展開了大量的研究。Yu等[5]提出了一種基于長短時記憶神經網絡(long short-term memory,LSTM)的短時交通流預測模型,并在高速公路數據集上驗證了該模型的泛化能力。但是LSTM存在參數選擇困難、易陷入局部最優解及收斂速度慢等問題。鑒于以上問題,Liu[6]為提高模型預測精度,提出了一種基于支持向量回歸(support vector regression,SVR)的交通流預測模型,并通過實驗證明,相比LSTM模型,該模型具有更好的預測效果。但是SVR對于復雜的預測樣本難以選取合適的核函數,從而對實際具有干擾的短時交通流時間序列預測性能有所欠缺。基于此,鄒宗民等[7]利用粒子群優化算法對SVR的參數進行尋優,實驗證明,該方法可進一步提升SVR的預測精度。冒云香等[8]結合隨機森林訓練速度快、參數簡單、預測精度高及對輸入數據不敏感等優點,構建了一種基于隨機森林的短時交通流預測模型,并通過實驗驗證了該模型的可行性和有效性。因此,在前人的研究基礎上,現選用隨機森林進行下一步研究。同時,隨著對短時交通流研究的不斷深入,發現許多文獻都將注意力集中在提高模型的預測性能上,忽略了交通流數據本身存在的可預測性[9-10]。于是,方方等[3]將小波分析與集成學習算法進行組合,對短時交通流進行預測,實驗結果表明,相比單一的預測模型,組合模型能進一步提升模型預測效果。但是小波分析中的小波基函數和分解層數都存在較大的人為選擇性,容易產生虛假分量。而集合經驗模態分解(ensemble empirical mode decomposition,EEMD)是根據數據本身的時頻尺度特征,將原始數據分解為若干個本征模函數(intrinsic mode function,IMF)和一個殘差分量(residual,RES);然后根據各個分量的特點構建模型并進行整合,從而有效提高模型預測精度。殷禮勝等[11]提出了一種基于EEMD與最小二乘支持向量機(least squares support vector machine,LSSVM)相結合的組合模型,結果表明相比LSSVM模型,組合模型具有更高的預測性能。Tang等[9]提出了一種基于EEMD與模糊C均值神經網絡(fuzzyC-means neural network,FCMNN)相結合的交通流組合預測模型,實驗結果表明相比FCMNN模型,引入EEMD的FCMNN組合模型預測精度得到顯著提升。由此可見,將EEMD與其他智能算法結合起來對短時交通流進行預測,可有效提高模型的預測精度。
基于上述研究,現提出一種基于EEMD和隨機森林(random forest,RF)[12]的短時交通流預測模型。EEMD可將復雜的、非線性的短時交通流數據分解為若干個不同時間尺度下相對平穩的序列,細化交通流數據的信息;同時,RF不僅克服了LSTM訓練速度慢、易陷入局部最優解等問題,還解決了SVR參數選擇困難的困境,從而使用EEMD與RF相結合的方法對于短時交通流預測能夠達到較好的預測效果。首先,利用EEMD將原始短時交通流數據分解為若干個子序列;接著,對IMF1進行EEMD分解;隨后將各個子序列分別使用RF進行預測,同時通過學習曲線和交叉驗證的方法選取模型最優參數組合;最后將各子模型的預測結果線性求和,得到模型最終的預測結果,并在阿拉爾市內路段的真實數據集上進行驗證實驗。
為解決經驗模態分解(empirical mode decomposition,EMD)過程中出現的模態混疊現象,EEMD向原始數據中加入白噪聲進行擾動,并通過足夠的實驗次數將添加的白噪聲平均化而使最終得到的分量保持物理上的唯一性[11,13-14]。EEMD的具體步驟如下。
步驟1向原始數據X(t)中加入白噪聲ω(t),得到新的序列X′(t)。
X′(t)=X(t)+ω(t)
(1)
步驟2計算出X′(t)的所有上、下極值點,并畫出上、下包絡線U(t)和L(t),再求上、下包絡線的均值,得到均值包絡線G(t)。

(2)
步驟3使用X′(t)減去G(t),得到中間序列H(t)。
H(t)=X′(t)-G(t)
(3)
步驟4判斷中間序列H(t)是否滿足IMF的兩個條件,若滿足,則該序列就是一個IMF分量;反之,以該序列為基礎,重新做步驟2~步驟4的分析,直到滿足條件為止。IMF的兩個具體條件為:在整個數據段內,極值點的數量必須和過零點的數量相等或相差不超過一個;在任意時段,上包絡線和下包絡線均值都為零,即上、下包絡線相對于時間軸對稱。
步驟5經過以上步驟得到第一個IMF后,用X′(t)減去該IMF分量,并將其作為新的序列,重復步驟2~步驟4,得到m個IMF和1個RES。

(4)
步驟6重復加入噪聲M次進行分解,即重復M次步驟1~步驟5操作。
步驟7將上述每次分解得到的相同序號的IMF分量求平均值得到最終的IMF分量Ij(t)。

(5)
式(5)中:Ii,j(t)為第i次加入噪聲分解得到的第j個IMF分量;Ij(t)為最終的第j個IMF分量。
RF是一種集成學習算法,它由兩個部分組成:決策樹和Bagging算法[12]。決策樹是一種基于樹結構進行判斷決策的有監督模型,它由根節點、中間節點和葉節點構成。Bagging算法的主要思想是:通過有放回抽樣的方式從訓練集中抽取多個樣本,再對每輪獲取的子訓練集,分別訓練各自的模型。RF是由許多決策樹構成的,其中不同決策樹之間沒有關聯。RF回歸算法的構造步驟如下。
步驟1從原始訓練集中有放回的抽取n次,一次抽取一個樣本,最終得到由這n個樣本組成的子訓練集X′。
X′={(x1,y1),(x2,y2),…,(xn,yn)}
(6)
式(6)中:xi∈Rn為輸入值;yi∈R為輸出值。
步驟2從樣本的h個屬性中隨機選取m個屬性構成特征子集T′。
T′={t1,t2,…,tm},m?h
(7)
步驟3基于X′和T′,構建CART回歸樹,即通過求解式(8),選擇最優切分變量t∈T′與它的取值s,得到最優的(t,s)組合。

(8)
式(8)中:Ri為第i個子區域;ci為第i個子區域的輸出值。
步驟4對選定的(t,s)劃分區域并計算相應的輸出值。
R1(t,s)={x|xt≤s},R2(t,s)={x|xt>s}
(9)

(10)
步驟5繼續對兩個子區域調用步驟3、步驟4,直至滿足停止條件。
步驟6隨后輸入空間被劃分為M個區域R1,R2,…,RM,構成決策樹,其輸出值計算公式為

(11)
步驟7按照步驟1~步驟6建立K棵決策樹,這樣就構成了RF。
步驟8對每棵決策樹的輸出值求取簡單平均值或者加權平均值,可得到RF的最終值,分別如式(12)和式(13)所示。

(12)

(13)
由于短時交通流的非線性、不確定性等特性,單一的預測模型很難取得較好的預測結果[3,11]。故將EEMD對非線性數據分解的優勢與非線性模型RF結合起來進行預測。然而,對短時交通流進行一次EEMD分解后,低頻的序列可以較好地擬合,高頻的序列擬合誤差較大,為緩解這一現象,將一次分解后擬合效果最差的高頻IMF1分量進行EEMD二次分解。EEMD-RF預測模型框架如圖1所示,其具體操作步驟如下。

圖1 EEMD-RF模型框架Fig.1 EEMD-RF model framework
步驟1利用EEMD對原始時間序列數據進行分解,得到若干個IMF分量和1個RES分量。
步驟2將步驟1的各個分量劃分為訓練集、驗證集及測試集。
步驟3在訓練集上對每個分量構建RF模型,并在驗證集上使用交叉驗證的方法驗證模型的泛化能力,最后利用泛化能力最強的RF模型參數組合來訓練RF模型,并對測試集進行預測。交叉驗證結果和樣本預測值計算分別如下。

(14)

(15)

步驟4利用模型評估指標分析各個RF模型的預測性能,并將最高頻IMF1分量進行二次EEMD分解,即重復步驟2、步驟3,隨后將二次分解各分量預測值線性相加,得到IMF1二次分解預測值。
步驟5將所有RF模型的預測值線性相加,得到最終預測結果。
選取阿拉爾市一段道路高清卡口系統采集的過車數據進行實驗,采集時間為2019年10月26日—11月29日,共35 d,該實驗設定時間間隔為10 min。在進行實驗之前,需要對卡口數據進行預處理,處理框架如圖2所示,其步驟描述如下。

圖2 數據預處理框架Fig.2 Data preprocessing framework
步驟1去除原始數據中的重復數據和缺失數據。
步驟2使用SQL語句,篩選出經過研究路段的車輛,并統計車輛的行駛時間。
步驟3去除步驟2中由于中途停車和超速行駛導致的異常數據。
步驟4以10 min為統計時窗,當統計時窗內的樣本數量小于3條時,則認為該統計時窗內缺失數據,選用合適的缺失值填補策略進行處理,其中,當數據為單個缺失時,采用時間序列填補策略進行填補,即使用前3個統計時窗的平均值進行填補,但當數據為連續缺失時,采用歷史數據填補策略進行填補,即使用歷史相同統計時窗的數據進行填補;反之,則認為存在異常值,使用箱型圖法去除異常值[15,17]。


(16)
式(16)中:L為路段長度;m為統計時窗內車輛數量;ti為第i輛車的行駛時間。
交通流數據是典型的時間序列數據,因此可以從該序列中提取出具有時間特性的元素[16]。
(1)工作日與非工作日特性。交通流數據在工作日會出現明顯的上下班高峰,相較于非工作日,規律性更強。由此,提取DayOfWeek這一特性,例如周一則將DayOfWeek標記成1;再提取IsWeekend這個特性,例如周末就將IsWeekend標記成1,否則標記成0。
(2)日期特征。為細化交通流數據的時間特性,可以提取出其日期特征,即提取每條記錄統計時段的年、月、日、時、分,例如統計時窗的起始時間為“2019-10-26 09:10:00”,可以提取出來的時間特征為“2019”“10”“26”“09”“10”。因實驗數據的年和月兩個時間尺度對實驗結果基本無影響,故只提取日、時與分3個特征。
(3)周期特征。周期特征分兩類進行考慮,一類是當前時間段的前若干個連續時間段的交通流會對當前的交通流產生影響。例如第i天的[10:00,10:10]的交通流受第i天的[09:50,10:00]、[09:40,09:50]、[09:30,09:40]等n個時間段的影響。另一類是同一段路每天相同時間段的交通流變化具有相似,因此,預測第k日的[10:00,10:10]的交通流,可以將第k-1,k-2,…,k-m日[10:00,10:10]的交通流作為特征值。其中,n和m的最佳值通過后續實驗進行選取。
評估模型前,首先確定需要優化的超參數,包括決策樹的數量ntrees、決策樹最大層數md、劃分節點的最少樣本數mss和葉子節點最少樣本數msl。初始化超參數的搜索空間,ntrees為[2,300],md為[2,51],mss為[2,30],msl為[1,30]。同時,通過繪制學習曲線和交叉驗證的方式對超參數依次調優,并根據評估指標對其預測效果進行判斷,從而確定最優的參數組合。選擇4個模型指標對模型的預測性能進行評估,分別為均方根誤差(root mean squared error,RMSE)、平均絕對誤差(mean absolute error,MAE)、均方誤差(mean square error,MSE)、平均絕對百分比誤差(mean average precision,MAPE)。計算公式分別如式(17)~式(20)所示。

(17)

(18)

(19)

(20)

考慮到在午夜和凌晨這兩個時間段車流量較少,進行交通流預測的現實意義不大[16],故根據地域作息時間,從經過上述預處理的5 040條數據中選取每天10:00—22:00的時間段進行實驗。最后,用于實驗的數據共2016條結果如圖3所示。

圖3 交通流波動圖Fig.3 Traffic flow fluctuation chart
為確定n和m的值,選取n的值為2~12,即預測時間段的前20 min~2 h;m的值為1~7,即預測時間段前1 d~1周,進行實驗,故用于EEMD分解的數據共2 940條,其分解結果如圖4所示。

圖4 經EEMD分解后的交通流序列Fig.4 Traffic flow sequence decomposed by EEMD
隨后,將分解得到的IMF1~RES處理成式(21)的形式,如圖5所示。

圖5 樣本數據結構圖Fig.5 The structure diagram of sample data
x(k,t)={x(k,t-1),x(k,t-2),…,x(k,
t-n),DOW,IW,D,H,M,x(k-1,t),
x(k-2,t),…,x(k-m,t)}
(21)
式(21)中:x(k,t)為第k天第t時段的交通流;x(k,t-n)為當前時段前n個時間段的交通流;DOW為DayOfWeek的值;IW為IsWeekend的值;D代表天,H代表時,M代表分,x(k-m,t)代表當前時段前m天同時段的交通流數據。并將處理后的數據劃分為訓練集、驗證集和測試集,劃分比例分別為75%、15%和10%。
其中,模型預測效果隨m和n取值變化的曲線圖分別如圖6和圖7所示。

圖6 參數n的變化圖Fig.6 Curve graph of n

圖7 參數m的變化圖Fig.7 Curve graph of m
從圖6可以看出,隨著參數n的變化,RMSE在3~4波動,MAE在2~3波動,MAPE在10~11波動,并且這3個模型評估指標的整體波動幅度都不大,換言之,參數n的變化對模型的RMSE、MAE、MAPE值影響較小,而MSE在12~14波動,其波動幅度較大,具體表現為,在2~10呈現緩慢下降的趨勢,在10~12呈現緩慢上升的趨勢,且在取值為10時達到最小值。因此,綜合考慮RMSE、MAE、MSE和MAPE這4個模型評估指標的效果,認為前10個時間間隔的交通流數據對該時段產生的影響最大。因此,最終選擇n=10進行后續的實驗。
從圖7可以看出,隨著參數m的變化,RMSE、MAE、MAPE和MSE的整體波動幅度不大,RMSE和MSE在0~4呈現緩慢下降的趨勢,在4~7呈現緩慢上升的趨勢。因此,綜合RMSE、MAE、MSE和MAPE 這4個指標的結果,可以看出預測結果相差較小,前幾天同一時段的交通流變化對預測結果影響不大,即歷史前幾天同時段的交通流對最后的預測精度影響較小。最后綜合考慮,最終選擇預測效果最好的m=4進行后續的實驗。原始數據經過EEMD一次分解后,各個分量的模型參數和模型評估結果分別如表1和表2所示。

表1 11個子模型預測性能評估結果

表2 11個子模型預測性能評估結果
同時,為進一步提高模型效果,將IMF1分量進行EEMD分解,如圖8所示,隨后,使用RF對每個分量進行預測,IMF1分解前后的模型預測結果對比如表3所示。

表3 IMF1模型預測性能結果

圖8 IMF1經EEMD分解后序列Fig.8 IMF1 sequence decomposed by EEMD
由表3可見,IMF1進行EEMD分解后,在RMSE、MSE和MAE這3個評估指標中,相比未分解時的評估結果分別減少了6.29%、12.14%、5.58%。可見將高頻IMF1分量進一步分解,可有效提高模型的預測性能。
為了驗證本文模型的有效性,分別對原有的交通流數據建立RF模型、一次EEMD-RF模型及本文EEMD-RF模型,進行對比實驗,3種模型的對比預測效果和模型評估結果分別如圖9和表4所示。

表4 模型預測性能評估結果

圖9 各模型預測結果對比圖Fig.9 Comparison of prediction results of different models
由表4可見,一次EEMD-RF模型的RMSE、MAE、MSE和MAPE均遠高于RF模型,說明對數據進行EEMD分解可有效提升模型的預測性能,歸根結底是EEMD能捕捉到交通流數據本身在不同時頻的信息及其總體趨勢,保證RF模型在了解交通流數據的總體趨勢的同時能學習到數據內部的細節信息。同時,相較于一次EEMD分解與RF的組合模型,所提出的對高頻分量IMF1進行二次EEMD分解,可在一定程度上進一步提升模型的預測性能,其原因是經過二次EEMD分解能更進一步細化高頻分量IMF1中所包含的隨機信息,提高模型精度。
從提高交通流預測精度的角度出發,提出了一種基于EEMD和RF的交通流組合預測模型。通過實驗結果可知,一次EEMD-RF模型預測效果明顯優于單一的RF模型,并且本文提出的對高頻分量IMF1進行二次分解的EEMD-RF模型可在一定程度上進一步提升模型的預測性能。但是,實際的交通流預測,還會受到許多其他因素的影響,比如上下游路段的時空相關性、天氣、交通事故等,本文模型尚未將以上的因素考慮進來;同時,EEMD分解會增加模型的預測時間,因此在實時性要求較高的場景下,還需進一步研究分析。