崔 未,王衛(wèi)華,黃樟燦,談 慶
武漢理工大學(xué) 理學(xué)院,武漢 430070
隨時(shí)間變化的動(dòng)態(tài)系統(tǒng)在日常生活中廣泛存在,如溫度變化、降水量變化、金融數(shù)據(jù)變化等。如何對(duì)隨時(shí)間變化的動(dòng)態(tài)系統(tǒng)建模完成預(yù)測(cè),一直是研究的熱點(diǎn)。合適的時(shí)間序列模型對(duì)投資風(fēng)險(xiǎn)把控、投入產(chǎn)出評(píng)估等方面具有重要意義。
時(shí)間序列預(yù)測(cè)是一種根據(jù)現(xiàn)有數(shù)據(jù)的規(guī)律信息構(gòu)建模型,并將模型外推來(lái)完成預(yù)測(cè)的方法。預(yù)測(cè)效果主要受模型選擇影響[1],這是由于時(shí)間序列數(shù)據(jù)是一個(gè)無(wú)顯著規(guī)律的動(dòng)態(tài)系統(tǒng),數(shù)據(jù)隨時(shí)間波動(dòng)變化規(guī)律復(fù)雜,不同模型對(duì)數(shù)據(jù)的處理、構(gòu)建聯(lián)系和規(guī)律發(fā)現(xiàn)的方法有很大區(qū)別,使得模型對(duì)歷史數(shù)據(jù)的描述有不同程度的偏差,進(jìn)而對(duì)預(yù)測(cè)結(jié)果有直接影響。針對(duì)隨時(shí)間變化的動(dòng)態(tài)系統(tǒng)采樣數(shù)據(jù),通常采用ARIMA模型與人工神經(jīng)網(wǎng)絡(luò)(ANN)模型進(jìn)行預(yù)測(cè)。ARIMA模型是一類線性模型,對(duì)非線性問(wèn)題處理能力較差。為提高它的非線性能力,文獻(xiàn)[2-5]將ARIMA模型與深度信念網(wǎng)絡(luò)、支持向量機(jī)和GARCH等模型結(jié)合,在紅潮預(yù)測(cè)、鈾礦價(jià)格預(yù)測(cè)、網(wǎng)絡(luò)流量預(yù)測(cè)和地鐵乘客量短期預(yù)測(cè)等方面取得了一定的效果。雖然上述方法使得ARIMA模型在許多非線性系統(tǒng)預(yù)測(cè)問(wèn)題中得到了運(yùn)用,但是ARIMA模型對(duì)數(shù)據(jù)平穩(wěn)性要求高,對(duì)非線性數(shù)據(jù)規(guī)律的捕捉能力較弱的問(wèn)題依舊存在。與ARIMA模型及其改進(jìn)相比,ANN有更強(qiáng)的非線性能力和自適應(yīng)能力,對(duì)復(fù)雜非線性數(shù)據(jù)的規(guī)律發(fā)現(xiàn)能力更強(qiáng),但它存在對(duì)數(shù)據(jù)數(shù)量要求高、參數(shù)設(shè)定復(fù)雜和模型解釋性差的缺陷[6]。對(duì)此文獻(xiàn)[7-11]采用PSO、GA等優(yōu)化算法對(duì)BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行參數(shù)優(yōu)化;文獻(xiàn)[12]將前饋神經(jīng)網(wǎng)絡(luò)(FNN)嵌入到EMD預(yù)測(cè)框架中,利用EMD框架的加權(quán)重組策略對(duì)FNN進(jìn)行賦權(quán),實(shí)現(xiàn)了FNN參數(shù)的自適應(yīng);文獻(xiàn)[13]中將改進(jìn)小世界網(wǎng)絡(luò)應(yīng)用到Leaky ESN中,在實(shí)現(xiàn)稀疏連接的同時(shí),改善了神經(jīng)節(jié)點(diǎn)的連接方式,提升了Leaky ESN的適應(yīng)性,取得了更高的預(yù)測(cè)精度。雖然這些混合算法對(duì)參數(shù)設(shè)定復(fù)雜、數(shù)據(jù)量要求高的問(wèn)題進(jìn)行了解決,在一類時(shí)間序列預(yù)測(cè)問(wèn)題上取得了良好效果,但是它們本質(zhì)上是一個(gè)無(wú)顯式模型的“黑盒”,對(duì)模型輸出缺少合理解釋,對(duì)模型的進(jìn)一步分析研究存在阻礙。
為了彌補(bǔ)這些模型具有“黑盒”性質(zhì)的缺陷,研究人員提出通過(guò)符號(hào)回歸,以代數(shù)形式構(gòu)建微分方程模型?;谘莼惴ǖ某N⒎址匠探7椒ㄔ缭?000年就被提出[14],該方法在建模過(guò)程中分為兩步,首先使用遺傳規(guī)劃(GP)構(gòu)建模型,接下來(lái)通過(guò)遺傳算法(GA)對(duì)模型進(jìn)行參數(shù)優(yōu)化。由于GP的遺傳操作是基于樹(shù)結(jié)構(gòu)進(jìn)行的,因此在建模過(guò)程中,存在容易陷入局部最優(yōu)的問(wèn)題。除此之外,受制于兩步建模以及當(dāng)時(shí)的計(jì)算條件,進(jìn)行一次成功建模需要50 min,因此該方法雖然在預(yù)測(cè)精度上表現(xiàn)較好,但是未得到廣泛應(yīng)用和推廣。
基因表達(dá)式編程(GEP)是一種融合了GA與GP優(yōu)點(diǎn)的新型演化算法,尋優(yōu)效率比二者高出100~60 000倍[15]。這是因?yàn)镚EP對(duì)表達(dá)式樹(shù)結(jié)構(gòu)的更改通過(guò)對(duì)線性編碼的修改完成,相比GP對(duì)樹(shù)結(jié)構(gòu)直接進(jìn)行修改有更高的靈活性,種群多樣性更豐富,能夠有效地在保證精度的前提下提升建模效率。
綜上,為了提升演化算法在常微分方程建模中的效率,改善人工神經(jīng)網(wǎng)絡(luò)等非線性方法在時(shí)間序列預(yù)測(cè)建模中無(wú)法獲得顯式模型和精度較低的缺陷,本文提出基于GEP的高階常微分方程建模方法,并對(duì)太陽(yáng)黑子年平均數(shù)進(jìn)行建模預(yù)測(cè)。
葡萄牙科學(xué)家C.Ferreira結(jié)合了遺傳算法(GA)和遺傳程序設(shè)計(jì)(GP)的優(yōu)點(diǎn),于2001年提出了基因表達(dá)式編程(GEP)[16]。GEP是一種擁有“基因型-表現(xiàn)型”特性的遺傳算法,即采用固定長(zhǎng)度的線性編碼,對(duì)線性編碼使用遺傳算子進(jìn)行操作,通過(guò)“Karva”語(yǔ)言將線性編碼轉(zhuǎn)化為表達(dá)式樹(shù)(ET),樹(shù)結(jié)構(gòu)最終轉(zhuǎn)化為表達(dá)式。下面對(duì)GEP編碼及操作進(jìn)行詳細(xì)介紹。
GEP對(duì)染色體通過(guò)遺傳操作完成進(jìn)化。染色體由基因通過(guò)連接函數(shù)構(gòu)成。染色體是由函數(shù)集F和終止集T構(gòu)成。函數(shù)集包含基本初等函數(shù)、邏輯運(yùn)算符和變量;終止集T中有且只有變量及參數(shù)。基因分為頭部和尾部?jī)刹糠?,頭部由函數(shù)集F與終止集T構(gòu)成,尾部由終止集T構(gòu)成。尾長(zhǎng)度由頭長(zhǎng)度決定,關(guān)系式為:

