李磊
(惠州工程職業(yè)學(xué)院,廣東 惠州 516023)
隨著科學(xué)技術(shù)的發(fā)展以及物聯(lián)網(wǎng)技術(shù)的出現(xiàn),使得交通技術(shù)越來越信息化、智能化以及方便化。而此時智能交通系統(tǒng)的出現(xiàn)是一種更加高效、準確管理的信息系統(tǒng),是目前以及未來交通領(lǐng)域發(fā)展的方向。智能交通的出現(xiàn)能夠在減小交通道路運行壓力的同時并把道路基礎(chǔ)設(shè)施利用發(fā)揮到了最大;能夠減少環(huán)境污染,特別是噪聲以及汽車尾氣等;在交通出行方面能夠保障安全出行以及減少交通擁堵,提高智能交通運行效率。智能交通的出現(xiàn)符合當(dāng)代的可持續(xù)發(fā)展,因此受到越來越多地區(qū)和城市的重視。智能交通能夠減少交通擁堵提高交通運輸效率主要是通過對當(dāng)前以及未來的某一時間段內(nèi)短時車流量進行預(yù)測,通過預(yù)測能夠幫助出行的人,減少在道路上的等待的時間。
當(dāng)前車流量的預(yù)測主要是通過歷史車流量數(shù)據(jù)來對未來車流量進行預(yù)測。根據(jù)預(yù)測時間段長短,可以把車流量預(yù)測分為長時車流量預(yù)測、中時車流量預(yù)測以及短時車流量預(yù)測。其中,短時車流量預(yù)測時間通常不超過15 分鐘,在目前智能交通車流量預(yù)測方面應(yīng)用比較廣泛。短時車流量預(yù)測可以幫助人們在出行時避開某一段擁堵的道路或者是在高峰期出現(xiàn)時可以選擇錯開此時段出行。而智能交通車流量預(yù)測作為主要環(huán)節(jié),能夠隨時隨地動態(tài)的預(yù)測,為人們出行節(jié)省更多時間。同時,智能交通還可以幫助交通相關(guān)部門及時對道路交通車流量監(jiān)控以及調(diào)度,緩解交通道路日益擁堵,保障人們便利出行,減少不利因素,因此具有更大的研究意義。
目前,隨著人工智能技術(shù)日漸成熟,以及在各行各業(yè)中對人工智能技術(shù)的應(yīng)用,使得機器學(xué)習(xí)和深度學(xué)習(xí)也得了更多學(xué)者的研究,并且已經(jīng)進入了智能交通車流量預(yù)測方面。在機器學(xué)習(xí)和深度學(xué)習(xí)在車流量預(yù)測方面也取得了不錯的效果。但是,目前在短時車流量預(yù)測方面應(yīng)用最多的還是基于傳統(tǒng)的數(shù)理統(tǒng)計模型預(yù)測、組合模型預(yù)測以及人工智能神經(jīng)網(wǎng)絡(luò)模型預(yù)測。
而且使用神經(jīng)網(wǎng)絡(luò)算法在進行車流量的預(yù)測時,初始權(quán)值等參數(shù)的選取以及網(wǎng)絡(luò)訓(xùn)練樣本集的選擇會影響網(wǎng)絡(luò)梯度下降的收斂速度和梯度下降到最小訓(xùn)練誤差的概率,這往往需要技術(shù)人員根據(jù)經(jīng)驗做出大量調(diào)參工作,因此單一的神經(jīng)網(wǎng)絡(luò)模型往往存在準確性不高的問題。對此,目前在短時車流量預(yù)測方面應(yīng)用最多的有非參數(shù)回歸、歷史均值法以及近幾年比較流行的神經(jīng)網(wǎng)絡(luò)算法等。在上述的算法中,神經(jīng)網(wǎng)絡(luò)算法由于模型結(jié)構(gòu)具有靈活性、泛化能力強以及強大的學(xué)習(xí)廣泛地被關(guān)注。在對車輛交通流進行預(yù)測時,此刻預(yù)測狀態(tài)對前一時刻的交通流狀態(tài)有很強的依賴性和一定的關(guān)聯(lián)度,上一刻交通流狀態(tài)有可能會導(dǎo)致下一刻的交通流狀態(tài)發(fā)生很大變化。而傳統(tǒng)的前反饋神經(jīng)網(wǎng)絡(luò)系統(tǒng)沒有記憶功能,不能記憶前期歷史輸入的信息,因此在短時車輛交通流預(yù)測方面還是有一定難度。
在實際工作中運用神經(jīng)網(wǎng)絡(luò)算法對車流量進行預(yù)測時,由于初始參數(shù)設(shè)置與以及樣本訓(xùn)練集的選取會導(dǎo)致網(wǎng)絡(luò)梯度下降速度收斂的快慢以及梯度下降到最小訓(xùn)練誤差的概率,不能很好地處理時間序列較長的車流量統(tǒng)計。為解決上述出現(xiàn)的問題,因此本文在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的基礎(chǔ)上提出了一種基于集成長短期記憶(LongShort-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)的短時車流量預(yù)測模型,LSTM 模型不僅克服了前饋神經(jīng)網(wǎng)絡(luò)的時間序列問題,而且該模型中存在遺忘門等相關(guān)記憶單元,能夠較好地克服RNN 中存在的梯度消失和爆炸問題,且能夠提高預(yù)測準確率。
又由于交通流的預(yù)測要充分考慮時空相關(guān)特性,因此在提出了一種基于KNN 和LSTM 組合的交通流預(yù)測方法。在預(yù)測過程中,先通過KNN 算法對預(yù)測目標區(qū)域道路進行分類和篩選,通過設(shè)置不用的閾值,篩選出與目標檢測點距離較近的個檢測點。將篩選出的個檢測點數(shù)據(jù)作為LSTM 模型的輸入數(shù)據(jù)進行預(yù)測,從預(yù)測結(jié)果中,取誤差最小時對應(yīng)的值結(jié)果相加,該計算結(jié)果可以作為最終車輛交通流的預(yù)測值。在預(yù)測過程中通過兩種算法模型相結(jié)合,可以發(fā)揮各自模型的優(yōu)點,同時,又彌補了各個模型的缺點,在交通流預(yù)測中提高預(yù)測效率以及準確性。
短時車流量交通流在預(yù)測時的基本流程為:通過檢測裝置(主要有GPS 定位、路測感應(yīng)線圈)定位實時采集到車輛交通流數(shù)據(jù),對采集到的數(shù)據(jù)進行預(yù)處理,預(yù)處理的過程主要是摒棄一些無用數(shù)據(jù),對預(yù)處理后的數(shù)據(jù)集構(gòu)建交通流數(shù)據(jù)庫。當(dāng)需要預(yù)測下一刻的車輛交通流時,需要根據(jù)當(dāng)前車輛交通流狀態(tài)和交通流數(shù)據(jù)歷史數(shù)據(jù)庫的數(shù)據(jù)進行匹配,從而可以實現(xiàn)下一刻交通流的預(yù)測。預(yù)測過程流程圖如圖1所示。
圖1 短時交通流預(yù)測的基本流程
K-最近鄰算法(KNN)是在1968年由Cover和Hart提出,是一種分類的算法。所謂K-最近鄰法就是在樣本采集過程中,每個樣本都可以用個最接近的鄰居來表示。在分類算法實施過程中基于實例的學(xué)習(xí),數(shù)據(jù)集事先已經(jīng)進行了分類和特征值的計算,當(dāng)收到新的樣本之后,可以直接來進行數(shù)據(jù)處理。目前,K-最近鄰算法主要運用在數(shù)據(jù)挖掘分類中,也是最簡單的一種方法。
在實際數(shù)據(jù)分析過程中,KNN 算法主要用在非參數(shù)回歸模型中,在此模型的原理主要是基于非參數(shù)數(shù)據(jù)預(yù)測。在預(yù)測過程中,通過歷史數(shù)據(jù)庫中的數(shù)據(jù)與當(dāng)前需要分類或預(yù)測的數(shù)據(jù)進行相似度的匹配,選取其中匹配度最高的個樣本,通過樣本選取,確定選取的個樣本類型。如果個樣本類型大多一致,就可以確定需要分類的樣本也是屬于歷史數(shù)據(jù)庫中的類別。KNN 算法原理可以用公式(1)表示:
上述公式中,表示為每個待測站點采集到的車流量樣本特征向量,表示歷史車流量數(shù)據(jù)集中樣本類別,為常數(shù),取值為1,2,3,…,。X表示為目標檢測站點車流量預(yù)測值,Y表示第個檢測站的交通流量。利用歐式距離公式(公式5)計算出采集到樣本與中特征樣本之間的歐式距離,通過距離大小,選擇出待分類樣本和中特征樣本之間的相似度。通過相似度找出待分類樣本最鄰近的個點來決定預(yù)測數(shù)據(jù)的類別。
KNN 算法用于短時交通流預(yù)測的基本流程圖如圖2所示。在預(yù)測過程中通過歷史車流量數(shù)據(jù)采集進行預(yù)處理,構(gòu)建歷史車流量數(shù)據(jù)庫。通過利用KNN 算法對當(dāng)前實時檢測到的車流量數(shù)據(jù)和歷史數(shù)據(jù)庫數(shù)據(jù)進行比對篩選,經(jīng)過預(yù)測算法的處理得到最終預(yù)測結(jié)果。
圖2 KNN 算法用于短時車流量預(yù)測基本流程
LSTM(長短時記憶)模型是20世紀90年代基于RNN模型上提出的一種神經(jīng)網(wǎng)絡(luò)模型,該模型能夠解決RNN 模型在預(yù)測時出現(xiàn)的梯度消失以及梯度爆炸現(xiàn)象,同時在處理數(shù)據(jù)序列上有著自己獨特的優(yōu)勢,因此,被廣泛地應(yīng)用在車流量預(yù)測中。
LSTM 模型是在RNN 的模型基礎(chǔ)之上增加了一些門的結(jié)構(gòu)設(shè)置,通過門結(jié)構(gòu)設(shè)置來控制信息。第一層門是遺忘門,該門的主要作用是篩選信息,篩選掉不重要的信息,保留所需的信息數(shù)據(jù)特征。第二層門是輸入門,該門的作用是更新部分數(shù)據(jù)信息,以填補經(jīng)過遺忘門篩選掉的信息。第三層門是輸出門,該門的作用是對輸入進來的數(shù)據(jù)信息進行處理,然后把處理完的數(shù)據(jù)進行輸出。當(dāng)要處理數(shù)據(jù)的步長過長時,LSTM 模型利用記憶塊功能,此時,LSTM 會發(fā)生梯度消失的現(xiàn)象,能夠更加準確地對數(shù)據(jù)進行預(yù)測。
假定車流量預(yù)測模型需要測量某一段區(qū)域道路,待測量的區(qū)域道路上有很多個相鄰的上下游路段,把這些不同的路段設(shè)置成不同的檢測點,假設(shè)該區(qū)域路段上共有O 個檢測點,可把該區(qū)域道路上第天的車流量交通數(shù)據(jù)流對應(yīng)矩陣定義為F。
在上述公式中,區(qū)域道路的第個檢測點的第天的交通流用Z 表示;目標檢測點第天的交通流量用Z 表示;示為第個檢測點第天在時刻的交通流量用Z ()表;目標檢測點第天在時刻的交通流量用Z ()表示;交通流檢測數(shù)據(jù)序列中總的樣本個數(shù)用表示。
為了使檢測到的數(shù)據(jù)更精確,LSTM 模型把區(qū)域道路的每個檢測點在連續(xù)天中檢測的車流量數(shù)據(jù)作為測試數(shù)據(jù),也即歷史數(shù)據(jù);把區(qū)域道路中所有待測道路連續(xù)天的車輛交通流數(shù)據(jù)用矩陣表示。
在預(yù)測過程中,通過對矩陣中交通流數(shù)據(jù)處理主要是通過KNN 算法對目標預(yù)測區(qū)域路段進行相關(guān)性篩選,通過歐式距離的計算以及KNN 算法相似性比較,設(shè)置不同的閾值,篩選出與目標預(yù)測區(qū)域相似度較高的個檢測點對應(yīng)的區(qū)域路段。然后,將篩選出的個區(qū)域路段數(shù)據(jù)值通過LSTM 模型進行預(yù)測,從而得到車流量交通流預(yù)測,最后將誤差較小的結(jié)果作為最終的車流量預(yù)測值。
預(yù)測算法流程設(shè)計。KNN 算法和LSTM 模型的短時交通車流預(yù)測的具體過程主要實施如下:
(2)利用KNN 算法分別計算出第個檢測點的車流量均值與目標檢測點流量均值的歐式距離d:
(3)將得到區(qū)域道路中的O 個歐式距離d的值,按照遞增的順序進行一定排序。
(4)設(shè)=1,取與前個距離對應(yīng)的檢測點數(shù)據(jù)集,構(gòu)造經(jīng)過數(shù)據(jù)篩選后第天的交通流矩陣,定義為:
區(qū)域路段第天的車流量矩陣F,定義為:
(5)選取篩選后的路段矩陣F中的前-1 天的數(shù)據(jù)作為訓(xùn)練集,然后預(yù)測目標監(jiān)測點的第天的車流量值:
其中表示預(yù)測模型,選用LSTM 模型。
(6)令=+1,依次循環(huán)步驟4 和步驟5,直到當(dāng)>0 時,循環(huán)終止。
(7)選取值預(yù)測誤差最小時,對應(yīng)的預(yù)測車流量數(shù)據(jù)值,并將此數(shù)據(jù)值作為最終的車流量預(yù)測結(jié)果值。整個預(yù)測模型流程圖如圖3所示。
圖3 基于KNN 與LSTM 的短時交通流預(yù)測計算流程圖
本次實驗的環(huán)境為windows10 64 位操作系統(tǒng),CPU 為Intel(R)Core(TM)i7-10510U 處理器,內(nèi)存為8 GB,Python 語言集成開發(fā)環(huán)境為Pycharm。使用惠州市惠州大道的車流量2021年10月1日至11月30日的數(shù)據(jù)構(gòu)造樣本集,并對所建立的基于LSTM 神經(jīng)網(wǎng)絡(luò)的短時車流量預(yù)測模型進行訓(xùn)練,然后將訓(xùn)練好的交通流數(shù)據(jù)集模型進行保存。對所采集的車流量數(shù)據(jù)序列輸入到模型,然后對當(dāng)天車流量進行滾動預(yù)測,得到24 小時車流量預(yù)測結(jié)果圖和96 個序列(每15 分鐘采集一次數(shù)據(jù))。
為了更好地評價所設(shè)計的短時車流量預(yù)測系統(tǒng)的性能指標,本文主要從以下三個性能指標進行評價,分別是絕對平均百分比誤差、均方根誤差和準確率。三個性能指標的數(shù)學(xué)表達式分別為:
(1)MAPE 絕對平均百分比誤差:
絕對平均百分比誤差反映了預(yù)測的交通流量值y與交通流實際測量值y之間的偏離程度。
(2)RMSE 均方根誤差:
RMSE 誤差值的大小能夠準確反映出使用預(yù)測方法預(yù)測誤差的程度大小,RMSE 值越小說明預(yù)測結(jié)果越精確,通過RMSE 值的大小還可以反映出測得誤差的離散程度。
(3)ACC 準確率:
準確率主要反應(yīng)的是實際測得值和預(yù)測值之間差的絕對值與實際測得值之間的百分比。百分比越大反應(yīng)預(yù)測模型越好。
在模型建立基礎(chǔ)上,經(jīng)過多次交通流預(yù)測實驗,文中應(yīng)用到的LSTM 模型主要層數(shù)分為四層,分別是一個輸入層、兩個隱藏層和一個輸出層。按照圖4所示的區(qū)域道路交通流數(shù)據(jù)進行預(yù)測,以前45 天數(shù)據(jù)為訓(xùn)練數(shù)據(jù),站點惠州市惠州大道小金口市場在11月15日的交通流量預(yù)測值及真實值如圖5所示,此時KNN 中的K 取值為5,在圖中藍色曲線代表實際值,棕色曲線代表預(yù)測值。通過預(yù)測值和實際值的對比,可以發(fā)現(xiàn)預(yù)測值和實際值基本上相吻合,能夠較好地當(dāng)前時間段車流量的變化特征,表明本文所提出的KNN 和LSTM 模型在實際短時車流量預(yù)測中具有一定的可行性和準確性。
圖4 區(qū)域道路預(yù)測圖
圖5 預(yù)測值和實際值
為了評價KNN-LSTM 模型的預(yù)測性能,本文分別計算了預(yù)測結(jié)果的MAPE、RMSE 及ACC,并與LSTM 模型的預(yù)測結(jié)果進行對比,結(jié)果如表1所示??梢钥闯?,提出的KNN-LSTM 模型具有最佳的預(yù)測性能,其預(yù)測準確率達到了93.05%。同樣和未考慮空間相關(guān)性的LSTM 模型相比,其預(yù)測精度也提高了4.16%。表明本文所提出的基于時空相關(guān)的KNN-LSTM 模型具有良好的預(yù)測性能,是一種有效的短時交通流預(yù)測模型。
表1 預(yù)測性能對比
根據(jù)短時車流量交通流的時空特性以及RNN 算法的缺點,本文提出了一種基于KNN 和LSTM 相結(jié)合的短時車流量預(yù)測模型。通過對惠州市小金口市場路段的短時車流量預(yù)測,可以看出LSTM 模型既解決了RNN 模型的缺點,又有著記憶功能,對短時車流量預(yù)測結(jié)果起到了很好的作用。經(jīng)過實驗比對,本文提出的KNN-LSTM 模型預(yù)測結(jié)果準確率比LSTM 預(yù)測的準確率提高了4.16%,預(yù)測誤差更小,預(yù)測結(jié)果更精確。