翁小雄,郝 翊
(華南理工大學 土木與交通學院,廣東 廣州 510000)
準確、及時的交通流信息對于智能交通系統至關重要。近年來,交通數據呈爆炸式增長。在交通大數據背景下,短時交通流分析與預測工作不斷深入。現有的交通流預測方法多采用傳統時間序列模型[1],如李琦等[2]應用的移動平均法、J.RICE等[3]應用的KNN算法、M. S. AHMED[4]應用的ARIMA方法和近年來提出的組合模型法等。但以上算法均存在固有缺陷,導致對實際交通流預測效果不理想,這種情況促使筆者重新思考基于大數據的交通流預測問題。
最近,LSTM神經網絡作為一種擁有較強“記憶”能力的深度學習方法,已成功應用于分類任務、自然語言處理[5]、降維、物體檢測[6]、運動建模等場景中。國內外許多學者也將其應用于交通工程領域,例如:2015年,X.L.MA等[7]利用其長時間學習優勢,將LSTM應用于交通流預測;WU Yuankai[8]等基于LSTM對交通流的時空相關性進行了研究;2018年,王祥雪等[9]搭建基于LSTM的城市快速路短時交通流預測模型等。但是以上預測模型的搭建均以交通流量為單一特征進行輸入,并未挖掘交通流數據中隱含的周期性部分,忽略了其對交通流預測的影響。
筆者通過對歷史交通流數據的分析,證明客車占比是交通流數據中隱含的周期性部分,提出了增加客車占比特征的LSTM模型,并以廣州北環高速某收費站為例進行交通流預測的實例分析。結果表明:引入客車占比特征的LSTM預測模型降低了短時交通流預測的誤差,提高了預測的正確率。
1.1.1 數據集介紹
筆者所采用數據為廣東省廣州市北環高速公路某收費站2015年12月14日—20日一周的車流數據,共183 033條數據記錄。每條數據記錄中包含路網編號、路段編碼、站編號、車道編號、車道類型、日期及時間、車型、車種、車牌號碼、客貨標識等信息。其字段和數據類型如表1。
表1 數據集說明
抽取站編號、日期及時間、車型及客貨標識4個關鍵數據進行分析:站編號代表具體收費站,數據類型為整型;日期及時間數據為Datetime型;車型數據為整型,1,2,3,4,5分別為交通部統一標準的一類車至五類車的車型;客貨標識數據為整型,1表示客車,2表示貨車。數據實例如表2。
表2 數據實例
1.1.2 數據集處理
去除數據異常值、空值并進行線性歸一化,最終獲得9號收費站共182 539條車流信息數據。對數據按時間順序進行排列,設定統計時間間隔為15 min,得到672個時間序列,一周交通流量數據如圖1。
同時,計算此收費站每個時間序列的客車占比。設第i個時間序列內車流量總數為Mi,客車車流數為Vi,則第i個時間序列內客車占比Ki的計算公式如式(1):
(1)
利用式(1)計算一周的車流數據中每個時序的客車占比情況,作出折線圖,結果如圖2。
從圖1和圖2看出,高速公路交通流量數據與高速公路客車占比數據呈現明顯的周期性特征,與城市交通流理論中指出的大部分交通流量數據存在周期性相符合。這種特性不僅存在于周與周之間,不同的工作日之間,甚至一天內某些時段的交通流量數據也存在著相似。提取出交通流數據中隱藏的周期性部分可以幫助更好地理解交通系統,便于取得更準確的預測結果。
1.2.1 FFT算法介紹
周期性模式可以理解為對于包含N個事件的時序數據庫{E1,E2,E3,E4,…,EN},其中的事件總以固定時間間隔重復發生,則認為時間序列數據庫具有該模式。周期性驗證在信號處理領域是一個眾所周知的問題。傅里葉變換是一種基礎的信號處理工具,可確定數據中的頻率分量。快速傅里葉變換FFT(fast Fourier transformation)是離散傅里葉變換(DFT)的快速算法[10],其根據離散傅里葉變換的奇、偶、虛、實等特性,對離散傅里葉變換進行改進,使計算機計算離散傅里葉變換所需要的乘法次數大為減少。利用FFT算法,將數據從時域轉換至頻域,通過頻率函數可有效驗證數據的周期性[11]。其計算公式如式(2)、式(3):
(2)
(3)
1.2.2 高速公路數據的周期性驗證
利用1.2.1節介紹的快速傅里葉(FFT)算法對高速公路流量數據(圖1)及客車占比數據(圖2)進行周期性驗證,分別繪制其功率頻譜圖,結果如圖3、圖4。
從圖3和圖4中可看出,高速公路流量數據及客車占比數據均有明顯周期性,且兩者的最小周期相等,均為96。由于統計時間間隔為15 min,則96個時間序列剛好構成一天(24 h),亦即說明車流量數據與客車占比數據均具有日周期性的特征,其中客車占比數據是交通流量數據中隱含的周期性部分。
(4)
(5)
(6)
(7)
(8)
Ht=Ot×tanh(Ct-1)
(9)
式中:sigmoid函數是輸入門 、輸出門 、和遺忘門的激活函數,為雙曲正切函數。
采用均方根誤差(RMSE)、均方誤差(MSE)、平均絕對誤差(MAE)和平均絕對百分比誤差(MAPE)來評價模型的預測性能。RMSE、MSE、MAE和MAPE的計算公式如式(10)~式(13):
(10)
(11)
(12)
(13)
式中:MAPE為相對誤差,代表模型的適用程度; RMSE、MSE和MAE為絕對誤差,其值越小,說明預測值和真實值越接近,模型效果越好。
基于高速公路樣本數據采用長短時循環神經網絡(LSTM)訓練構建高速公路的短時交通流預測模型。其總體流程為:①數據預處理剔除異常值;②利用FFT對流量數據及客車占比數據進行周期性驗證;③利用LSTM對交通流量進行預測;④在流量數據中引入客車占比特征對流量進行預測;⑤模型評估,得出最優預測模型。其整體流程見圖6。
以廣州市北環高速公路某收費站2015年12月14日—2015年12月20日共計一周的車流數據進行短時交流預測分析,其中有效數據為182 539條,選取其中122 301條作為訓練樣本,其余60 238條作為測試樣本。
3.1.1 LSTM模型搭建及參數選擇
基于歸一化數據搭建LSTM模型,t為時間間隔,Nt為t時段車流量數。將t時段收費站的車流量作為模型的輸出,將此收費站t時段前的r個連續時間序列車流量值作為模型的輸入,總體的輸入輸出模式如圖7。圖7中,虛線框為一個訓練樣本,箭頭指向為此訓練樣本的標簽。選擇合適時間步長、網絡層數、各層節點數使模型擁有良好的性能。為了使模型具有較強的泛化能力,在每次做時間步長調整過后,需要對訓練集利用隨機函數將數據塊完全打亂,使得最大化地降低塊與塊之間的關聯性,增強預測的合理性和準確性。
試驗中的網絡構建采用Keras框架實現LSTM模塊。通過交叉驗證的試驗發現,采用2層LSTM構建的循環神經網絡,時間步長為4時,模型具有良好的表現力。模型采用隨機梯度下降(stochastic gradient descent, SGD)的方法進行優化,學習率為0. 001,批處理大小為128,最大迭代次數為5 000。
3.1.2 引入客車占比特征的改進模型
根據1.2.2節對高速公路收費站車流量數據和其客車占比數據的周期性驗證可知,客車占比數據是交通流數據中隱藏的周期性部分。類似于此的周期性數據有利于提高模型預測的準確度,故而在t時間間隔內的輸入特征中引入客車占比。改進后的輸入輸出模式如圖8。同時,為使實驗結果具有可比性,引入客車占比特征后依然運用2層LSTM神經網絡進行預測,采用隨機梯度下降進行優化,學習率為0.001,批處理大小為128,最大迭代次數為5 000。
3.2.1 實驗1
根據3.1.1節的預測模型,分別選取時間間隔t為5、10、15 min,選取r=4,即利用前4個時間序列的高速公路收費站車流量數據,預測第5個時間段的車流量。3個不同時間間隔的模型預測結果如圖9,3個不同時間間隔的預測誤差如表3。由表3可以看出: 3個時間間隔的預測模型的MAPE均在20%以下,說明模型有較好的適用程度;當時間間隔選取5 min時,預測模型的均方根誤差(RMSE)、均方誤差(MSE)和平均絕對誤差(MAE)分別為1.27、1.61和9.95,模型的預測效果最好。同時,為了比較算法的優劣程度,分別利用ARIMA算法、BP神經網絡對同樣的數據進行訓練及預測,各類算法預測誤差的比較結果如表4,其中LSTM算法的誤差最小,預測效果最好。
表3 不同時間間隔下算法的誤差
表4 各類算法誤差比較
3.2.2 實驗2
基于3.1.2節,對輸入樣本增加客車占比特征,同時選取與未加此特征時相同的t與r。模型預測結果如圖10。不同時間間隔下算法的誤差如表5。對比表3和表5可知:引入客車占比特征后,相同時間間隔下預測模型的RMSE、MSE與MAE均減小,且當時間間隔為5 min時,預測模型的RMSE、MSE與MAE分別為1.16、1.35和9.07,分別下降了0.11、0.26和0.88,說明引入客車占比特征可以有效減小模型誤差,提高預測準確率。
表5 引入客車占比后不同時間間隔下算法的誤差
3.2.3 小 結
對實驗1和實驗2進行比較,可得:當時間間隔選取為5 min時的模型預測結果最為優越;加入客車占比特征后,模型預測誤差減小,準確度提高。
以高速公路收費站的車流數據為基礎,引入客車占比特征,利用LSTM神經網絡構建高速公路短時交通流量預測模型。提取車流數據中的客車占比特征并利用快速傅里葉算法(FFT)繪制功率頻譜圖對其進行有效的周期性驗證,證明其是高速公路收費站車流量數據中隱藏的周期性部分。通過在模型中引入此特征,并選取適當的時間間隔,降低了模型的預測誤差,提高了短時車流量預測的正確率。