其中t為尾長(zhǎng)度,n為運(yùn)算符目數(shù),h為頭長(zhǎng)度。下面以一個(gè)例子對(duì)GEP的編碼進(jìn)行說(shuō)明。
形如“Q+*/aaaba//+//sin+abababa”的線性編碼對(duì)應(yīng)的表達(dá)式為:

式(2)對(duì)應(yīng)的表達(dá)式樹(shù)和染色體編碼如圖1所示。

圖1 式(2)對(duì)應(yīng)的染色體編碼與表達(dá)式樹(shù)
從圖1可以看出,該表達(dá)式通過(guò)兩個(gè)等長(zhǎng)基因構(gòu)成的染色體表示,連接函數(shù)“+”將兩個(gè)基因連接。基因的頭結(jié)點(diǎn)長(zhǎng)度為4,尾結(jié)點(diǎn)長(zhǎng)度通過(guò)式(7)計(jì)算可知為5,總長(zhǎng)度為9?;?將尾部進(jìn)行了部分表達(dá),基因2對(duì)尾部沒(méi)有進(jìn)行表達(dá)。這種編碼方式根據(jù)基因中符號(hào)集元素的分布情況,靈活地選擇是否對(duì)基因全部進(jìn)行表達(dá),與GP直接對(duì)樹(shù)結(jié)構(gòu)操作相比更為靈活,與GA的二進(jìn)制編碼相比有更豐富的表現(xiàn)形式。
GEP在種群在進(jìn)化過(guò)程通過(guò)對(duì)染色體進(jìn)行遺傳操作,使種群向符合適應(yīng)度函數(shù)的方向進(jìn)化[17]。GEP的操作流程如圖2所示。
對(duì)圖2進(jìn)行總結(jié),得到GEP的操作流程如下:
步驟1根據(jù)設(shè)定參數(shù)進(jìn)行種群初始化。
步驟2計(jì)算種群適應(yīng)度,判斷是否達(dá)到結(jié)束條件,是則跳出循環(huán),否則進(jìn)入步驟3。
步驟3進(jìn)行遺傳操作。
步驟4得到一組新解,返回步驟2。

