一種在線式實時短時間交通流預測方法與流程
2023-12-01 00:27:06 2
本發明涉及一種交通流的預測方法,具體涉及一種基於ls-svm技術的在線式實時短時間交通流預測方法。
背景技術:
交通流預測是智能交通系統的關鍵組成部分,具有重要的研究意義。交通流預測主要是對由一定統計間隔的實時交通流時間序列構成的動力系統進行的一種預測性研究。交通流預測的主要研究對象為統計間隔為2至15分鐘內的短時交通流時間序列,由上述短時交通流時間序列構成的交通流動力系統具有非線性和非平穩的特徵。目前,短時交通流非線性預測方法主要包括灰色系統理論、神經網絡和支持向量機等方法,其中支持向量機(supportvectormachine,svm)通過採用結構風險最小化原則和引入核方法,有效解決小樣本、高維度的學習問題,並通過將學習算法轉化為凸二次規劃的優化問題,有效解決了局部極值問題,由於上述優點以及完備的統計學習理論基礎和良好的泛化性能,目前svm已經被廣泛應用於短時交通預測領域。在實際應用中,短時交通流時間序列是隨著時間的推移逐步注入到預測模型中,這就需要隨著新樣本的到來,對原預測模型實時在線更新。傳統的svm預測算法將所有的訓練樣本參與求解二次規劃問題,每當新樣本加入時,需要用所有的數據重新訓練預測模型,隨著樣本數量的增加預測模型的訓練效率不斷下降。相對而言,在線式的svm預測算法能夠充分利用前一步的學習結果,而不需要重新開始學習,從而可以減少新樣本加入時預測模型的訓練時間。
目前,常見的在線式svm回歸預測算法大多根據karushkuhntucker(kkt)條件將訓練數據集中的樣本點劃分為邊界支持向量集合、誤差支持向量集合和保留向量集合三類,當訓練數據集更新時,原模型所滿足的kkt條件被破壞,需迭代式的逐點判斷更新後數據集中各個樣本點的類型,並依據各個樣本點在三類集合之間的遷移情況修正svm回歸模型相關參數,使得模型重新滿足kkt條件。上述算法對新樣本點的增加和舊樣本點的刪除需要分兩個階段完成,每個階段都需要對模型進行迭代式的修正,算法實現複雜且收斂性無法有效保證,在實際工程中難於應用,因而迫切需要提出一種更加高效的在線式的svm預測算法。
技術實現要素:
針對上述現有技術中存在的問題,本發明的目的在於,提供一種在線式實時短時交通流預測方法,克服了常規在線短時交通流預測時預測模型重複訓練、預測模型更新算法的計算複雜度高等缺陷,實現了短時交通流預測模型的在線更新,並簡化了預測模型更新算法,在不降低預測精度的條件下,提高在線短時交通流預測的實時性。
為了實現上述任務,本發明採用以下技術方案:
一種在線式實時短時間交通流預測方法,包括以下步驟:
步驟一,選定需要進行交通流預測的路段,獲取所選路段的短時交通流歷史數據,並構建所選路段的短時交通流歷史資料庫;
步驟二,根據獲取的短時交通流歷史數據,確定短時交通流預測的預測時段;
步驟三,根據所述的預測時段,確定短時交通流數據的樣本周期;
步驟四,根據所述的樣本周期,確定在線預測時間樣本更新的滑動時間窗口長度,即每次在線預測時所需要使用的交通流歷史數據的數量;
步驟五,進行短時交通流的初始預測
首先,根據滑動時間窗口的長度,選擇初始短時交通流樣本數據,並構成最小二乘支持向量機模型,即ls-svm模型的初始訓練數據集,該訓練數據集中的交通流歷史數據按時間逆序排列,並根據採樣時刻的順序進行編號;然後,利用所述的初始訓練數據集訓練所述的ls-svm模型;最後,利用訓練好的最ls-svm模型進行初始交通流預測;
步驟六,按照滑動時間窗口進行交通流歷史數據的更新
在短時交通流歷史資料庫中,獲取一條新的交通流數據,根據該交通流數據的採樣時刻確定該數據在滑動時間窗口中的編號;然後,根據確定的編號,刪除原滑動時間窗口中對應編號的數據,將新的數據插入到該位置,這樣滑動時間窗口就完成了一次數據更新;
步驟七,對所述的ls-svm模型進行更新,然後進行新一輪的短時交通流預測。
進一步地,所述的路段短時交通流歷史數據是指路段短時交通流量數據,該數據通過公路運營管理部門獲取;路段短時交通流歷史數據按時間順序存儲,數據中包括數據採集日期、時刻和交通流量值。
進一步地,步驟二中所述的預測時段為5~15分鐘。
進一步地,步驟五中,滑動時間窗口表示為如下式所示的數據集合:
{(xi,yi)|i=1,2,...,m,xi=i}(1)
在式1中,xi的下標i表示交通流數據在滑動時間窗口中的編號,其取值範圍為1至m,m為滑動時間窗口的長度;xi的值等於其下標i,即xi=i;yi表示滑動時間窗口中第xi號交通流量採樣值。
進一步地,步驟五中,構建的ls-svm模型表示為:
上式中,m為滑動時間窗口長度;預設參數λ取值為1;核函數k(x,xi)採用徑向基rbf核函數,ai是lagrange乘子向量a的第i個元素,x為期望預測的交通流數據的編號,y為預測的編號為x的交通流的值,其中x取值大於m。
進一步地,所述的公式(2)中,lagrange乘子向量a的計算公式為:
a=(k+λ2e+c-1i)-1y(4)
上式中,預設參數λ取值為1,規則化參數c取值為4,e為m×m階的全1矩陣,i為m×m階單位矩陣,k為m×m階核函數矩陣,y=(y1,y2,...,ym)t為滑動時間窗口中的交通流歷史數據;
令h=k+λ2e+c-1i,(λ>0,c>0),將h稱為核擴展矩陣。
進一步地,步驟六中,計算新的交通流數據在滑動時間窗口中的編號i'採用以下公式:
i'=((n-1)modn)*t+d(6)
上式中,n表示新的交通流歷史數據是第n天的採樣數據,n是構建初始滑動時間窗口時選取的連續n天的交通流歷史數據,t表示交通流數據的樣本周期,d表示新的交通流歷史數據的採樣時刻編號。
進一步地,步驟七中對ls-svm模型進行更新的具體步驟為:
設步驟五中得到的核擴展矩陣h的逆矩陣表示為r,則當滑動時間窗口發生一次數據更新後,根據更新數據的編號i',按公式7計算滑動時間窗口發生一次數據更新後lagrange乘子向量anew:
在公式7中,aold表示滑動時間窗口更新前得到的lagrange乘子向量;r(:,i')表示由矩陣r的第i'列元素構成的列向量;表示本次數據更新中新加入滑動時間窗口的交通流歷史數據採樣值;表示本次數據更新中被替換掉的交通流歷史數據採樣值;
通過公式7求得lagrange乘子向量anew後,則在線更新的ls-svm預測模型可表示為:
本發明與現有技術相比具有以下技術特點:
本發明在進行在線短時交通流預測時,不需要進行ls-svm預測模型的重複訓練,僅根據更新的交通流訓練數據集,利用簡化的更新算法直接更新ls-svm預測模型,在不降低預測精度的條件下,提高在線短時交通流預測的實時性。本發明的方法適用於交通流預測,在智能交通系統中有重要的應用價值。
附圖說明
圖1為本發明方法的流程圖;
具體實施方式
最小二乘支持向量機(leastsquare-supportvectormachine,ls-svm)將傳統svm回歸模型的ε-損失函數更換為二次損失函數,將svm模型訓練樣本的不等式約束變為等式約束,進而將svm的求解從二次規劃問題轉化為解線性方程組問題,同時lagrange乘子的數量也減少一半,因此ls-svm模型比較適合在線建模問題。同時,短時交通流數據屬於周期性非平穩隨機序列數據,通過充分利用短時交通流數據的周期性特徵,在保證預測預測精度的條件下,可以進一步簡化在線學習過程中lagrange乘子的求解過程,有效降低計算複雜度,縮短模型在線更新時間,大幅度提高在線短時交通流預測的實時性。
本發明的詳細步驟介紹如下:
步驟一,選定需要進行交通流預測的路段,獲取所選路段的短時交通流歷史數據,並構建所選路段的短時交通流歷史資料庫;
所述的路段短時交通流歷史數據是指路段短時交通流量數據,該數據通過公路運營管理部門獲取;路段短時交通流歷史數據按時間順序存儲,數據中包括數據採集日期、時刻和交通流量值等內容;構建所選路段的短時交通流歷史資料庫。
步驟二,根據獲取的短時交通流歷史數據,確定短時交通流預測的預測時段,即需要預測未來多長時間內的交通流。短時交通流預測的預測時段通常為5分鐘至15分鐘,本實施例將預測時段設定為15分鐘。
步驟三,根據所述的預測時段,確定短時交通流數據的樣本周期;
通過樣本自相關分析發現,所述的短時交通流數據的樣本周期t可定義為一天內採集交通流數據的數量。本實施例中使用採樣間隔為15分鐘的短時交通流數據,其一天內採集96條數據,則短時交通流數據的樣本周期為96。
步驟四,根據所述的樣本周期,確定在線預測時間樣本更新的滑動時間窗口長度,即每次在線預測時所需要使用的交通流歷史數據的數量;
所述的滑動時間窗口是指本發明中進行第一次初始預測以及後續在線單次預測時所使用的短時交通流數據樣本集合;所述的滑動時間窗口的長度是指本發明中進行初始預測以及後續在線單次預測時所使用的短時交通流數據樣本的數量,滑動時間窗口長度被指定為樣本周期t的整數倍,可表示成n*t,其中n為所使用數據樣本的連續的天數,t為短時交通流數據的樣本周期。本實施例中短時交通流數據的樣本周期為96,選用連續5天的交通流歷史數據作為滑動時間窗口,則滑動時間窗口長度為5*96=480。
步驟五,進行短時交通流的初始預測
首先,根據滑動時間窗口的長度,選擇初始短時交通流樣本數據,並構成最小二乘支持向量機模型,即ls-svm模型的初始訓練數據集(即滑動時間窗口),該訓練數據集中的交通流歷史數據按時間逆序排列,並根據採樣時刻的順序進行編號;然後,利用所述的初始訓練數據集訓練所述的ls-svm模型;最後,利用訓練好的最ls-svm模型進行初始交通流預測;
本實施例中,選用連續5天的交通流歷史數據作為滑動時間窗口,滑動時間窗口長度為480。所述的滑動時間窗口中的交通流歷史數據按採樣時刻和樣本周期的順序排序並進行編號,例如,第1個樣本周期的第1時刻的交通流歷史數據編號為1,第1個樣本周期的第2時刻的交通流歷史數據編號為2,……,第2個樣本周期的第1時刻的交通流歷史數據編號為97,……,第5個樣本周期的第96時刻的交通流歷史數據編號為480等。
滑動時間窗口表示為如下式所示的數據集合:
{(xi,yi)|i=1,2,...,m,xi=i}(1)
在式1中,xi的下標i表示交通流數據在滑動時間窗口中的編號,其取值範圍為1至m,m為滑動時間窗口的長度;本實施例中,m為480;xi的值等於其下標i,即xi=i;yi表示滑動時間窗口中第xi號交通流量採樣值。
構建的ls-svm模型表示為:
上式中,m為滑動時間窗口長度;作為優選,預設參數λ取值為1;核函數k(x,xi)採用徑向基rbf核函數,ai是lagrange乘子向量a的第i個元素,x為期望預測的交通流數據的編號,y為預測的編號為x的交通流的值,其中x取值大於m,本實施例中,x大於480,可按下式取值:
x=480+l(3)
在公式3中,l表示期望預測的交通流數據在一天內的時刻序號,本實施例中,l取值為1至96的正整數。
在公式2中,lagrange乘子向量a為ls-svm預測模型的未知參數,需要根據滑動時間窗口中的交通流歷史數據計算得到。lagrange乘子向量a的計算過程就是ls-svm預測模型的訓練過程。lagrange乘子向量a通過下式進行計算:
a=(k+λ2e+c-1i)-1y(4)
在公式4中,作為優選,預設參數λ取值為1,規則化參數c取值為4;e為m×m階的全1矩陣,i為m×m階單位矩陣,k為m×m階核函數矩陣,其中第i行、第j列的元素可表示成k(xi,xj),k(xi,xj)為徑向基rbf核函數;y=(y1,y2,...,ym)t為滑動時間窗口中的交通流歷史數據,a=(a1,a2,...,am)t為待求的lagrange乘子向量。
令h=k+λ2e+c-1i,(λ>0,c>0),則公式4簡化為公式5式,其中將h稱為核擴展矩陣
a=h-1y(5)
本實施例中,根據所選取的滑動時間窗口並結合公式5進行計算,即可求得lagrange乘子向量a,進而通過公式2和公式3就可以開始進行交通流預測。同時可以發現,如果滑動時間窗口中發生了數據更新,就需要重新計算核擴展矩陣h並求其逆矩陣,然後再通過公式5計算新的lagrange乘子向量,其中矩陣求逆的計算過程複雜而且消耗時間較多,本發明在後續步驟中,對lagrange乘子向量的求解過程進行了簡化,在滑動時間窗口發生數據更新的情況下,不再需要計算核擴展矩陣h的逆矩陣。
步驟六,按照滑動時間窗口進行交通流歷史數據的更新
在短時交通流歷史資料庫中,獲取一條新的交通流數據,根據該交通流數據的採樣時刻確定該數據在滑動時間窗口中的編號;然後,根據確定的編號,刪除原滑動時間窗口中對應編號的數據,將新的數據插入到該位置,這樣滑動時間窗口就完成了一次數據更新;
計算新的交通流數據在滑動時間窗口中的編號i'採用以下公式:
i'=((n-1)modn)*t+d(6)
上式中,n表示新的交通流歷史數據是第n天的採樣數據,n的取值為大於n的正整數;n是構建初始滑動時間窗口時選取的連續n天的交通流歷史數據,在本實施例中n=5,算子(n-1)modn表示以n為模對n-1求餘數;t表示交通流數據的樣本周期,在本實施例中t=96;d表示新的交通流歷史數據的採樣時刻編號,在本實施例中d=1,2,…,96。例如,第6天第2時刻的交通流歷史數據在滑動時間窗口中的編號i'=2,第9天第30時刻的交通流歷史數據在滑動時間窗口中的編號i'=318。
步驟七,對所述的ls-svm模型進行更新,然後進行新一輪的短時交通流預測。
具體地,本實施例中,所述的ls-svm預測模型在線更新方法按下述步驟執行:
步驟7.1,設步驟五中得到的核擴展矩陣h的逆矩陣表示為r,則當滑動時間窗口發生一次數據更新後,根據更新數據的編號i',按公式7計算滑動時間窗口發生一次數據更新後lagrange乘子向量anew:
在公式7中,aold表示滑動時間窗口更新前得到的lagrange乘子向量;r(:,i')表示由矩陣r的第i'列元素構成的列向量;表示本次數據更新中新加入滑動時間窗口的交通流歷史數據採樣值;表示本次數據更新中被替換掉的交通流歷史數據採樣值。
步驟7.2,通過公式7求得lagrange乘子向量anew後,則在線更新的ls-svm預測模型可表示為:
上式中的參數含義同前。
步驟7.3,根據公式9即在線更新後的ls-svm預測模型進行新的交通流預測;
步驟7.4,如果需要更新交通流歷史數據,則返回步驟6繼續進行,否則繼續利用公式9進行交通流預測。
交通流預測是智能交通系統的關鍵組成部分。相對於傳統的交通流預測方法,在線式交通流預測方法主要具有諸多優勢,例如,能夠隨著採集數據的更新動態調整預測模型以提高預測精度;能夠充分利用已有的學習結果以有效減少預測模型的更新時間。然而,在已有的在線式交通流預測方法中,將新樣本點的增加和舊樣本點的刪除分為兩個階段完成,每個階段都需要對模型進行迭代式的修正,算法實現複雜且收斂性無法有效保證,在實際工程中難於應用。針對上述問題,本發明提出了一種高效的在線式短時交通流預測方法,對ls-svm模型中lagrange乘子向量的求解過程進行了簡化,利用滑動時間窗口來控制新樣本的加入和舊樣本的移除,只需要通過向量的線性運算即可求得由訓練樣本集的更新而引起變化的lagrange乘子向量,進而縮短了預測模型在線更新的時間,提高了線短時交通流預測的實時性。本發明的方法在進行在線式短時交通流預測時,具有更快的訓練效率和更短的模型訓練時間。