張 振,曾獻輝,2
(1.東華大學 信息科學與技術學院,上海 201620; 2. 數字化紡織服裝技術教育部工程研究中心,上海 201620)
準確的交通量預測是當今智慧交通的重要基礎,是交通狀況判別的重要基石之一[1]。人們從上個世紀開始就在交通流預測領域做了很多交通預測研究,截止目前為止常見的交通量預測方法主要包括基于統計的預測方法、基于時間序列的交通量預測方法、基于神經網絡的交通量預測方法以及基于機器學習的交通量預測方法幾種。
基于統計的交通量預測方法較多,比如多元線性回歸法、卡爾曼濾波器[2-3]和K近鄰算法[4]等,這些方法主要根據歷史流量數據預測未來交通流量分布,但是這些方法無法精準地預測道路短期擁堵的情況。基于時間序列的交通量預測方法如差分自回歸滑動平均模型[5],主要是將歷史的流量數據按照時間排列成為時間序列,根據時間序列分析數據流的變化趨勢從而預測未來的交通流量,但是這種算法的缺點是在處理數據量較大、維度較高的數據時效果一般,推廣能力較差。基于神經網絡交通量預測方法如GRU[6]和LSTM[7-8],這些模型存在著計算過程中收斂速度慢、計算時間較長、容易過擬合等缺點。基于機器學習的交通量預測方法如GBDT模型[9]、Xgboost模型[10]和隨機森林模型[11],這些模型對交通流時空挖掘效果不大理想。
單一預測模型往往存在一定的缺陷,影響模型預測精度。由于高速公路交通流量變化很容易受到外界環境的影響,在空間上上下游監測點和開放路段的出入口交通流量變化對該路段交通量變化有一定的影響。深度挖掘交通流量的時間和空間特性不僅可以降低外界環境對交通流變化的影響,還可以考慮到相鄰監測點和出入口之間的因果關系,提高模型的預測精度。CNN模型主要優勢是可以進行特征提取[12],深度挖掘高速公路待預測監測點和周邊檢測點之間的時空上的聯系。LightGBM算法使用集成學習的方式[13],可以快速實現梯度提升,具有較快的運行速度和較高的預測精度。本文結合這兩種模型的優點提出了CNN-LightGBM組合模型的方式進行交通量預測。
卷積神經網絡(Convolutional Neural Network,CNN )模型最早可追溯至1980年由FUKUSHIMA K等人提出的Neocognitron模型[14],于1998年正式由LE CUN Y等人提出[15]。CNN主要由輸入層(input)、卷積層(conv)、池化層(pool)、全連接層(fc)和輸出層(output)構成[16],這種模型結構可以有效地減少權值的數量,簡化網絡模型,同時也可以將數據直接用作網絡輸入,有效地減少了特征的提取和數據重構的復雜性,該模型如圖1所示。目前CNN模型大多應用于圖像領域,在交通量預測方面,由于CNN模型具有比較差的泛化能力,如果在實際交通量發生突變的情況下,之前建立的模型可能會出現完全失效情況[17]。但是CNN模型具有很強的特征提取能力,大多應用于模型特征提取。

圖1 CNN模型整體結構
高速公路的交通流量數據可以從時間和空間兩個角度做出區分,在時間上,當前時刻交通流量數據是對上一時刻的數據的繼承與對下一時刻數據的延伸;在空間上,對于開放的高速公路路段來說,當前監測點的交通量變化不僅僅與上下游的交通量有關,還會受到高速公路出入口交通量變化的影響。根據CNN捕捉的時空信息的特點,構造包含時間和空間信息的二維矩陣。
空間上監測點在t時刻的交通流量數據為:
S={xp,t,xp1,t,…,xpn,t}
(1)
其中,xp,t表示目標監測點p在t時刻的交通流量數據;xpn,t表示周邊檢測點pn在t時刻交通流量數據。
構建時空特征矩陣為:
(2)
其中,xp,t-m表示監測點p在當前時間前m個時間統計單位的時刻交通流量數據。本實驗中m取值為5。
LightGBM模型于2016年由微軟亞洲研究院提出[18],是GBDT模型的變體,主要用于解決GBDT在處理大量數據時遇到的問題。由于LightGBM是GBDT算法的提升,其基本原理與GBDT原理基本一致。GBDT算法屬于一種Bossting Tree算法,Boosting算法可以表示為決策樹的加法模型:
(3)
其中,T(x,Θn)表示第n棵決策樹,Θn表示其參數;N為樹的棵數;x表示輸入樣本。
GBDT采用前后向分布算法的方式進行優化求解,其模型為:
fn(x)=fn-1(x)+T(x:Θn)
(4)
其中,fn-1(x)為經過n-1步訓練的提升樹模型,T(x:Θn)為第n步需要學習的決策樹。前向分布算法希望將T(x:Θn)和fn-1(x)相加后能夠使fn(x)在訓練集上的經驗誤差最小。Bosting Tree算法在每個步驟都會生成一個弱決策樹模型,并將其累積在整個模型中,從而將模型的經驗誤差降至最低。GBDT模型就是沿著當前模型誤差函數的負梯度方向生成每個弱決策樹模型。
LightGBM是在GBDT模型的基礎上結合了Gradient-based One-Side Sampling(GOSS)算法和Exclusive Feature Bundling(EFB)算法以增強梯度。GOSS算法主要用于對訓練樣本進行采樣,能夠在保留大梯度樣本的同時減少小梯度樣本的數量,從而降低決策樹生成的復雜性,同時GOSS算法能夠提高泛化性能。EFB算法用于減少較高特征維度下稀疏數據要素的數量,并從要素角度優化算法復雜度。
結合CNN挖掘交通流空間特性與LightGBM快速高效預測的特性,本文構造出CNN-LightGBM交通量預測模型的整體結構,如圖2所示。