圖2 GEP操作流程圖
通過(guò)上述流程完成模型建立。下面對(duì)GEP的遺傳算子進(jìn)行簡(jiǎn)單介紹,遺傳算子包括選擇復(fù)制算子、轉(zhuǎn)座算子、重組算子和變異算子,四種算子及操作方法如下:
(1)選擇復(fù)制算子:GEP中采用基于精英策略的輪盤(pán)賭選擇,即對(duì)適應(yīng)度最高的個(gè)體進(jìn)行保留并復(fù)制,其余個(gè)體的選擇通過(guò)輪盤(pán)賭進(jìn)行。
(2)轉(zhuǎn)座算子:轉(zhuǎn)座是指染色體中的基因片段能夠轉(zhuǎn)移到該染色體或其他染色體的各個(gè)位置。轉(zhuǎn)座根據(jù)轉(zhuǎn)移目標(biāo)的不同,分為IS轉(zhuǎn)座、RIS轉(zhuǎn)座和基因轉(zhuǎn)座。
①IS轉(zhuǎn)座:選擇帶有運(yùn)算符的基因片段,將該片段插入到基因的頭部中(除了起始位置以外的任意節(jié)點(diǎn))。
②RIS轉(zhuǎn)座:從頭部開(kāi)始選擇一個(gè)基因片段,從片段中選取第一個(gè)可以表示完整函數(shù)的部分作為RIS片段,將該片段插入到基因的尾部中。
③基因轉(zhuǎn)座:將整個(gè)基因插入到染色體的起始位置,染色體長(zhǎng)度保持一致。
(3)重組算子:重組根據(jù)基因片段截取方式不同分為單點(diǎn)重組,兩點(diǎn)重組和基因重組。
①單點(diǎn)重組:父代染色體配對(duì),確定截?cái)帱c(diǎn),將截?cái)帱c(diǎn)后的部分進(jìn)行交換。
②兩點(diǎn)重組:父代染色體配對(duì),通過(guò)兩個(gè)階段點(diǎn)確定截取片段,對(duì)截取片段進(jìn)行交換。
③基因重組:父代染色體配對(duì),對(duì)選中基因進(jìn)行交換。
(4)變異算子:變異算子是最高效的遺傳算子,變異可以發(fā)生在染色體的任何位置。在頭部中的運(yùn)算符和終止點(diǎn)均可以通過(guò)變異相互轉(zhuǎn)換。尾部的終止點(diǎn)只能進(jìn)行終止點(diǎn)變異。
染色體經(jīng)過(guò)遺傳操作,不斷迭代,最終得到適應(yīng)度最高的個(gè)體,即為最優(yōu)解。下面對(duì)基于GEP的高階常微分方程建模進(jìn)行詳細(xì)介紹。
針對(duì)一組動(dòng)態(tài)系統(tǒng)觀測(cè)樣本:

對(duì)這組數(shù)據(jù)進(jìn)行預(yù)測(cè)的方法是通過(guò)不同方法對(duì)這組數(shù)據(jù)進(jìn)行規(guī)律挖掘,建立模型 f如下:

通過(guò) f進(jìn)行n步外推,對(duì)后n個(gè)時(shí)刻的數(shù)據(jù)進(jìn)行預(yù)測(cè)。常見(jiàn)的動(dòng)態(tài)系統(tǒng)大多為非線性系統(tǒng),如股票價(jià)格、溫度變化和太陽(yáng)黑子變化等。它們都是非線性、非平穩(wěn)、復(fù)雜度高的時(shí)間序列數(shù)據(jù),對(duì)數(shù)據(jù)規(guī)律的發(fā)現(xiàn)和總結(jié)存在較大難度,因此以人工神經(jīng)網(wǎng)絡(luò)為代表的非線性建模方法在這類數(shù)據(jù)的預(yù)測(cè)上得到了廣泛應(yīng)用。但是這類方法的問(wèn)題在于它們所建的模型 f是一個(gè)隱式模型,只能通過(guò)對(duì)參數(shù)的修改完成對(duì)模型的改進(jìn),無(wú)法對(duì)模型進(jìn)行更為深入的研究。為了改善這個(gè)缺陷,本文利用常微分方程對(duì)動(dòng)態(tài)系統(tǒng)準(zhǔn)確描述的特性,構(gòu)建高階常微分方程模型 f并完成預(yù)測(cè)。對(duì)X構(gòu)建高階常微分方程的主要步驟如下所述:
對(duì)于規(guī)模為n的動(dòng)態(tài)系統(tǒng)X進(jìn)行m階差分近似,得到矩陣 Mn×m:

通過(guò)矩陣M中的元素,對(duì)X進(jìn)行高階常微分方程建模得到:

使得:

成立。其中左邊部分具體為:

其中,n代表數(shù)據(jù)規(guī)模。對(duì)式(6)進(jìn)行數(shù)值求解,得到接下來(lái)τ步的預(yù)測(cè)值:

式(6)中,f是由符號(hào)回歸而成的?;贕EP的高階常微分方程演化建模,即通過(guò)對(duì)規(guī)模為n的連續(xù)觀察數(shù)據(jù)進(jìn)行差分處理,利用GEP的自組織、自學(xué)習(xí)的特點(diǎn)對(duì)已處理數(shù)據(jù)進(jìn)行建模,得到形如式(6)的表達(dá)式。下面對(duì)上述步驟分別進(jìn)行詳細(xì)說(shuō)明。
為了得到數(shù)據(jù)波動(dòng)規(guī)律,首先需要對(duì)數(shù)據(jù)進(jìn)行有限差分處理,計(jì)算導(dǎo)數(shù)近似值[18],構(gòu)建矩陣M。以一階導(dǎo)數(shù)為例,通過(guò)下面的數(shù)值差分公式得到導(dǎo)數(shù)近似值。
對(duì)t0時(shí)刻的數(shù)據(jù)進(jìn)行如下處理:

對(duì)t1~tn-3時(shí)刻的數(shù)據(jù)進(jìn)行如下處理:

對(duì)tn-2~tn-1時(shí)刻的數(shù)據(jù)進(jìn)行如下處理:

其中,h代表單位時(shí)間間隔,xi代表i時(shí)刻的數(shù)據(jù)。更高階的計(jì)算以此類推,保證不同時(shí)刻的數(shù)據(jù)誤差始終為O(h2)。
通過(guò)有限差分得到矩陣式(5),使用GEP對(duì)M 構(gòu)建如式(6)所示函數(shù)關(guān)系 f,整體流程如圖3所示。

圖3 GEP-HODE算法流程圖
根據(jù)圖3,對(duì)算法步驟進(jìn)行歸納,具體流程如下:
輸入:時(shí)序數(shù)據(jù)X,時(shí)間t。
輸出:高階常微分方程模型 f。
步驟1輸入HODE模型階數(shù)m。
步驟2計(jì)算m階導(dǎo)數(shù)近似值,得到矩陣M。
步驟3確定迭代次數(shù)并對(duì)GEP進(jìn)行參數(shù)設(shè)定。
步驟4進(jìn)行種群初始化,并計(jì)算適應(yīng)度。
步驟5對(duì)種群進(jìn)行遺傳操作,形成新種群。
步驟6根據(jù)迭代次數(shù)判斷是否結(jié)束運(yùn)算,是則結(jié)束,否則返回步驟2。
步驟7根據(jù)GEP建模得到模型 f。
步驟8利用數(shù)值方法對(duì) f進(jìn)行求解,得到最終預(yù)測(cè)值。
3.4.1 適應(yīng)度函數(shù)選擇
模型的建立是通過(guò)GEP以適應(yīng)度函數(shù)為目標(biāo)演化進(jìn)行的,因此適應(yīng)度函數(shù)的選擇對(duì)模型的構(gòu)建有直接影響。GEP-HODE模型是以式(7)為評(píng)判標(biāo)準(zhǔn)的,即向模型擬合值與實(shí)際值誤差最小的方向進(jìn)化。標(biāo)準(zhǔn)絕對(duì)誤差函數(shù)的作用與式(7)相同,故本文選擇該函數(shù)作為適應(yīng)度函數(shù),如式(13)所示:

