孫 煦, 陸化普, 吳 娟,2
(1.清華大學(xué) 交通研究所,北京 100084;2.軍事交通學(xué)院 汽車指揮系,天津 300161)
隨著社會(huì)經(jīng)濟(jì)的持續(xù)快速發(fā)展,人們的出行也更加頻繁,公路交通運(yùn)輸?shù)玫搅孙w速的發(fā)展。其中,客運(yùn)量是衡量公路運(yùn)輸發(fā)展程度的重要指標(biāo),可以反映社會(huì)經(jīng)濟(jì)發(fā)展現(xiàn)狀和人民生活水平,而科學(xué)準(zhǔn)確地預(yù)測(cè)公路客運(yùn)量及其發(fā)展的趨勢(shì)、特點(diǎn)和規(guī)律,是制定公路客運(yùn)發(fā)展規(guī)劃以及規(guī)劃公路客運(yùn)站場(chǎng)的重要理論依據(jù)[1]。國(guó)內(nèi)外對(duì)公路客運(yùn)量預(yù)測(cè)方法的研究經(jīng)歷了一個(gè)很長(zhǎng)的階段,早期主要是以時(shí)間序列法、彈性系數(shù)法、回歸分析法、灰色系統(tǒng)預(yù)測(cè)法等傳統(tǒng)方法為代表[2],而這些傳統(tǒng)方法主要是集中在對(duì)數(shù)據(jù)本身規(guī)律的回歸和時(shí)間趨勢(shì)外推的分析上,對(duì)客運(yùn)量生成與影響因素的內(nèi)在作用機(jī)理分析不夠,使得數(shù)據(jù)隱含信息量丟失較大。近年來,人工神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于客運(yùn)量預(yù)測(cè)中,它具有識(shí)別復(fù)雜非線性系統(tǒng)的特性,但是也存在著收斂速度慢、過學(xué)習(xí)和局部極值等問題[3],這些問題都影響了其預(yù)測(cè)精度。
支持向量機(jī)(Support Vector Machine,簡(jiǎn)稱SVM)是一種在統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ)上形成的、以實(shí)現(xiàn)結(jié)構(gòu)風(fēng)險(xiǎn)最小化為原則的學(xué)習(xí)方法[4]。與人工神經(jīng)網(wǎng)絡(luò)相比,它克服了神經(jīng)網(wǎng)絡(luò)所固有的局部極小點(diǎn)、過學(xué)習(xí)現(xiàn)象以及結(jié)構(gòu)和類型的選擇過于依賴經(jīng)驗(yàn)等缺陷。由于其具有模型的自由選擇(參數(shù)、基函數(shù)的位置等)、全局最優(yōu)以及良好的泛化能力等特性,因此在小樣本、高維、非線性預(yù)測(cè)領(lǐng)域具有很好的應(yīng)用效果[5]。但是和其他學(xué)習(xí)算法一樣,支持向量機(jī)的性能依賴于學(xué)習(xí)機(jī)的參數(shù),即訓(xùn)練參數(shù)的選擇對(duì)支持向量機(jī)的預(yù)測(cè)效果有著較大的影響。因此,根據(jù)實(shí)際的數(shù)據(jù)模型選擇合適的訓(xùn)練參數(shù)成為關(guān)鍵問題。
本文將蟻群算法與支持向量機(jī)結(jié)合,提出了基于蟻群的支持向量機(jī)參數(shù)優(yōu)選方法,利用蟻群算法優(yōu)化其訓(xùn)練參數(shù),得到了優(yōu)化的基于蟻群的支持向量機(jī)的公路客運(yùn)量預(yù)測(cè)模型。以北京市1978—2009年公路客運(yùn)量數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)[6],實(shí)驗(yàn)結(jié)果表明,相比于BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)的SVM方法,基于蟻群的支持向量機(jī)模型的預(yù)測(cè)精度更高、誤差更小,可以更有效地對(duì)公路客運(yùn)量進(jìn)行預(yù)測(cè)。
支持向量機(jī)是建立在統(tǒng)計(jì)學(xué)習(xí)理論和結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則基礎(chǔ)上的機(jī)器學(xué)習(xí)方法。它能夠根據(jù)有限樣本信息,在模型復(fù)雜性和學(xué)習(xí)能力之間尋求最佳折衷[7],有效地實(shí)現(xiàn)對(duì)基于小樣本的高維非線性系統(tǒng)精確擬合,同時(shí)也避免了人工神經(jīng)網(wǎng)絡(luò)等方法存在的陷入局部最優(yōu)解的問題,因此具有較好的推廣性。
支持向量機(jī)理論可用于分類問題和回歸問題,公路客運(yùn)量的預(yù)測(cè)問題屬于支持向量機(jī)的回歸問題。其基本原理是:假設(shè)給定的訓(xùn)練樣本為(xi,yi)(xi∈Rn為出入變量,yi∈Rn為對(duì)應(yīng)輸出值,i=1,2,…,l),通過一個(gè)非線性映射φ將數(shù)據(jù)映射到高維特征空間F,從而將非線性回歸問題轉(zhuǎn)化為高維特征空間的線性問題,即
其中,φ(x)是將樣本點(diǎn)映射到高維空間的非線性變換;w為權(quán)值矢量;b為閾值。
根據(jù)結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則,上述函數(shù)回歸問題就是尋求使風(fēng)險(xiǎn)最小函數(shù)最小的f,即
其中,等式右邊前一項(xiàng)(w·w)表示函數(shù)f(x)的復(fù)雜性;后一項(xiàng)表示訓(xùn)練集上的平均損失;懲罰參數(shù)c則體現(xiàn)了函數(shù)的復(fù)雜性和訓(xùn)練集上平均損失之間的折中關(guān)系;ε為引入的不敏感損失函數(shù),其定義為:
最小化(2)式引入非負(fù)松弛變量ξi和(i=l,2,…,l),轉(zhuǎn)化為等價(jià)最優(yōu)化問題:
引入Lagrange乘子αi及,上述優(yōu)化問題轉(zhuǎn)化為對(duì)偶問題:
其中,當(dāng)αi-非零時(shí)對(duì)應(yīng)的訓(xùn)練樣本為支持向量;K(xi,xj)=φ(xi)·φ(xj)為核函數(shù),其作用是不必知道從低維輸入空間到高維特征空間非線性映射φ(x)的具體形式,通過引入核函數(shù)就可得到?jīng)Q策回歸方程[8]。常用的非線性核函數(shù)有徑向基核函數(shù)、多項(xiàng)式核函數(shù)等。鑒于徑向基核函數(shù)構(gòu)造的SVM具有較強(qiáng)的非線性預(yù)測(cè)能力,因而本文選擇徑向基核函數(shù)構(gòu)造支持向量機(jī)。
從而得到回歸函數(shù):
研究表明,支持向量機(jī)的預(yù)測(cè)精度很大程度上受到參數(shù)取值的影響[9]。而傳統(tǒng)的參數(shù)選取基本都是根據(jù)經(jīng)驗(yàn)反復(fù)試驗(yàn)來選取,選取的時(shí)間較長(zhǎng)且結(jié)果的最優(yōu)性無法保證。為了提高參數(shù)的選取速度和最優(yōu)性,需要采用合適的智能優(yōu)化算法在一定的區(qū)域內(nèi)搜索各參數(shù)的最優(yōu)組合,從而獲得具有較強(qiáng)預(yù)測(cè)性能的支持向量機(jī)。
蟻群算法是文獻(xiàn)[10]通過模擬蟻群的覓食行為提出的一種新型模擬進(jìn)化算法。它運(yùn)用了正反饋、分布式計(jì)算和貪婪式啟發(fā)式搜索。該算法適應(yīng)性強(qiáng),不用計(jì)算目標(biāo)函數(shù)偏導(dǎo)數(shù),搜索效率高,尋優(yōu)能力突出,克服了其他智能算法容易陷入局部最優(yōu)的缺點(diǎn)。
鑒于以上優(yōu)點(diǎn),本文采用蟻群算法建立支持向量機(jī)的參數(shù)選擇模型,進(jìn)行參數(shù)的優(yōu)選。具體來說,就是將SVM的參數(shù)選取看作參數(shù)的組合優(yōu)化,對(duì)組合優(yōu)化問題建立目標(biāo)函數(shù),采用蟻群優(yōu)化算法來搜索最優(yōu)的目標(biāo)函數(shù)值,從而找到合適的參數(shù)取值。該模型無需計(jì)算梯度等信息,且有較高的全局尋優(yōu)效率。優(yōu)化的流程如圖1所示。
圖1 基于蟻群算法的支持向量機(jī)參數(shù)優(yōu)化流程圖
基于蟻群算法的SVM參數(shù)優(yōu)選過程中,由于目標(biāo)函數(shù)中隱含了各螞蟻所走過的所有節(jié)點(diǎn)的信息以及所建模型當(dāng)前的準(zhǔn)確度,因此蟻群系統(tǒng)是根據(jù)目標(biāo)函數(shù)值來更新信息素的濃度從而進(jìn)行反復(fù)的搜索尋優(yōu),所以目標(biāo)函數(shù)的選擇和蟻群搜索操作的實(shí)現(xiàn)是進(jìn)行參數(shù)優(yōu)選的2個(gè)重要步驟。
對(duì)于支持向量機(jī)回歸問題,目的是要逼近系統(tǒng)的非線性模型[11],因此以均方誤差EMS來描述支持向量機(jī)回歸與參考模型間的偏差,即
其中,l為樣本個(gè)數(shù);yi為參考模型的實(shí)際值;f(xi)為支持向量機(jī)計(jì)算的預(yù)測(cè)值。由此得到蟻群支持向量機(jī)模型的目標(biāo)函數(shù)為:
其中,優(yōu)化變量zi總共為3個(gè),對(duì)應(yīng)于參數(shù)c、σ、ε;[ai,bi]為各個(gè)變量zi的定義域;yi為實(shí)際值;f(xi)為通過SVM計(jì)算出的預(yù)測(cè)值。目標(biāo)函數(shù)即是選取最佳的參數(shù)組合,使得訓(xùn)練樣本集的總誤差最小,而尋參過程就是最小化F。
2.2.1 相關(guān)參數(shù)的初始化設(shè)定
初始化確定蟻群算法的基本參數(shù),如種群大小m、信息素更新比例因子ρ、信息素啟發(fā)因子α等;確定蟻群搜索操作的終止條件(本文設(shè)定最大循環(huán)次數(shù)Nmax作為終止條件)。
2.2.2 節(jié)點(diǎn)及路徑的生成
分別設(shè)定c、σ和ε具有相應(yīng)的有效數(shù)位使得待優(yōu)化變量X(統(tǒng)一代表這3個(gè)變量)具有n維分量,即X={x1,x2,…,xn},同時(shí)將各分量等分成N個(gè)節(jié)點(diǎn),并在xOy平面上表示出N*n個(gè)節(jié)點(diǎn),用符號(hào) Knot(xi,yi,j)表示一個(gè)節(jié)點(diǎn)。xi(i=1~n)中的N個(gè)節(jié)點(diǎn)組成一個(gè)層Li,共有n層。
設(shè)定螞蟻數(shù)m,給每只螞蟻k(k=1~m)各定義一個(gè)具有n個(gè)元素的一維數(shù)組Pathk,在Pathk中依次存放第k只螞蟻從L1層開始直至到達(dá)Ln層所要經(jīng)過的n個(gè)節(jié)點(diǎn)的縱坐標(biāo)值,可用來表示第k只螞蟻的爬行路徑。
2.2.3 迭代搜索
(1)設(shè)定初始時(shí)刻t=0,m只螞蟻都位于起始點(diǎn)處,搜索開始后,根據(jù)(9)式計(jì)算每只螞蟻k(k=1~m)從Li-1層向Li層的轉(zhuǎn)移概率Pk(xi,yi,j),采 用 賭 輪 法 選 擇 Li層 上 的 某 個(gè) 節(jié) 點(diǎn)Knot(xi,yi,j),從而轉(zhuǎn)移到該節(jié)點(diǎn),同時(shí)將該節(jié)點(diǎn)的縱坐標(biāo)值存入Pathk的第i個(gè)元素中。t時(shí)刻的轉(zhuǎn)移概率Pk(xi,yi,j)計(jì)算公式為:
其中,τ(xi,yi,j,t)為t時(shí)刻節(jié)點(diǎn) Knot(xi,yi,j)上遺留的信息量,假設(shè)初始時(shí)刻各節(jié)點(diǎn)上的信息素相等,信息素增量為零,即τ(xi,yi,j,0)=γ(γ 為常數(shù)),Δτ(xi,yi,j,t)=0;η 表 示 由 Knot(xi-1,yi,j)到 Knot(xi,yi,j)的期望程度,與上一次循環(huán)的目標(biāo)函數(shù)值F有關(guān)。
(2)經(jīng)過n個(gè)時(shí)間單位后,m只螞蟻都從起始點(diǎn)爬到終點(diǎn),將螞蟻k(k=1~m)所走過的路徑即數(shù)組Pathk組成一個(gè)解X*,計(jì)算出相應(yīng)的目標(biāo)函數(shù)值F*,比較各目標(biāo)函數(shù)值,確定本次循環(huán)中的最優(yōu)路徑(即對(duì)應(yīng)的目標(biāo)函數(shù)值最小的路徑),并記錄與其對(duì)應(yīng)的c、σ和ε值。
(3)令t=t+n,N=N+1,按照(10)式更新此時(shí)刻各節(jié)點(diǎn)上的信息量,并將Pathk(k=1~m)中的所有元素清零。
其中,Q為信息強(qiáng)度,它在一定程度上影響算法的收斂速度;Fk為第k只螞蟻在本次循環(huán)中的目標(biāo)函數(shù)值,由(8)式計(jì)算。
2.2.4 終止準(zhǔn)則
本文的終止條件為預(yù)設(shè)的最大迭代次數(shù)Nmax。若N<Nmax,且整個(gè)蟻群尚未收斂到走同一條路徑,則再次將全部螞蟻置于起始點(diǎn)0并重復(fù)操作迭代搜索中的各步驟,直到所有螞蟻全部收斂到一條路;若N<Nmax,且整個(gè)蟻群已收斂到走同一條路徑,則算法結(jié)束,輸出最優(yōu)路徑所對(duì)應(yīng)的相應(yīng)的c、σ和ε。
以北京市1978—2009年的公路客運(yùn)量數(shù)據(jù)為應(yīng)用實(shí)例(2006、2007年的數(shù)據(jù)由于具有特異性,因此剔除掉)。先以其中奇數(shù)年的公路客運(yùn)量數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),形成訓(xùn)練樣本集,以偶數(shù)年的數(shù)據(jù)作為測(cè)試數(shù)據(jù),形成測(cè)試集;再以偶數(shù)年的公路客運(yùn)量數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),形成訓(xùn)練集,以奇數(shù)年的數(shù)據(jù)作為測(cè)試數(shù)據(jù),形成測(cè)試集,從而對(duì)模型進(jìn)行反復(fù)訓(xùn)練。模型的各參數(shù)設(shè)置如下:c的取值范圍為(0.01,200),ε的取值范圍為(0,0.8),σ的取值范圍為(0.001,100);螞蟻種群大小m=50,最大迭代 Nmax=500,信息素更新比例因子ρ=0.7,α=1,β=5,Q=100。
數(shù)據(jù)的歸一化結(jié)果見表1所列。為了驗(yàn)證模型的有效性,同時(shí)選取了BP神經(jīng)網(wǎng)絡(luò)法及使用交叉驗(yàn)證試算的傳統(tǒng)SVM法對(duì)同一實(shí)例進(jìn)行預(yù)測(cè)。選取以下2個(gè)誤差指標(biāo)作為各種方法預(yù)測(cè)效果判斷的依據(jù)(yi指樣本提供的實(shí)際值,yi*指根據(jù)模型求得的預(yù)測(cè)值,n為預(yù)測(cè)值個(gè)數(shù)),即相對(duì)誤差ERP和平均絕對(duì)百分比誤差EMAP。
表1 數(shù)據(jù)及歸一化結(jié)果 104人
通過對(duì)訓(xùn)練樣本集進(jìn)行反復(fù)訓(xùn)練[12],選擇最優(yōu)的模型參數(shù),從而分別建立蟻群支持向量機(jī)預(yù)測(cè)模型、BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型以及傳統(tǒng)SVM預(yù)測(cè)模型。
利用3種模型通過訓(xùn)練奇數(shù)年份的數(shù)據(jù)所得到的偶數(shù)年份客運(yùn)量的預(yù)測(cè)結(jié)果對(duì)比如圖2所示,利用3種模型通過訓(xùn)練偶數(shù)年份的數(shù)據(jù)所得到的奇數(shù)年份客運(yùn)量的預(yù)測(cè)結(jié)果對(duì)比如圖3所示。
圖2 偶數(shù)年份客運(yùn)量數(shù)據(jù)預(yù)測(cè)結(jié)果比較
圖3 奇數(shù)年份客運(yùn)量數(shù)據(jù)預(yù)測(cè)結(jié)果比較
3種方法在2次預(yù)測(cè)中得到的所有年份的預(yù)測(cè)值以及與實(shí)際值相比較得到的誤差結(jié)果見表2所列。
表2 GA-SVM及傳統(tǒng)SVM、BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果比較
從表2中可以看出,基于蟻群算法的支持向量機(jī)預(yù)測(cè)模型比傳統(tǒng)SVM和BP神經(jīng)網(wǎng)絡(luò)模型效果明顯要好,而傳統(tǒng)SVM模型效果略好于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)。這是因?yàn)镾VM方法具有全局最優(yōu)性,不會(huì)陷入局部最小點(diǎn),避免了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)方法的缺陷,提高了預(yù)測(cè)精度。而基于蟻群的支持向量機(jī)方法,由于對(duì)影響支持向量機(jī)預(yù)測(cè)精度的重要參數(shù)c、ε和σ進(jìn)行了基于蟻群算法的連續(xù)空間的優(yōu)化搜索,避免了人工進(jìn)行參數(shù)選擇時(shí)需要依賴經(jīng)驗(yàn)的缺陷,從而明顯提高了預(yù)測(cè)精度。仿真結(jié)果也表明,采用蟻群算法優(yōu)化參數(shù)后的支持向量機(jī)模型比傳統(tǒng)支持向量機(jī)在預(yù)測(cè)時(shí)具有更高的精度和更強(qiáng)的泛化能力,即利用蟻群算法對(duì)支持向量機(jī)的參數(shù)進(jìn)行優(yōu)化搜索的方法是可行有效的。
本文提出了基于蟻群算法支持向量機(jī)的公路客運(yùn)量預(yù)測(cè)方法。支持向量機(jī)以統(tǒng)計(jì)學(xué)為基礎(chǔ),在小樣本、高維、非線性預(yù)測(cè)領(lǐng)域有著很好的應(yīng)用效果,但其預(yù)測(cè)效果很大程度上取決于其參數(shù)的選取,因此考慮應(yīng)用蟻群算法來優(yōu)化支持向量機(jī)的訓(xùn)練參數(shù),從而得到了基于蟻群算法的支持向量機(jī)的公路客運(yùn)量預(yù)測(cè)模型;以北京市1978—2009年的公路客運(yùn)量數(shù)據(jù)作為算例,并與BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)的SVM預(yù)測(cè)法相對(duì)比,驗(yàn)證了基于蟻群的支持向量機(jī)預(yù)測(cè)模型擬合程度更強(qiáng),預(yù)測(cè)精度更高,是一種可行有效的公路客運(yùn)量的預(yù)測(cè)方法。研究結(jié)果說明基于蟻群算法進(jìn)行支持向量機(jī)參數(shù)優(yōu)選的方法是有效的,具有一定的實(shí)際應(yīng)用價(jià)值。
[1] 劉 芹.基于最小二乘支持向量機(jī)的城市客運(yùn)量預(yù)測(cè)模型[J].交通與計(jì)算機(jī),2007,25(5):50-53.
[2] 陳 荔,馬榮國(guó).基于支持向量機(jī)的都市圈客運(yùn)量預(yù)測(cè)模型[J].交通運(yùn)輸工程學(xué)報(bào),2010,10(6):75-80.
[3] 文培娜,張志勇,羅 彬.基于BP神經(jīng)網(wǎng)絡(luò)的北京物流需求預(yù)測(cè)及分析[J].物流技術(shù),2009(6):91-93.
[4] Venkoba R B,Gopalakrishna S J.Hard grove grind ability index prediction using support vector regression[J].International Journal of Mineral Processing,2009,91(12):55-59.
[5] Liu Sheng,Li Yanyan.A novel predictive control and its application on water level system of ship boiler[C]//International Conference on Innovative Computing,Information and Control,2006:8.
[6] 中國(guó)統(tǒng)計(jì)出版社.北京市2010年度統(tǒng)計(jì)年鑒[EB/OL].[2011-03-20].http://www.bjstats.gov.cn/nj/main/2010-tjnj/index.htm.
[7] 耿 睿,崔德光,徐 冰.應(yīng)用支持向量機(jī)的空中交通流量組合預(yù)測(cè)模型[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2008,48(7):1205-1208.
[8] 魏 俊,周步祥,林 楠,等.基于蟻群支持向量機(jī)的短期負(fù)荷預(yù)測(cè)[J].電力系統(tǒng)保護(hù)與控制,2009,37(4):36-40.
[9] 曹占輝,李言俊.基于支持向量機(jī)和蟻群算法的空間目標(biāo)分類[J].航空計(jì)算技術(shù),2008,38(3):15-18.
[10] Dorigo M,Maniezzo V,Colorni A.Ant system:optimization by a colony of cooperating agents[J].IEEE Transaction on Systems,Man,and Cybernetics:Part B,1996,26(1):29-41.
[11] 倪麗萍,倪志偉,李鋒剛,等.基于蟻群算法的SVM模型選擇研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(9):95-98.
[12] 張志涌.精通MATLAB 6.5版教程[M].北京:北京航空航天大學(xué)出版社,2003:250-257.