圖2 CNN-LightGB的預測模型結構
整體思路可以分為以下4步:
(1)統計各個監測點的交通流量數據,并對交通流量數據進行預處理;
(2)將交通流量歸一化后放入CNN模型進行訓練,由CNN模型提取交通流時空特征;
(3)將CNN模型提取的特征向量輸入到LightGBM模型;
(4)使用LightGBM模型對交通量進行預測。
本文實驗數據來源自某省交通管理局提供的某高速公路路段道路中心監測點、收費站口監測點以及服務區監測點對機動車監測的真實數據,監測點位置分布如圖3所示。監控點記錄每一輛通行車輛的車牌號、通行監測點的時間、機動車通行方向與汽車類型等。本實驗采用2018年11月1日到2018年12月20日共計300多萬條監測數據,首先根據監測點記錄的機動車類型,根據國家機動車當量折算標準,將不同機動車交通量按照不同的折算系數轉換成標準車型的當量交通量,當量交通量比單純地統計汽車個數更加具有實際意義。由于短時交通流的時間跨度并沒有非常標準的定義,本實驗以15 min作為最小時間單位,統計道路每15 min汽車當量交通量,得到4 800條數據。其中,以2018年11月1日到2018年12月15日時間段的交通當量數據作為訓練樣本,以2018年12月16日到2018年12月20日時間段的交通當量作為測試樣本,共計得到4 320個訓練樣本,480個測試樣本。

圖3 監測點位置圖
由于高速公路監測點對數據進行實時監測傳輸時可能會由于監測器異常、網絡異常或者存儲異常等因素導致數據存在重復、缺失或錯誤等問題,嚴重影響數據的真實性,因此需要對這些數據進行合理有效的處理。
首先對監測點數據進行處理。監測點數據主要存在數據重復和數據缺失問題。對于數據重復問題,根據重復數據記錄的時間排序,保留第一次出現的車輛數據,其他的重復數據進行刪除處理。數據異常指的是數據庫記錄的數據有部分缺失,如果需要的關鍵數據沒有缺失則不做處理,如果有缺失則做刪除處理。
對處理后的監測點數據進行統計,根據我國《公路工程技術標準》[19]的規定,對各種類型的車型進行機動車當量折算,將不同的機動車車型轉換為標準的機動車車型。當量能夠體現出機動車在道路上的占有情況。然后根據監測點記錄的機動車通行時間以15 min為最小時間單位,對機動車數量進行統計。
由于監測點數據缺失和數據異常問題會對統計數據造成影響,需要對統計出來的數據再次進行處理。考慮到高速公路機動車數據具有周期性、連續性和重復性的特點,采用歷史值填充和平均值法進行數據填充。對于少量數據缺失問題,采用平均值填充的方式對數據進行補充。如果有大量數據缺失,則根據道路數據周期性特點,采集之前一些天數相同的時間數據進行加權平均,將缺失數據進行填充。
從圖3可以發現,待預測監測點P的交通流量與上游監測點P1、出入口P2和P3、下游出口P4和監測點P5都有較大的關聯性,上下游的交通量變化會影響到P監測點的交通量變化。在模型建立前,首先對數據進行歸一化處理,讓數據映射到一定的范圍之內,這樣可以減少數據范圍對預測效果的影響。CNN-LightGBM組合模型訓練過程主要分為CNN特征提取和LightGBM預測兩個部分。
(1)使用CNN提取特征。CNN特征提取使用兩次卷積和兩次池化。第一次CNN模型利用3×3的卷積方式將數據轉換成[2,6,6]的特征圖,池化之后得到[2,3,3]的特征圖。第二次CNN使用3×3的卷積將數據轉換成[4,3,3]的特征圖,池化之后得到[4,2,2]的特征圖。之后使用Reshape對數據重組,將二維矩陣轉換成一維向量。使用全連接方式將數據變成128維度數據。實驗中CNN使用MSE作為損失函數,卷積核大小為3×3,步長為1,padding為1,第一次卷積核的個數由1變成2,第二次卷積核由2變成4。池化的窗口大小為3×3,步長為2,padding為1。
(2)將高維特征向量輸入到LightGBM模型進行預測。將CNN模型得到的特征向量作為輸入傳送給LightGBM模型,由LightGBM進行交通量預測。LightGBM模型學習率為0.1,最大深度為8,num_leaves為50,其他均使用默認值。
CNN-LightGBM模型設計流程如圖4所示。

