王 哲,楊學(xué)軍,柳 林
(海河水利委員會(huì)水文局,天津 300170)
傳統(tǒng)需水預(yù)測(cè)方法適用于單一幾何增長(zhǎng)平穩(wěn)的序列,并不能反映需水預(yù)測(cè)中各影響因素之間的動(dòng)態(tài)相互制約關(guān)系。20世紀(jì)90年代至今,許多學(xué)者開(kāi)始研究支持向量機(jī)、人工神經(jīng)網(wǎng)絡(luò)等基于數(shù)據(jù)挖掘、運(yùn)用計(jì)算機(jī)智能技術(shù)的新方法,這些方法的良好預(yù)測(cè)性能得到了廣泛關(guān)注[1]。針對(duì)支持向量機(jī)模型(Support Vector Machine,簡(jiǎn)稱(chēng) SVM)在需水預(yù)測(cè)中一些關(guān)鍵參數(shù)如不敏感損失參數(shù)、核參數(shù)及懲罰系數(shù)等難以確定的問(wèn)題,提出了運(yùn)用混合智能算法優(yōu)化SVM的參數(shù),建立基于混合智能算法的需水預(yù)測(cè)模型,以減少參數(shù)選擇的盲目性,提高SVM的預(yù)測(cè)精度。
支持向量機(jī)通過(guò)非線(xiàn)性映射將輸入向量從原空間映射到高維空間,在高維空間進(jìn)行線(xiàn)性回歸[2];同時(shí)運(yùn)用結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則并利用原空間的核函數(shù)取代高維空間的點(diǎn)積運(yùn)算,使復(fù)雜的計(jì)算得以簡(jiǎn)化。
最小二乘支持向量機(jī)(LS-SVM)將不等式約束替換為等式約束,且將誤差平方和損失函數(shù)作為訓(xùn)練集的經(jīng)驗(yàn)損失,簡(jiǎn)化了計(jì)算復(fù)雜性,求解速度相對(duì)加快[3]。
LS-SVM的核函數(shù)包括徑向基函數(shù)(RBF)、多項(xiàng)式函數(shù)、Sigmoid函數(shù)等。由于徑向基核函數(shù)的泛化能力比較強(qiáng),因此采用徑向基核函數(shù),其形式如下:
LS-SVM需要確定核參數(shù)(σ)和懲罰系數(shù)(c),而上述參數(shù)的確定缺乏有效參考依據(jù)和規(guī)則,盲目選擇參數(shù)降低了模型的預(yù)測(cè)精度。
粒子群算法(PSO)有記憶功能,所有粒子都會(huì)被保存,而遺傳算法(GA)在尋到最優(yōu)解的同時(shí)以前的粒子隨著種群的改變而被破壞。PSO是一種單項(xiàng)信息共享機(jī)制,僅通過(guò)當(dāng)前搜索到最優(yōu)點(diǎn)進(jìn)行信息共享;而GA則在整個(gè)種群染色體之間互相共享信息,整個(gè)種群較均勻地向最優(yōu)域移動(dòng)[4]。因此,基于遺傳和粒子群的混合智能算法將粒子群算法與遺傳算法相融合,汲取2種算法的優(yōu)點(diǎn),克服各自的缺陷,以使其在時(shí)間效率上優(yōu)于遺傳算法,在求精確解效率上優(yōu)于粒子群算法。
混合智能算法的基本思想是利用粒子群算法并行性、記憶能力以及良好的全局尋優(yōu)能力,避免搜索陷入局部最優(yōu),同時(shí)借鑒遺傳算法中的進(jìn)化思想,利用雜交、變異算子來(lái)進(jìn)行局部尋優(yōu),使其能快速搜索到全局最優(yōu)點(diǎn)。在搜索解的過(guò)程中通過(guò)雜交操作加強(qiáng)了對(duì)粒子間區(qū)域的搜索能力以利用現(xiàn)有而未能合理利用的信息產(chǎn)生更好的解;引入變異操作產(chǎn)生新的解以增加種群的多樣性從而減少陷入局部最優(yōu)的可能性,避免進(jìn)化過(guò)程在早期就陷入局部解而進(jìn)入終止過(guò)程,使之在盡可能大的空間中獲得質(zhì)量較高的優(yōu)化解。
在LS-SVM求解中,懲罰系數(shù) 、核函數(shù)及其參數(shù)的選擇對(duì)模型的學(xué)習(xí)精度和泛化能力的好壞起著決定性作用[5]。
(1)選擇核函數(shù):研究和實(shí)驗(yàn)表明,RBF是比較好的選擇。本文亦采用RBF作為核函數(shù)。
(2)懲罰系數(shù)(c):c值較大則允許的誤差較小,c值較小則允許較大的誤差,c值過(guò)大或過(guò)小都會(huì)使系統(tǒng)的泛化性能變差。一般選擇c?[0.1 50 000]。
(3)核參數(shù)(σ):控制最終解的復(fù)雜性。樣本輸入范圍廣,σ取值大;反之,則σ取值小。σ取值太大或太小亦會(huì)使系統(tǒng)的泛化性能變差。一般選擇σ?[0.01 100]。
參數(shù)c、σ,特別是它們之間的相互影響關(guān)系對(duì)LS-SVM模型的復(fù)雜度、泛化性影響很大[6]。在參數(shù)選擇時(shí)除了對(duì)單個(gè)參數(shù)進(jìn)行優(yōu)化還應(yīng)綜合考慮這2個(gè)參數(shù)形成的參數(shù)對(duì),這樣逐一的選取方法既費(fèi)時(shí)也不科學(xué)。而且選取出的較優(yōu)解,雖然花費(fèi)了很多時(shí)間,得到的結(jié)果也不一定是最優(yōu)的。為此,筆者采用混合智能算法實(shí)現(xiàn)對(duì)LS-SVM模型的核參數(shù)(σ)和懲罰系數(shù)(c)聯(lián)合優(yōu)選。
在優(yōu)選過(guò)程中雖然可以任意指定參數(shù)訓(xùn)練LSSVM計(jì)算訓(xùn)練誤差,以此時(shí)訓(xùn)練誤差為適應(yīng)值,但是這樣容易使模型過(guò)度擬合而削弱了模型的泛化能力。最典型的解決方法為使用交互驗(yàn)證技術(shù)(Crossvalidation)。適應(yīng)度函數(shù)為求取訓(xùn)練數(shù)據(jù)集交叉驗(yàn)證MAPE(Mean Absolute Percent Error)的最小值,即:
式中:k為總訓(xùn)練樣本子集數(shù),一般取k=5或10;yi為第i個(gè)實(shí)際值向量;y?i為預(yù)測(cè)值向量。
筆者提出的基于混合智能優(yōu)化算法的需水預(yù)測(cè)模型,即以最小化訓(xùn)練數(shù)據(jù)集的交叉驗(yàn)證誤差為基礎(chǔ),搜尋最佳化的SVM回歸參數(shù)值,以期能避開(kāi)產(chǎn)生過(guò)度擬合的風(fēng)險(xiǎn),提高LS-SVM預(yù)測(cè)模型的準(zhǔn)確度。
根據(jù)社會(huì)經(jīng)濟(jì)需水影響因素的分析,可知影響需水量的因素有很多,如人口、經(jīng)濟(jì)發(fā)展水平、居民生活水平、水價(jià)、節(jié)水水平、產(chǎn)業(yè)結(jié)構(gòu)等。這些因素有一些是不確定的,有一些是隨時(shí)間變化的。設(shè)需水量為因變量,影響因素為自變量,則以下式作為描述需水量預(yù)測(cè)的數(shù)學(xué)模型,即:
式中:y 為需水量;x1,x2,…,xm代表的是影響需水量因素。
影響需水量的因素繁多且需水用水影響因素之間關(guān)系復(fù)雜,因此采用LS-SVM來(lái)擬合式(3)。需水量的預(yù)測(cè)問(wèn)題轉(zhuǎn)化為由m個(gè)影響變量和1個(gè)輸出量的回歸問(wèn)題?;诨旌现悄芩惴▋?yōu)化LS-SVM的需水量預(yù)測(cè)建模步驟如下:
(1)確定需水量影響因素。將需水量影響因素輸入模型,需水量為模型的輸出量[7]。將觀測(cè)數(shù)據(jù)分成兩部分,一部分?jǐn)?shù)據(jù)作為訓(xùn)練樣本進(jìn)行參數(shù)估計(jì),剩余數(shù)據(jù)用于預(yù)測(cè)檢驗(yàn),記輸入矢量為X,則:
式中:m為影響需水量的主要因素個(gè)數(shù)。模型輸出為需水量數(shù)據(jù) Y=[yi]1×n。
(2)將輸入變量、輸出變量進(jìn)行歸一化處理。(3)對(duì)模型參數(shù)c和σ進(jìn)行優(yōu)選。
步驟1:初始化。每個(gè)粒子由2維參數(shù)組成(c,σ),設(shè)置群體規(guī)模(N)、最大迭代次數(shù)(itermax),隨機(jī)給出初始粒子和粒子初始速度,設(shè)定學(xué)習(xí)因子(c1和c2),給定算法的最大、最小慣性權(quán)值因子 (wmax和wmin),變異概率(p0),行為選擇概率(p1),模式搜索步長(zhǎng)(bc)及誤差(eps)。
步驟2:評(píng)價(jià)種群。以適應(yīng)度值評(píng)價(jià)粒子的優(yōu)劣,粒子的適應(yīng)度函數(shù)值越小,則粒子性能越好[8]。采用粒子個(gè)體對(duì)應(yīng)的c和σ,建立支持向量機(jī)的學(xué)習(xí)預(yù)測(cè)模型,按式(1)計(jì)算每個(gè)個(gè)體的適應(yīng)值。
步驟3:更新每個(gè)粒子的位置和速度。根據(jù)行為選擇概率(p1),進(jìn)行交叉操作和模式搜索,并且考慮更新后的速度和位置是否在限定的范圍內(nèi)。
步驟4:判斷進(jìn)化是否停滯。若是,則按變異概率(p0)對(duì)粒子群中的粒子進(jìn)行重新初始化;否則,轉(zhuǎn)入下步。
步驟5:檢查結(jié)束條件。若比較次數(shù)或者精度值滿(mǎn)足預(yù)設(shè)精度,算法收斂,最后1次迭代的最優(yōu)值即為所求最優(yōu)值,尋優(yōu)結(jié)束;否則t=t+1,轉(zhuǎn)至步驟2,算法繼續(xù)迭代。
(4)將最優(yōu)參數(shù)向量(c、σ)賦予 LS-SVM,用樣本數(shù)據(jù)對(duì)LS-SVM模型進(jìn)行訓(xùn)練,得到2個(gè)支持向量(a和b)的值。進(jìn)而預(yù)測(cè)樣本進(jìn)行預(yù)測(cè),通過(guò)與實(shí)測(cè)需水量進(jìn)行比較,進(jìn)行模型校驗(yàn)。
(5)最后,用該支持向量機(jī)回歸模型進(jìn)行需水量預(yù)測(cè)。
將基于混合智能算法優(yōu)化LS-SVM的需水預(yù)測(cè)模型運(yùn)用于秦皇島市第二產(chǎn)業(yè)需水預(yù)測(cè)過(guò)程中,選取與用水量相關(guān)性較好、又能衡量需水情況的因子:工業(yè)產(chǎn)值、工業(yè)規(guī)模以上產(chǎn)值、工業(yè)規(guī)模以下產(chǎn)值、火核電產(chǎn)值、工業(yè)水重復(fù)利用率、建筑業(yè)產(chǎn)值、水價(jià),以2000—2005年調(diào)查數(shù)據(jù)為基礎(chǔ)建立基于混合智能算法的支持向量機(jī)預(yù)測(cè)模型,預(yù)測(cè)2006、2007年秦皇島市第二產(chǎn)業(yè)需水量。
利用模型針對(duì)上述學(xué)習(xí)樣本進(jìn)行秦皇島市第二產(chǎn)業(yè)需水量預(yù)測(cè)。能否合理確定LS-SVM的懲罰系數(shù)(c)和核參數(shù)(σ)直接影響到模型的精度和推廣能力,筆者通過(guò)混合智能算法優(yōu)化LS-SVM參數(shù)對(duì)(c,σ)。取群體規(guī)模為60,最大進(jìn)化次數(shù)為200,粒子的向量維數(shù)為2,PSO加速常數(shù)c1=c2=1.5,慣性權(quán)重(ω)由 0.9 線(xiàn)性變化到 0.4,選擇概率(P1)為0.5,變異概率(P0)為 0.1。 模型計(jì)算參數(shù)結(jié)果,見(jiàn)表1。
通過(guò)對(duì)參數(shù)的搜索,第87代出現(xiàn)了最佳適應(yīng)值,其值為MAPE=3.669 5。因此,把第87代的最佳個(gè)體作為最佳化參數(shù)值,此時(shí)的參數(shù)值分別為c=963、σ=0.274 1,將此參數(shù)組合帶入預(yù)測(cè)模型中,對(duì)秦皇島市2006—2007年第二產(chǎn)業(yè)用水進(jìn)行預(yù)測(cè)。
表1 模型計(jì)算參數(shù)結(jié)果
表2 實(shí)際值與預(yù)測(cè)值對(duì)比
圖1 模型實(shí)際值、擬合值與預(yù)測(cè)值對(duì)比
由表2和圖1可以看出,模型計(jì)算的擬合值和預(yù)測(cè)值與秦皇島市的第二產(chǎn)業(yè)實(shí)際用水吻合較好。通過(guò)統(tǒng)計(jì)分析,2000—2005年的擬合部分最大相對(duì)誤差為0.025 23%,平均相對(duì)誤差為0.009%;2006—2007年的預(yù)測(cè)部分,最大相對(duì)誤差為1.457 82%,平均相對(duì)誤差為1.373 68%,均小于5%。由此可見(jiàn),利用該模型預(yù)測(cè)秦皇島市第二產(chǎn)業(yè)需水發(fā)展的結(jié)果是令人滿(mǎn)意的,具有較高預(yù)測(cè)精度。
(1)基于混合智能算法優(yōu)化LS-SVM的需水預(yù)測(cè)模型能夠快速地尋優(yōu),該方法較單一智能算法具有一定的優(yōu)越性。
(2)研究實(shí)例表明,筆者建立的優(yōu)化模型能夠解決復(fù)雜關(guān)系的多因素影響因子的需水預(yù)測(cè)問(wèn)題,預(yù)測(cè)模型擬合精度較高,預(yù)測(cè)結(jié)果較合理。
(3)針對(duì)預(yù)測(cè)結(jié)果存在誤差的問(wèn)題,在今后的運(yùn)用過(guò)程中需加大樣本容量,以便提高預(yù)測(cè)的準(zhǔn)確性。
[1]劉衛(wèi)林.幾種需水量預(yù)測(cè)模型的比較研究 [J].人民長(zhǎng)江,2011,42(13):19-22.
[2]張偉,吳丹,李小奇,等.基于最小二乘支持向量機(jī)的大壩應(yīng)力預(yù)測(cè)模型[J].水利與建筑工程學(xué)報(bào),2011(1):26-29.
[3]熊偉麗,徐保國(guó).基于PSO的SVR參數(shù)優(yōu)化選擇方法研究 [J].系統(tǒng)仿真學(xué)報(bào),2006(9):22-26.
[4]曹成濤,徐建閩 .基于PSO-SVM的短期交通流預(yù)測(cè)方法[J].計(jì)算機(jī)工程與應(yīng)用,2007(15):15-18.
[5]梅松,程偉平,劉國(guó)華.基于支持向量機(jī)的洪水預(yù)報(bào)模型初探[J].中國(guó)農(nóng)村水利水電, 2005(3):34-36.
[6]Yu X Y,Liong S Y,Babovic V.EC-SVM approach for realtime hydrologic forecasting[J].Journal of Hydroinformatics,2004,6(3):209-223.
[7]陳磊,張土喬.基于最小二乘支持向量機(jī)的時(shí)用水量預(yù)測(cè)模型[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,38(9):1528-1530.
[8]鐘偉,董增川,李琪.混合算法優(yōu)化投影尋蹤模型的需水預(yù)測(cè)研究[J].水電能源科學(xué),2010,28(7):31-33.