其中K為選擇范圍,一般情況下選擇1 000。CY為樣本數(shù),Cj為模型所得,Tj為目標(biāo)值。
3.4.2 模型求解
由GEP-HODE算法得到的高階常微分方程模型是一類非線性模型,因此常采用數(shù)值解法進(jìn)行求解。這種方法的思路是將高階方程轉(zhuǎn)換為多個(gè)一階方程構(gòu)成的方程組,利用數(shù)值方法對(duì)一階方程逐個(gè)求解,利用所得結(jié)果進(jìn)行遞推,進(jìn)而得到高階方程的數(shù)值解。針對(duì)式(6)所示模型,首先進(jìn)行如下變換:

根據(jù)變量替換,將式(6)所示的高階常微分方程轉(zhuǎn)化為式(15)所示的常微分方程組:

其中t表示t0~tn的所有時(shí)間節(jié)點(diǎn)。常微分方程組的初值為:

通過(guò)數(shù)值方法,對(duì)式(15)所示的方程組從下至上遞歸求解,最終得到預(yù)測(cè)值y0( )t+τ,其中τ為預(yù)測(cè)步長(zhǎng)。
本文使用太陽(yáng)黑子年平均數(shù)據(jù)[19],設(shè)計(jì)實(shí)驗(yàn)進(jìn)行對(duì)比分析。實(shí)驗(yàn)使用1749—1919年太陽(yáng)黑子年平均數(shù)據(jù),與文獻(xiàn)[14]中所用數(shù)據(jù)一致。其中訓(xùn)練集為1749—1863年的數(shù)據(jù),樣本總數(shù)為115,測(cè)試集為1864—1919年的數(shù)據(jù),樣本總數(shù)為56。對(duì)1920—1924五年的太陽(yáng)黑子年平均數(shù)進(jìn)行預(yù)測(cè),將GEP-HODE模型的預(yù)測(cè)結(jié)果與文獻(xiàn)[14]中方法(下面稱為GPGA方法)、SVM-ARIMA模型[20]、PSO-BP神經(jīng)網(wǎng)絡(luò)模型[21]和單因素GEP預(yù)測(cè)模型進(jìn)行結(jié)果對(duì)比分析。數(shù)值解法采取步長(zhǎng)為0.1的四階龍格庫(kù)塔算法,初值為最后一個(gè)數(shù)據(jù)點(diǎn)對(duì)應(yīng)的值。參數(shù)設(shè)定表如表1所示。
本文選取的誤差評(píng)判標(biāo)準(zhǔn)為平均絕對(duì)誤差MAE、平均絕對(duì)誤差百分比MAPE和均方誤差RMSE。平均絕對(duì)誤差用來(lái)衡量預(yù)測(cè)值與實(shí)際值的直接差距;平均絕對(duì)誤差百分比用來(lái)衡量預(yù)測(cè)值相對(duì)實(shí)際值的變化情況;均方誤差用于判斷預(yù)測(cè)值中是否有偏離實(shí)際值較大的點(diǎn)。它們的計(jì)算公式分別為:


表1 參數(shù)設(shè)定表

1749—1919年的太陽(yáng)黑子年平均數(shù)量樣本共171個(gè),樣本按年分布如圖4所示。

圖4 1749—1919年太陽(yáng)黑子年平均數(shù)目分布圖
從圖4中可以看出太陽(yáng)黑子年平均數(shù)據(jù)是一組非線性、非平穩(wěn)的時(shí)間序列數(shù)據(jù),沒(méi)有明顯的變化規(guī)律。采取GEP-HODE方法進(jìn)行常微分方程建模,得到1~4階模型。每階模型進(jìn)行五次建模,取預(yù)測(cè)誤差平均值進(jìn)行分析,各階模型預(yù)測(cè)誤差對(duì)比如表2所示。

