趙亞偉, 陳艷晶
(中國科學(xué)院大學(xué)工程科學(xué)學(xué)院,北京 100049)(2016年4月4日收稿; 2016年4月29日收修改稿)
隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)在各領(lǐng)域逐漸成為研究熱點,其中時間序列是一種應(yīng)用非常廣泛的數(shù)據(jù)類型.由于時間序列數(shù)據(jù)蘊含著豐富的信息,因此基于時間序列的預(yù)測已經(jīng)引起了越來越多的關(guān)注.然而,事物狀態(tài)的刻畫往往需要多個維度共同確定,且各個維度之間存在一定的關(guān)聯(lián)關(guān)系;因此,使用多維時間序列可以得到更多的信息[1-2],且現(xiàn)實場景中有很多多維時間序列數(shù)據(jù),如金融數(shù)據(jù)[3]、氣象數(shù)據(jù)[4-5]、醫(yī)學(xué)數(shù)據(jù)[6-7]等.
時間序列預(yù)測是采用預(yù)測模型根據(jù)歷史數(shù)據(jù)預(yù)測未來值.因此,多維時間序列預(yù)測是根據(jù)多維時間序列的歷史值預(yù)測某目標(biāo)維度的未來值.不同領(lǐng)域的方法都被用來解決時間預(yù)測問題.總體而言,已有的基于時間序列的預(yù)測主要分為以下兩類.一類是以自回歸移動平均模型(auto regression moving average, ARMA)和求和自回歸移動平均模型(auto regressive integrated moving average model, ARIMA)為代表的基于統(tǒng)計的時間序列預(yù)測算法.ARMA模型主要適合線性平穩(wěn)時間序列,ARIMA模型主要用來對差分平穩(wěn)時間序列進(jìn)行預(yù)測.這些都是線性模型.近些年關(guān)于這些傳統(tǒng)的時間序列模型的改進(jìn)也有很多[8-9].但由于現(xiàn)實世界的時間序列數(shù)據(jù)具有復(fù)雜性和隨機性,很難通過線性模型進(jìn)行準(zhǔn)確的描述.另一類以神經(jīng)網(wǎng)絡(luò)、支持向量機等為代表的非線性時間序列預(yù)測模型開始發(fā)展.隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)挖掘和機器學(xué)習(xí)等算法得到了廣泛的應(yīng)用和發(fā)展,因此關(guān)于這類非線性時間序列預(yù)測模型的改進(jìn)也越來越多.以上預(yù)測模型主要是基于單維時間序列的預(yù)測,但近些年來,針對多維時間序列的預(yù)測都有相應(yīng)的改進(jìn)[10-11].每個模型都有其缺點和優(yōu)點,因而,組合預(yù)測模型成為一個重要的研究方向.
本文將k-NN和BP神經(jīng)網(wǎng)絡(luò)模型組合進(jìn)行多維時間序列預(yù)測.首先通過k-NN從訓(xùn)練數(shù)據(jù)集中搜索與測試數(shù)據(jù)集中的樣本的k個近鄰,然后得到預(yù)測維度的預(yù)測值;其次通過BP神經(jīng)網(wǎng)絡(luò)模型得到另一個預(yù)測值;最后,將這兩個預(yù)測結(jié)果作為輸入,再次采用BP神經(jīng)網(wǎng)絡(luò)模型得到最終的預(yù)測結(jié)果.
多維時間序列X是一組維度xi(i=1, 2, 3,…,m)在一系列連續(xù)時刻tj(j=1, 2, 3,…,n)取得的有序觀測值的集合.時間序列各時間間隔可以相同,也可以不同,目前研究的主要是相同時間間隔的時間序列,即Δt=tj+1-tj(j=1, 2, 3,…,n-1)為定值.為便于描述,將tj記為j,即第j時刻.當(dāng)m=1時,X為單維時間序列.當(dāng)m>1時,即時間序列的維度數(shù)大于1,稱X為多維時間序列.則X可表示為一個m×n的矩陣,記為
(1)
式中,xij表示第i個維度在第j時刻的觀測值,且X的每一行都是一個單維時間序列.
通過滑動窗口方法將X轉(zhuǎn)換為一個新的數(shù)據(jù)集D.設(shè)滑動窗口的長度為h+p.則D={X1,X2, …,XL}, (L=n-h-p+1),且Xj為
(2)
Xj的前h列為訓(xùn)練模型的輸入,本文記為inwj.Xj的后p列為預(yù)測模型的輸出,本文記為outwj.記Xij為Xj的第i行,表示時間序列的第i個維度,并且inwij和outwij分別作為關(guān)于Xij的訓(xùn)練模型的輸入輸出.即多維時間序列預(yù)測模型為
n-h-p+1,0≤l≤p-1).
(3)
本文,設(shè)第m個維度為目標(biāo)預(yù)測維度.下面主要介紹已有的預(yù)測方法.
隨著數(shù)據(jù)挖掘和機器學(xué)習(xí)技術(shù)的發(fā)展和數(shù)據(jù)積累,無論從技術(shù)還是從數(shù)據(jù)獲取方面,都為多維時間序列預(yù)測提供了可能.基于多維時間序列的預(yù)測研究逐漸成為一個研究趨勢.由于多維時間序列具有數(shù)據(jù)量大、高維度等特征[12],基于多維時間序列的預(yù)測更加復(fù)雜和困難,組合預(yù)測模型成為解決該問題的一個重要研究方向.
文獻(xiàn)[10]使用奇異值分解(singular value decomposition, SVD)抽取特征,然后使用神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測.Han等[13]使用主成分分析(principle component analysis, PCA)去抽取有價值的信息進(jìn)而降低維度,然后采用Elman神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測.Cai等[14]提出改進(jìn)的支持向量回歸(support vector regression, SVR)方法進(jìn)行多維時間序列預(yù)測.文獻(xiàn)[15]將改進(jìn)的徑向基(radial basis function, RBF)神經(jīng)網(wǎng)絡(luò)用于多維時間序列預(yù)測.曹新莉和王樹朋[16]通過對原始風(fēng)電功率序列進(jìn)行處理得到重構(gòu)相空間,然后利用重構(gòu)相空間中預(yù)測點的近鄰點建立BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型.韓敏等[17]提出一種基于快速子空間分解方法的回聲狀態(tài)網(wǎng)絡(luò)預(yù)測模型.陳飛彥等[18]針對物聯(lián)網(wǎng)數(shù)據(jù)的異?;蛉笔栴},首先使用k近鄰算法對數(shù)據(jù)進(jìn)行估值或替換等預(yù)處理,并進(jìn)行初步預(yù)測,然后對預(yù)處理后的數(shù)據(jù)使用BP神經(jīng)網(wǎng)絡(luò)預(yù)測,綜合BP神經(jīng)網(wǎng)絡(luò)和k-NN的預(yù)測結(jié)果給出最終結(jié)論.此外文獻(xiàn)[18]是針對類別屬性預(yù)測的,組合BP神經(jīng)網(wǎng)絡(luò)和k-NN的預(yù)測結(jié)果時主要采用的是線性組合方式.由于多維時間序列的復(fù)雜性,很難綜合所有相關(guān)維度進(jìn)行預(yù)測.目前大多已有的多維時間序列預(yù)測模型采用單一模型進(jìn)行預(yù)測,基于多維時間序列的組合模型研究較少.而基于單維時間序列的組合預(yù)測模型中,鄭為中和史其信[19]利用貝葉斯算法為分別采用BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)模型的預(yù)測結(jié)果計算權(quán)重,將這兩個預(yù)測結(jié)果進(jìn)行線性組合得到最終的預(yù)測結(jié)果;秦大建和李志蜀[20]利用RBF神經(jīng)網(wǎng)絡(luò)將指數(shù)平滑預(yù)測方法和神經(jīng)網(wǎng)絡(luò)預(yù)測方法進(jìn)行組合;周芳[21]用k-NN找出歷史數(shù)據(jù)中相似的最近鄰,并使用神經(jīng)網(wǎng)絡(luò)尋找這些近鄰的最優(yōu)權(quán)重,得到最終的預(yù)測結(jié)果;文獻(xiàn)[22-23]中,k-NN被用來有效減少訓(xùn)練數(shù)據(jù)集數(shù)據(jù)量,采用k-NN為測試集中的每個樣本選擇最相似的近鄰,然后分別采用LS-SVM和神經(jīng)模糊系統(tǒng)為每個測試樣本訓(xùn)練預(yù)測模型.綜上,由于神經(jīng)網(wǎng)絡(luò)可以很好地處理非線性模型,因此,各種神經(jīng)網(wǎng)絡(luò)模型被用來進(jìn)行預(yù)測.k-NN算法的一個優(yōu)勢是,歷史數(shù)據(jù)集越大,搜索到的近鄰越相似.為了充分利用歷史數(shù)據(jù)和集成多個算法優(yōu)勢,本文采用基于k-NN和BP神經(jīng)網(wǎng)絡(luò)的組合模型進(jìn)行預(yù)測.
研究中發(fā)現(xiàn),單一預(yù)測模型通常在某一時期或?qū)δ愁愄卣鞯臄?shù)據(jù)有較好的預(yù)測表現(xiàn),即每種預(yù)測模型都有其適用范圍.因此,如果選取多個模型,每個模型在某一時段都有較佳的預(yù)測效果,將這些模型組合起來用于整體區(qū)間的預(yù)測,效果應(yīng)該更佳,即組合預(yù)測模型.則組合預(yù)測模型就是使用多個模型,以某種方式集成它們的特征,最終得到較佳的預(yù)測結(jié)果.本文提出的組合預(yù)測模型使用了k-NN和BP神經(jīng)網(wǎng)絡(luò)模型,為了將得到的兩個預(yù)測結(jié)果進(jìn)行合理的組合,采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型進(jìn)行非線性組合,即通過BP神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練權(quán)重,得到最佳的組合.在組合時,將上述的兩個預(yù)測結(jié)果作為輸入,使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練.本文提出的模型框架如圖1所示.
圖1 本文模型框架Fig.1 Model framework of the proposed method
如圖1所示,本文提出的模型步驟如下:
1)采用滑動窗口方法將多維時間序列X進(jìn)行轉(zhuǎn)換,并分為訓(xùn)練集D和測試集T.
2)采用k-NN方法,在訓(xùn)練集D中找到k個近鄰.每完成一次搜索,將該樣本加入搜索數(shù)據(jù)集中.
3)使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練基于訓(xùn)練數(shù)據(jù)集D的預(yù)測模型,記該神經(jīng)網(wǎng)絡(luò)模型為P.
4)將從2)和3)得到的預(yù)測值作為輸入,真實值作為輸出,訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型,記該神經(jīng)網(wǎng)絡(luò)模型為PN.
5)將測試數(shù)據(jù)集T中的每個樣本代入k-NN和模型P,得到對應(yīng)的預(yù)測值.
6)將從5)得到的臨時預(yù)測結(jié)果作為輸入,從PN模型得到預(yù)測結(jié)果.
7)根據(jù)已有規(guī)則或?qū)<医ㄗh,如邊界限制等,對從6)得到的預(yù)測結(jié)果進(jìn)行驗證和修改,得到最終的預(yù)測結(jié)果.
8)結(jié)束.
多維時間序列數(shù)據(jù)來自于真實世界的應(yīng)用,因此每個維度都是具有物理意義的.根據(jù)經(jīng)驗或?qū)<医ㄗh,可以得到一些規(guī)則,如維度的邊界限制,即時間序列維度的取值范圍是某一合理的區(qū)間.使用這些規(guī)則對預(yù)測結(jié)果進(jìn)行進(jìn)一步調(diào)整,可有效提高該模型的可信度.關(guān)于本文結(jié)合多維時間序列進(jìn)行k-NN預(yù)測的模塊和BP神經(jīng)網(wǎng)絡(luò)預(yù)測的模塊等下面將有詳細(xì)介紹.此外,本文提出的方法,有一些參數(shù)需要初始化,如inw的長度h、outw的長度p和k-NN方法中的參數(shù)k等.這些參數(shù)的確定將結(jié)合經(jīng)驗、專家建議和實驗等進(jìn)行確定.實驗部分將對參數(shù)的確定詳細(xì)介紹.
k-NN是一種基于類比學(xué)習(xí)的方法.即,通過比較一個給定的測試樣本和訓(xùn)練樣本的相似性.k-NN可以通過返回k個近鄰的平均值進(jìn)行回歸預(yù)測.本文采用k個近鄰的返回值進(jìn)行k-NN方法的預(yù)測.
k-NN是基于相似性搜索的預(yù)測方法.為了度量樣本之間的相似性,常使用歐式距離進(jìn)行度量.然而,一方面,隨著時間的變化,間隔時間較長的數(shù)據(jù)間往往會出現(xiàn)整體縮放的現(xiàn)象,為了降低由于數(shù)據(jù)縮放等對相似性度量帶來的影響,相似性度量前需要進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化.另一方面,由于不同維度間綱量的差異,若不進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化,取值范圍較大的維度的差異會影響取值范圍較小的維度的相似性度量效果.因此,本文采用Min-Max數(shù)據(jù)標(biāo)準(zhǔn)化方法,將各維度取值都映射到區(qū)間[0, 1].設(shè)訓(xùn)練數(shù)據(jù)集D的時間戳是從1到TL,則D的第j個樣本為Xj,(1≤j≤TL),如(2)所示,inwj=(X1j,…,Xmj)T.inwj數(shù)據(jù)標(biāo)準(zhǔn)化到區(qū)間[0, 1]后,有:
(4)
其中,
(1≤i≤m,0≤q≤h-1).
(5)
式中,mininwij和maxinwij分別為inwij的最小值和最大值.
對于一個給定的測試樣本inwT,起始時間點為T,長度為h,數(shù)據(jù)標(biāo)準(zhǔn)化后,有:
(6)
其中,
0≤q≤h-1).
(7)
式中,mininwiT和maxinwiT分別為inwiT的最小值和最大值.
然后計算inwT和每個訓(xùn)練集中樣本的歐式距離,記為Dis(j,T),則
(8)
由于不同維度對目標(biāo)預(yù)測維度的影響不同,在距離度量時,為不同維度加個權(quán)重,因此,式(8)轉(zhuǎn)化為:
(9)
其中,wi為第i個維度的權(quán)重.
經(jīng)過相似性搜索,與測試樣本最相似的k個樣本被找到,則對應(yīng)的k個outw中的值可用來預(yù)測.假設(shè),第j個訓(xùn)練樣是第T個測試樣本的近鄰.由于inwT和inwj經(jīng)過標(biāo)準(zhǔn)化后相似,則對應(yīng)的outw數(shù)據(jù)標(biāo)準(zhǔn)化后也相似.因此,為了得到預(yù)測值,outw也要進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化.
h≤q≤p+h-1)
(10)
h≤q≤p+h-1)
(11)
(12)
轉(zhuǎn)化為
(13)
式(13)是經(jīng)過k-NN方法后xi(T+q)的一個預(yù)測值.當(dāng)k≥2時,如(13)所示的k個預(yù)測值的平均值作為最終的預(yù)測值.設(shè)inwj1, …, inwjk為inwT的k個近鄰,目前使用比較廣泛的最終預(yù)測值的計算方法有算術(shù)平均值預(yù)測和帶權(quán)重平均值預(yù)測.算術(shù)平均值預(yù)測的表示形式為
(14)
對帶權(quán)重的平均值預(yù)測,權(quán)重可以通過多種方式進(jìn)行設(shè)置,由于與測試樣本越相似,權(quán)重應(yīng)該越高,本文采用以下方式:
(15)
式中,wjc為
(16)
在k-NN方法中,參數(shù)k值的選擇對結(jié)果會產(chǎn)生重大的影響.如果k值較小,“學(xué)習(xí)”的近似誤差會減少,但預(yù)測結(jié)果對近鄰的實例點非常敏感.如果k值較大,可以減少學(xué)習(xí)的估計誤差,但學(xué)習(xí)的近似誤差會增加,即不太相似的樣本也對預(yù)測起作用,使預(yù)測誤差變大.本文將根據(jù)歷史數(shù)據(jù)具體情況和實驗結(jié)果比較,選擇較佳的k取值.
近年來,神經(jīng)網(wǎng)絡(luò)已經(jīng)應(yīng)用于多個領(lǐng)域.由于現(xiàn)實世界系統(tǒng)的動態(tài)性和復(fù)雜性,很難用確定的線性的函數(shù)進(jìn)行準(zhǔn)確的描述,因此傳統(tǒng)的時間序列預(yù)測方法具有局限性,但神經(jīng)網(wǎng)絡(luò)可以解決該問題.本文使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行兩次預(yù)測,一是根據(jù)多維時間序列數(shù)據(jù)進(jìn)行預(yù)測得到臨時預(yù)測結(jié)果,二是將臨時預(yù)測結(jié)果作為輸入,進(jìn)一步組合得到最終的預(yù)測結(jié)果.其結(jié)構(gòu)圖如圖2所示.
圖2 BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.2 BP neural network model structure
從圖2可知,BP神經(jīng)網(wǎng)絡(luò)有3層,包括輸入層、隱藏層和輸出層.隱藏層的層數(shù)可以大于1,但隨著層數(shù)的增加,訓(xùn)練也會更加復(fù)雜.BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程如下:
1)原始數(shù)據(jù)收集和預(yù)處理,如數(shù)據(jù)標(biāo)準(zhǔn)化.
2)設(shè)計網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),包括隱藏層層數(shù)、輸入結(jié)點數(shù)、隱藏層節(jié)點數(shù)和輸出層節(jié)點數(shù)等.
3)將1)處理后的數(shù)據(jù)集分為訓(xùn)練集和測試集.
4)設(shè)計訓(xùn)練算法訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型.
5)結(jié)合給定的誤差評估BP神經(jīng)網(wǎng)絡(luò)模型的性能.當(dāng)訓(xùn)練次數(shù)達(dá)到給定的最大訓(xùn)練次數(shù),跳到6).如果誤差大于給定的誤差閾值,轉(zhuǎn)至4);否則,轉(zhuǎn)至6).
6)將測試數(shù)據(jù)集導(dǎo)入滿足條件的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,得到相應(yīng)的預(yù)測結(jié)果.
本文假設(shè)第m個維度為目標(biāo)預(yù)測維度,使用inwj和outwmj作為一組輸入輸出.此外,訓(xùn)練算法采用Levenberg-Marquadt算法.
組合預(yù)測方法是指將來自M個不同方法的預(yù)測結(jié)果{x1,x2, …,xM},按照一定的方式進(jìn)行組合,進(jìn)而得到最終的預(yù)測結(jié)果.目前常用的組合預(yù)測方法是基于線性的組合預(yù)測方法,即
(17)
基于線性組合的預(yù)測方法,常見的權(quán)重系數(shù)選取方法有算術(shù)平均法、最優(yōu)加權(quán)法、標(biāo)準(zhǔn)差法等,但這些方法的計算量都很大,而且效果欠佳.為了充分利用來自不同方法的預(yù)測結(jié)果,保持預(yù)測準(zhǔn)確度的穩(wěn)定性,達(dá)到最優(yōu)的組合效果,本文采用了基于BP神經(jīng)網(wǎng)絡(luò)的非線性組合方法,利用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到最佳權(quán)重.如圖3所示.當(dāng)k-NN預(yù)測模型和BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型完成之后,在模型訓(xùn)練階段,將得到的兩組預(yù)測結(jié)果作為輸入,真實值作為輸出,再次利用BP神經(jīng)網(wǎng)絡(luò)模型,得到模型PN.在預(yù)測階段,將k-NN和模型P得到的預(yù)測結(jié)果加載到模型PN,得到最終的預(yù)測結(jié)果.
圖3 組合預(yù)測模塊Fig.3 The combined prediction module
本文實驗使用的數(shù)據(jù)是高速公路某ETC車道日交通流量的真實數(shù)據(jù),包括2011年2月至2015年8月共4年1 600多個日期的數(shù)據(jù),ETC日交通流量如圖4所示,該站ETC交通流量總體呈波動上升趨勢,在該圖中,存在部分離群值,與其他時段交通量存在明顯差異,這些特殊時段大多為法定節(jié)假日和特殊天氣(如雨雪天氣)日.因此,多維時間序列數(shù)據(jù)集還包括ETC交通流量的影響因素數(shù)據(jù),即在此期間的法定節(jié)假日數(shù)據(jù)、高速公路免費數(shù)據(jù)以及每天的天氣數(shù)據(jù)等.多維時間序列數(shù)據(jù)集各維度如表1所示.本文實驗中,2015年前的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),2015年的數(shù)據(jù)作為測試數(shù)據(jù).
圖4 高速公路ETC車道日交通流量時間序列圖Fig.4 Time series diagram of highway ETC lane traffic flow
維度數(shù)據(jù)類型含義traffic_datedate通行日期day_of_weekint周幾,如周一為1,周二為2等isholidayint是否節(jié)假日,若是則為1,否則為0isfreeint是否高速公路免費,若免費則為1,否則為0weatherint天氣情況,其中晴為0,多云為1,陰為2,霧為3,雷陣雨為4等windforceint風(fēng)力,其中微風(fēng)為0,小于3級為1,3~4級為2等countfloat日交通量值
為評估本文方法的性能,本文進(jìn)行了一系列實驗比較本文預(yù)測方法和k-NN和BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型.本文記基于多維時間序列的k-NN方法,采用式(14)進(jìn)行預(yù)測的方法為knn1,采用式(15)進(jìn)行預(yù)測的方法為knn2;基于單維時間序列的k-NN方法,采用式(14)進(jìn)行預(yù)測的方法為knn3,采用式(15)進(jìn)行預(yù)測的方法為knn4.本文根據(jù)文獻(xiàn)[21]基于單維時間序列預(yù)測的算法思想,采用本文基于多維時間序列的k-NN方法得到k個近鄰,然后使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到最優(yōu)的組合權(quán)重,本文記此方法為BP_kNN.本文對采用式(17)線性組合,且權(quán)重取值方式為算術(shù)平均的方法記為kNN_BP_S.
此外,為了能評價預(yù)測實驗結(jié)果,本文采用相對誤差(relative error, RE)和平均絕對相對誤差(mean absolute relative Error, MARE)兩個性能指標(biāo):
(18)
(19)
式中,N表示預(yù)測樣本總數(shù),MARE是用來描述總體預(yù)測效果.
據(jù)上所述,本文模型需要確定一些參數(shù)取值.根據(jù)經(jīng)驗和專家建議,各參數(shù)的取值范圍如表2所示.
表2 參數(shù)取值范圍
當(dāng)h=8,p=1時,比較不同k值的預(yù)測結(jié)果,結(jié)果如表3所示.通過比較knn1、knn2和knn3、knn4,發(fā)現(xiàn)采用多維時間序列的預(yù)測結(jié)果的MARE比單維時間序列的小,即表明考慮的其他維度對目標(biāo)預(yù)測維度的影響可提高預(yù)測效果.通過比較knn1和knn2,knn3和knn4發(fā)現(xiàn),采用帶權(quán)重的式(15)預(yù)測效果優(yōu)于式(14),且隨著k的增加,knn2和knn4預(yù)測結(jié)果的MARE變化較慢.因為k越大,不相似的近鄰被用來預(yù)測,但其權(quán)重較小,對預(yù)測結(jié)果的影響也小.因此,本文選擇knn2,取k=3,對應(yīng)的MARE為5.22%.
對BP神經(jīng)網(wǎng)絡(luò)預(yù)測模塊和組合預(yù)測模塊采用的BP神經(jīng)網(wǎng)絡(luò)模型,各參數(shù)設(shè)置為隱藏層為1層,隱藏層結(jié)點為5,對k-NN模塊的參數(shù)k取3,h=8,p=1.交通流量預(yù)測結(jié)果驗證模塊,根據(jù)ETC交通流量的數(shù)據(jù)情況以及相關(guān)經(jīng)驗,設(shè)ETC交通流量的取值范圍為[0, 2max],其中max為已知交通流量數(shù)據(jù)的最大值.當(dāng)組合預(yù)測模塊預(yù)測的交通流量預(yù)測值不在該范圍時,用該預(yù)測時間點前h個歷史值的均值替換該預(yù)測值.knn2、BP神經(jīng)網(wǎng)絡(luò)、BP_kNN、kNN_BP_S和本文方法預(yù)測結(jié)果的MARE如表4所示.從表中可以看出,本文方法的MARE低于其他幾種方法;對比knn2、BP神經(jīng)網(wǎng)絡(luò)和kNN_BP_S、本文方法,發(fā)現(xiàn)將knn2和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行組合,可有效提高預(yù)測效果;對比knn2和BP_kNN、kNN_BP_S和本文方法,發(fā)現(xiàn)采用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的權(quán)重,MARE更小,也體現(xiàn)了采用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練權(quán)重的意義.因此,從整體意義上,本文方法具有較好的預(yù)測效果.本文方法的預(yù)測結(jié)果和真實結(jié)果如圖5所示.
表3 不同方法和k預(yù)測的MARE
表4 不同方法的MARETable 4 Performance comparison in terms of MARE %
從圖5可以看出,本文預(yù)測模型誤差較小,僅有少量點誤差較大.為了進(jìn)一步比較本文組合方法的組合預(yù)測效果,對所有預(yù)測值進(jìn)行絕對相對誤差統(tǒng)計,即|RE|,統(tǒng)計結(jié)果表5所示.從表5可以看出,本文方法的預(yù)測效果更好,且綜合了k-NN和BP神經(jīng)網(wǎng)絡(luò)的優(yōu)點.且本文方法90%以內(nèi)的預(yù)測時間點的絕對相對誤差都在10%以內(nèi),僅有少量的預(yù)測結(jié)果絕對相對誤差大于20%.
本文提出一種基于k-NN和BP神經(jīng)網(wǎng)絡(luò)的多維時間序列組合預(yù)測模型,結(jié)合了k-NN預(yù)測穩(wěn)定性和BP神經(jīng)網(wǎng)絡(luò)非線性預(yù)測的優(yōu)點.此外添加預(yù)測結(jié)果驗證模塊,利用已知規(guī)則和專家建議,對不合理預(yù)測結(jié)果進(jìn)行調(diào)整,進(jìn)一步提高了模型的預(yù)測效果.利用ETC車道交通流量真實數(shù)據(jù)進(jìn)行驗證,實驗表明,本文模型在整體預(yù)測性能上具有較低的MARE,即優(yōu)于單一預(yù)測模型.同時90%的預(yù)測結(jié)果的絕對相對誤差不大于10%,僅有少量的預(yù)測結(jié)果大于20%,滿足應(yīng)用需求.
圖5 本文方法預(yù)測值與真實值比較圖Fig.5 Comparison between the predicted results and the real values
誤差范圍/%樣本數(shù)目MARE/%knn2BP神經(jīng)網(wǎng)絡(luò)本文方法knn2BP神經(jīng)網(wǎng)絡(luò)本文方法[0, 5]1811871911.921.971.88(5,10]2932307.266.486.59(10,15]149913.0411.7412.24(15,20]72217.6018.1418.31>2012131133.7338.9535.74