圖4 CNN-LightGBM模型設計
為了驗證模型的有效性,實驗采用了均方根誤差(Root Mean Squart Error,RMSE)、平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)和平均絕對差值(Mean Absolute Error,MAE)作為評價標準[20],用于判斷預測交通當量數據的準確性。
(5)
(6)
(7)

為了驗證高速公路空間特性對交通量的影響,本實驗將考慮空間特性的LightGBM-1模型與未考慮空間特性的LightGBM-2模型作對比,如圖5所示。通過表1對比發現考慮到空間特性的LightGBM-1模型比未考慮到空間特性的LightGBM-2模型的MAPE降低了12.75%,RMSE降低了16.20%,MAE降低了16.91%。說明考慮空間特性的LightGBM-1模型預測效果更好,這表明,挖掘交通流的空間特性可以降低預測誤差。

圖5 LightGBM-1與LightGBM-2模型預測結果
將CNN提取的特征向量全連接后得到CNN預測模型,將CNN的預測結果與真實值進行對比,如圖6所示。結合CNN模型與LightGBM模型優勢的CNN-LightGBM模型的預測結果如圖7所示。由表1可知,考慮到時空特性的CNN-LightGBM與未考慮交通流空間特性的LightGBM-2相比,MAPE降低了28.28%,RMSE降低了30.87%,MAE降低了33.56%。CNN-LightGBM模型與考慮交通流空間特性的LightGBM-1模型相比,MAPE降低了17.80%,RMSE降低了17.51%,MAE降低了20.04%。CNN-LightGBM模型與單獨CNN模型相比,MAPE降低了23.69%,RMSE降低了15.69%,MAE降低了21.53%。這表明基于深度學習的CNN-LightGBM模型可以更加深入地挖掘交通流的時空特性,相比于組合中的單一模型,可以明顯降低預測誤差。

圖6 CNN模型預測結果

圖7 CNN-LightGBM模型預測結果
同時,為了體現該模型與其他組合模型的優越性,本實驗同時還利用了同類CNN-Xgboost模型與CNN-LightGBM模型作對比,如圖8所示。由表1可以看出,同樣挖掘交通量的時空特性,在本實驗中,CNN-LightGBM相比于CNN-Xgboost,MAPE降低了2.89%,RMSE降低了2.26%,MAE降低了1.63%。同時在本實驗中,以CNN提取的特征向量作為輸入的Xgboost模型運行時間為18.6 s,LightGBM模型運行時間為3.9 s,LightGBM模型運行速度遠高于Xgboost模型。在本實驗中CNN-LightGBM的預測效果優于CNN-Xgboost模型。

圖8 CNN-LightGBM模型與CNN-Xgboost模型預測結果
為了更一步驗證模型的有效性,本實驗還與傳統的Xgboost模型、KNN模型、神經網絡模型和SVR模型作對比,如圖9所示。結合表1的預測誤差,綜合以上所有模型對比結果發現,考慮時空特性影響的CNN-LightGBM模型在本實驗中可以明顯降低預測誤差。

圖9 其他模型預測結果

表1 實驗結果對比
在高速公路系統中,相比于傳統的車輛數量預測,交通當量的準確預測對交通控制具有重要的意義,可以反映出道路的實際占有情況,有助于居民出行和物流流通,對交通監管部門道路規劃和交通判別具有很大參考價值。本文選取某高速公路某路段監測點數據,采用CNN-LightGBM算法對交通當量進行預測,結合上下游交通量與附近高速公路出入口交通量變化,使用卷積神經網絡對交通當量提取空間維度數據特征,利用具有快速、低內存、高準確率特點的LightGBM模型對卷積神經網絡提取的高維特征向量進行處理預測,可以獲得較高的預測效果,相比于單獨的機器學習模型和其他組合學習模型具有更低的預測誤差。該模型具有很強的實用性與可靠性。但是由于采用的是高速公路某路段進行預測,并沒有考慮到高速公路各級關聯道路路網的復雜性,下一步將結合路網情況進行預測分析,使得模型更加具有通用性。