表2 各階模型預(yù)測(cè)誤差對(duì)比表
從表2可以看出在三種誤差評(píng)判標(biāo)準(zhǔn)下,三階常微分方程模型(ODE(3))在對(duì)太陽(yáng)黑子年平均數(shù)據(jù)建模預(yù)測(cè)效果最好。效果最好的ODE(3)模型如下所示:

模型參數(shù)如下:

為了體現(xiàn)GEP在建模中的高效性和模型的精確性,下面將式(20)所示模型(下面稱為GEP-HODE模型)與GPGA等四種方法進(jìn)行對(duì)比。預(yù)測(cè)精度結(jié)果如表3所示。

表3 預(yù)測(cè)結(jié)果誤差對(duì)比表
從表3中能夠看出GEP-HODE模型的預(yù)測(cè)誤差在三種評(píng)判標(biāo)準(zhǔn)上均小于后三種預(yù)測(cè)模型,在MAE與RMSE上低于GPGA方法,在MAPE上高于GPGA,總體預(yù)測(cè)結(jié)果較為接近,下面對(duì)造成這種結(jié)果的原因進(jìn)行分析。太陽(yáng)黑子年平均數(shù)是一個(gè)隨時(shí)間劇烈變化的非線性動(dòng)態(tài)系統(tǒng),ARIMA本質(zhì)上是一個(gè)線性模型,即使通過(guò)SVM將數(shù)據(jù)映射到高維空間試圖削弱非線性造成的影響,也無(wú)法獲得更為準(zhǔn)確的預(yù)測(cè)結(jié)果,同時(shí)SVM的參數(shù)設(shè)定以及徑向基函數(shù)的選擇也較為主觀,因此SVMARIMA模型預(yù)測(cè)結(jié)果在五種方法中最差;單因素GEP預(yù)測(cè)模型的問(wèn)題在于其本質(zhì)上是一高階復(fù)合函數(shù)擬合模型,由于數(shù)據(jù)維度為1,因此該模型對(duì)數(shù)據(jù)的規(guī)律總結(jié)能力與微分方程模型相比較弱,但與ARIMA相比,它的非線性能力更強(qiáng),因此該模型的預(yù)測(cè)結(jié)果相較SVMARIMA模型更好;BP神經(jīng)網(wǎng)絡(luò)盡管通過(guò)PSO算法對(duì)各連接層的權(quán)值進(jìn)行了優(yōu)化,但數(shù)據(jù)量較少、隱藏層數(shù)人為設(shè)定等問(wèn)題使得模型訓(xùn)練效果較差,導(dǎo)致預(yù)測(cè)精度較低,但是該模型出色的非線性能力使得它在常微分方程模型之外的三種對(duì)比方法中精度最高;GEP-HODE與GAGP預(yù)測(cè)誤差相近是因?yàn)槎咄瑢儆趯?duì)常微分方程的演化建模,因此它們本質(zhì)上是一致的。由于使用的演化算法不同,導(dǎo)致了它們的結(jié)果雖然相近,但是仍然存在著一定的差異。因此需要對(duì)造成這種差異的原因進(jìn)行進(jìn)一步分析。
首先對(duì)兩種方法的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,如圖5所示。

