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