圖5 兩種方法預(yù)測(cè)結(jié)果對(duì)比圖
從圖5可以看出GPGA方法在整體數(shù)據(jù)點(diǎn)的數(shù)值預(yù)測(cè)上精度要略高于GEP-HODE方法,從表3中則可以發(fā)現(xiàn)二者在預(yù)測(cè)誤差上相差不大。作為一種預(yù)測(cè)手段,對(duì)數(shù)據(jù)趨勢(shì)的預(yù)測(cè)也屬于模型預(yù)測(cè)能力的一部分,從圖5中可以看出GPGA方法在1923—1924年這一段的預(yù)測(cè)與實(shí)際趨勢(shì)完全相反,而GEP-HODE方法則準(zhǔn)確地反映了這段時(shí)間的實(shí)際情況。因此,雖然二者在精度上是比較接近的,但從預(yù)測(cè)圖像上來(lái)看,GEP-HODE方法相較GPGA方法表現(xiàn)更好。從理論上看,二者均屬于遺傳算法,在模型表達(dá)方面和遺傳操作方面十分類似,因此得出的數(shù)值解精度也十分相近。導(dǎo)致預(yù)測(cè)趨勢(shì)產(chǎn)生偏差的原因在于GPGA方法通過(guò)GP進(jìn)行模型建立,利用GA進(jìn)行參數(shù)優(yōu)化,這種方法受制于GP的編碼結(jié)構(gòu),導(dǎo)致模型結(jié)構(gòu)存在一定的缺陷。詳細(xì)的說(shuō),由于GP在進(jìn)化過(guò)程中通過(guò)對(duì)樹(shù)結(jié)構(gòu)進(jìn)行變換和修飾,實(shí)現(xiàn)遺傳操作獲得新解,這種操作方式會(huì)導(dǎo)致解的多樣性不足,因此GP容易陷入局部最優(yōu)。GEP算法改進(jìn)了編碼方式,將遺傳操作應(yīng)用在線性編碼中,通過(guò)表達(dá)式樹(shù)對(duì)遺傳操作進(jìn)行體現(xiàn)。這種“基因型-表現(xiàn)型”的操作方式豐富了解的多樣性,相較GPGA方法跳出局部最優(yōu)的能力更強(qiáng),因此在模型的建立方面相較GPGA存在一定優(yōu)勢(shì),使得預(yù)測(cè)趨勢(shì)更為精確。
接下來(lái)對(duì)兩種方法的建模效率進(jìn)行對(duì)比。兩種方法在函數(shù)集相同、連接函數(shù)相同、迭代次數(shù)相同以及同一環(huán)境下(intel core i5 4200h)重復(fù)進(jìn)行五次,將兩者用時(shí)進(jìn)行對(duì)比。對(duì)比結(jié)果如表4所示。

表4 建模用時(shí)對(duì)比表
從表4中可以看出五次實(shí)驗(yàn)GEP算法的效率遠(yuǎn)高于GPGA方法。一方面因?yàn)镚EP通過(guò)改進(jìn)編碼方式,從本質(zhì)上比GP的進(jìn)化效率高;另一方面由于GPGA屬于混合算法,在建模過(guò)程中首先需要通過(guò)GP進(jìn)行模型建立,隨后需要通過(guò)GA進(jìn)行參數(shù)優(yōu)化,“兩步走”的建模過(guò)程導(dǎo)致了運(yùn)算時(shí)間的增加。與之相比,GEP一方面將模型建立與參數(shù)優(yōu)化同時(shí)進(jìn)行,另一方面采取了更為高效的編碼方式,因此用時(shí)更短,效率更高。
綜上,GEP-HODE方法在具有代表性的太陽(yáng)黑子年平均數(shù)據(jù)預(yù)測(cè)上取得了一定的成果,與改進(jìn)人工神經(jīng)網(wǎng)絡(luò)模型和混合ARIMA模型相比具有更高的精度,能夠在保證預(yù)測(cè)精度的同時(shí)能夠獲得顯式模型的優(yōu)勢(shì);與GPGA混合建模方法相比擁有更高的效率,具備更優(yōu)秀的趨勢(shì)預(yù)測(cè)能力。如何通過(guò)減小導(dǎo)數(shù)近似帶來(lái)的誤差以及對(duì)GEP算法進(jìn)行改進(jìn),提高模型對(duì)歷史數(shù)據(jù)的描述能力,從而進(jìn)一步提升模型精度是接下來(lái)要研究的問(wèn)題。
本文針對(duì)動(dòng)態(tài)系統(tǒng)預(yù)測(cè)建模問(wèn)題中存在的建模效率低和無(wú)顯式模型的缺陷,提出了一種基于GEP的高階常微分方程建模方法。該方法兼容了高階微分能夠?qū)Χ唐诓▌?dòng)數(shù)據(jù)變化具有較強(qiáng)描述能力,能夠深入挖掘數(shù)據(jù)本征的特點(diǎn)和GEP算法的自組織、自適應(yīng)特性。具備高效率、高精度和擁有顯式模型的優(yōu)點(diǎn)。以不同時(shí)間段的太陽(yáng)黑子年平均數(shù)為例構(gòu)建模型,通過(guò)與GAGP、SVM-ARIMA、PSO-BP等方法進(jìn)行對(duì)比,分析說(shuō)明GEPHODE方法的優(yōu)勢(shì)以及造成其他方法出現(xiàn)誤差的原因,最終結(jié)果表明GEP-HODE方法在精度和效率上分別具有一定的優(yōu)勢(shì),可以對(duì)動(dòng)態(tài)時(shí)間系統(tǒng)進(jìn)行建模并完成預(yù)測(cè)。