鮮思東,張建鋒
(重慶郵電大學(xué)a.復(fù)雜系統(tǒng)智能分析與決策重點(diǎn)實(shí)驗(yàn)室;b.自動(dòng)化學(xué)院,重慶 400065)
在過去幾十年中,人們提出了許多預(yù)測模型來處理各種領(lǐng)域中的預(yù)測問題,其中時(shí)間序列模型是人們最常用到的預(yù)測模型之一,當(dāng)歷史數(shù)據(jù)為語言值等不確定信息時(shí),經(jīng)典時(shí)間序列模型就無法對(duì)歷史數(shù)據(jù)進(jìn)行有效的預(yù)測。1965年,Zadeh[1]首次提出模糊集理論,為處理模糊數(shù)據(jù)提供了理論依據(jù)。Song等[2-4]將模糊集理論融入時(shí)間序列建模過程,給出了模糊時(shí)間序列預(yù)測模型(FTS)。在模糊時(shí)間序列的研究初期對(duì)論域大多采用均等劃分[2,3],隨著研究的不斷深入,人們打破等區(qū)間劃分限制,給出了一些非等分的論域劃分方法,如基于蟻群算法(GA)[5]、粒子群優(yōu)化算法(PSO)[6-8]的論域劃分方法、基于比例論域劃分方法[9]、基于模糊c均值聚類算法的論域劃分方法[10]和其他非等分論域劃分方法[11,12]。模糊關(guān)系的構(gòu)建對(duì)模糊時(shí)間序列的預(yù)測具有重要的影響,Song[2-4]先定義一個(gè)“乘”運(yùn)算,用預(yù)算結(jié)果得到的矩陣表示模糊關(guān)系,而Chen[13]提出一種新的構(gòu)建模糊邏輯關(guān)系矩陣的方法,Aladag[14]提出使用人工神經(jīng)網(wǎng)絡(luò)來確定模糊邏輯關(guān)系。
大量的研究表明,模糊論域區(qū)間的劃分方式和模糊邏輯關(guān)系的構(gòu)建方法是影響模糊時(shí)間序列模型預(yù)測精度最重要的兩個(gè)方面。為此,本文通過改進(jìn)人工魚群算法,給出一種新的模糊時(shí)間序列論域區(qū)間的劃分方法,提出一種基于改進(jìn)人工魚群算法的模糊時(shí)間序列預(yù)測模型。新模型使用Chen[15]提出的模糊關(guān)系表和模糊邏輯組關(guān)系表來確定模糊關(guān)系。為了獲得較好的預(yù)測值,新模型在訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集兩個(gè)階段分別采用Kuo[7]提出的EBN(estimating based on next state)和 MV(master voting)這兩種方法進(jìn)行預(yù)測分析。通過對(duì)美國Aalbama大學(xué)[2]的注冊人數(shù)進(jìn)行預(yù)測,實(shí)驗(yàn)結(jié)果表明了所提出算法的有效性。
其中,fAi(?)為模糊集合 Ai的隸屬函數(shù),fAi(?):U→[0,1]:fA(ui)為ui在模糊集A上的模糊隸屬度函數(shù)值,并且 fA(ui)∈[0,1],1≤i≤n[1]。
定義1:令R中一個(gè)子集Y(t)(i=1,2,…)為給定論域,fi(t)(i=1,2,…)為定義在其上的模糊集合,且 F(t)={f1(t),f2(t),…},則稱 F(t)為定義在Y(t)上的模糊時(shí)間序列[2]。
定義2:假設(shè)F(t)由 F(t-1)確定,即F(t-1→F(t)),可以表示為 F(t)=F(t-1)?R(t-1,t),稱作 F(t)的一階模糊時(shí)間序列模型,R(t-1,t)為F(t)與F(t-1)之間的模糊關(guān)系[2]。
定義 3:F(t-1)=Ai,F(xiàn)(t)=Aj,則稱 Ai→Aj為一個(gè)模糊邏輯關(guān)系(可簡稱為模糊關(guān)系),其中Ai稱為模糊關(guān)系的前件,Aj稱為模糊關(guān)系的后件[2](若有模糊關(guān)系重復(fù)出現(xiàn),則只保留一組)。
定義4:若模糊時(shí)間序列F(t)存在一組模糊邏輯關(guān)系
設(shè)U為論域,將U劃分為 n個(gè)子區(qū)間,即U={u1,u2,…,un},則定義在論域U中的模糊集合A可表示為:,則模糊邏輯關(guān)系組可以簡記為
人工魚群算法[16]模擬魚群的群體行為進(jìn)行隨機(jī)尋優(yōu)的搜索,主要包含人工魚的覓食、聚集、追尾等行為,利用局部最優(yōu)信息逐步迭代,達(dá)到全局尋優(yōu)的目的。
一條人工魚代表空間中一個(gè)點(diǎn),可以表示為X=(x1,x2,…xn),其中 xi(i=1,2,…n)為欲尋優(yōu)的變量;人工魚個(gè)體所在位置的適應(yīng)度為Y=f(X),本文的Alabama大學(xué)注冊人數(shù)的預(yù)測致力于Y最小化;魚群規(guī)模 fishnum,兩條人工魚之間的距離計(jì)算公式為,人工魚移動(dòng)(迭代)的最大步長用step表示;人工魚群的擁擠因子用δ表示;人工魚的感知范圍用νisual表示;移動(dòng)(迭代)次數(shù)用try_number表示,r為區(qū)間(0,1)內(nèi)的隨機(jī)數(shù)。
(1)聚群行為
聚群行為是人工魚個(gè)體在移動(dòng)程中自然地聚集成群向鄰域中心移動(dòng)的行為。設(shè)人工魚當(dāng)前位置狀態(tài)為Xi,探尋其鄰域內(nèi)(即dij<νisual)伙伴數(shù)目nf及中心位置Xcenter,計(jì)算該聚群中心的適應(yīng)度(即食物濃度)。在求極小值問題中,如果Ycenter*nf<δ*Yi,表明中心位置 Xcenter處有較多食物且伙伴數(shù)量不太多,則該人工魚向中心位置Xcenter前進(jìn)一步。其計(jì)算公式為:
否則,繼續(xù)執(zhí)行覓食行為。
(2)追尾行為
追尾行為是一種人工魚向著附近有著最優(yōu)適應(yīng)度移動(dòng)的行為。設(shè)人工魚當(dāng)前狀態(tài)為Xi,搜索當(dāng)前鄰域內(nèi)(即dij<νisual)的伙伴中適應(yīng)度值最小的伙伴Xmin,此時(shí)其對(duì)應(yīng)的適應(yīng)度值為Ymin。在求極小值問題中,如果Ymin*nf<δ*Yi,表明在Xmin處具有較高的食物濃度并且其伙伴數(shù)量不太多,那么朝Xmin前進(jìn)一步。其計(jì)算公式為:
否則,繼續(xù)執(zhí)行覓食行為。
(3)覓食行為
覓食行為是人工魚根據(jù)食物濃度趨向較優(yōu)適應(yīng)度的基本行為。設(shè)人工魚當(dāng)前位置狀態(tài)為Xi,在其感知鄰近范圍內(nèi)隨機(jī)選擇一個(gè)狀態(tài)Xj:
式中,Rand()是一個(gè)介于-1和1之間的隨機(jī)數(shù),在求解極值問題中,若Yi>Yj,則向該位置前進(jìn)移動(dòng)一步:
反之,在鄰近范圍內(nèi)重新隨機(jī)選擇狀態(tài)Xj,判斷是否滿足前進(jìn)迭代的條件,反復(fù)嘗試try_number次后,如果仍不滿足前進(jìn)移動(dòng)條件,則執(zhí)行下一步的隨機(jī)行為。
(4)隨機(jī)行為
隨機(jī)行為就是在人工魚的視野中隨機(jī)選擇一個(gè)位置狀態(tài),然后向該方向移動(dòng),其他它是覓食行為的一個(gè)缺省行為。計(jì)算公式為:
其中,Rand()是一個(gè)介于-1和1之間的隨機(jī)數(shù)。
另外,人工魚群算法通過設(shè)置公告牌來記錄最優(yōu)狀態(tài)和當(dāng)前迭代的最優(yōu)人工魚位置信息。
為了提高人工魚群算法的全局搜索能力,克服傳統(tǒng)人工魚群算法計(jì)算精度低、后期收斂速度慢、復(fù)雜度較高等缺點(diǎn),江銘炎和袁東風(fēng)[17]在人工魚的位置更新公式中加入全局最優(yōu)信息,提出了全局人工魚群算法(GAFS)。但是該GAFS中各人工魚在隨機(jī)行為階段只能在其視野范圍內(nèi)產(chǎn)生隨機(jī)狀態(tài),這就使得各條人工魚的搜索范圍太小,不利于算法跳出局部最優(yōu)。
為了擴(kuò)大每條人工魚的搜索范圍。本文在隨機(jī)行為階段,將隨機(jī)狀態(tài)的選擇范圍擴(kuò)大到整個(gè)魚群搜索區(qū)域,從而增強(qiáng)了全局人工魚群算法跳出局部最優(yōu)解的能力。AFS算法中魚的聚群、追尾、覓食和隨機(jī)行為的公式(2)、公式(3)、公式(5)和公式(6)修改為如下新的公式:
其中,Xbest為全局最優(yōu)位置,xmin為人工魚搜索范圍的最小邊界值,xmax為人工魚搜索范圍的最大邊界值。
模糊區(qū)間是模糊時(shí)間序列模型建立的基石,模糊區(qū)間劃分是決定模糊時(shí)間序列預(yù)測精度的關(guān)鍵因素,為了能夠更好地提高預(yù)測精度,更加真實(shí)地反映數(shù)據(jù)的內(nèi)部結(jié)構(gòu),本文將IGAFS算法用于模糊區(qū)間的劃分中,建立了IGAFS-FTS預(yù)測模型,具體實(shí)現(xiàn)步驟如下:
步驟1:設(shè)置數(shù)據(jù)集和初始化參數(shù)
將數(shù)據(jù)集中的數(shù)據(jù)分為訓(xùn)練集和測試集。設(shè)置FTS中模糊區(qū)間的個(gè)數(shù)n和模型階數(shù)λ,初始化IGAFS算法相關(guān)參數(shù),包括各人工魚所含參數(shù)數(shù)目d=n-1、人工魚的群體規(guī)模 fishnum、最大迭代次數(shù)MAXGEN等。
步驟2:定義論域
步驟3:初始化人工魚的位置并計(jì)算其對(duì)應(yīng)的適應(yīng)度值
在人工魚群算法中,每條人工魚的位置由d維參數(shù)向量 Xid=(xi,1,xi,2,…,xi,d) 來表示,Xid表示論域 U 的一組分隔點(diǎn)。每條人工魚都從論域U內(nèi)隨機(jī)產(chǎn)生d個(gè)數(shù)據(jù),并將這d個(gè)數(shù)據(jù)按從小到大的順序排列,作為各條人工魚所對(duì)應(yīng)的初始化位置向量,計(jì)算此時(shí)各條人工魚(即可能解)所對(duì)應(yīng)的適應(yīng)度值 fitness,適應(yīng)度值的計(jì)算過程如下所示:
步驟3.1:數(shù)據(jù)模糊化
根據(jù)每個(gè)人工魚所對(duì)應(yīng)的位置向量來劃分論域U,運(yùn)用文獻(xiàn)[13]中定義的論域及模糊集的方法將數(shù)據(jù)模糊化,給出相應(yīng)的模糊時(shí)間序列。
步驟3.2:建立模糊邏輯關(guān)系和模糊邏輯關(guān)系組
經(jīng)上文的分析可知,不同的論域劃分所得到的模糊時(shí)間序列是不同的,進(jìn)而所構(gòu)成的模糊邏輯關(guān)系組也是不同的。根據(jù)上一步所確立的各組模糊時(shí)間序列數(shù)據(jù)和預(yù)先給定的模糊時(shí)間序列的模型階數(shù),確立相應(yīng)的模糊關(guān)系和模糊關(guān)系組表。例如,假設(shè)某個(gè)具有23個(gè)觀測值的時(shí)間序列,在某種論域劃分下,得到表1所示的模糊時(shí)間序列,表2給出其所對(duì)應(yīng)的模糊關(guān)系組。
表1 樣本模糊時(shí)間序列
表2 樣本模糊時(shí)間序列的模糊邏輯關(guān)系組
步驟3.3:去模糊化及求預(yù)測值
通過對(duì)上面得到的各模糊邏輯關(guān)系組進(jìn)行解模糊運(yùn)算,進(jìn)而得到在不同論域劃分下所對(duì)應(yīng)的預(yù)測值。訓(xùn)練與測試數(shù)據(jù)集分別采用EBN和MV這兩種方法來獲得預(yù)測值。
在EBN預(yù)測方法中:將各個(gè)模糊邏輯關(guān)系組中,所含的每條模糊邏輯關(guān)系右件模糊值(Ai)所對(duì)應(yīng)的區(qū)間均分為3塊,然后通過公式(11)計(jì)算得到預(yù)測結(jié)果:
其中,F(xiàn)(t)為預(yù)測值,n為同一個(gè)模糊邏輯關(guān)系組中所含的不同模糊邏輯關(guān)系的個(gè)數(shù);midk(1≤k≤n)為模糊邏輯關(guān)系右件模糊值A(chǔ)k所對(duì)應(yīng)區(qū)間的中點(diǎn)值;submidk為將模糊邏輯關(guān)系右件模糊值A(chǔ)k所對(duì)應(yīng)區(qū)間均分為3個(gè)區(qū)間后,其中某個(gè)區(qū)間的中點(diǎn)值。例如:表2中所給出的第2個(gè)模糊邏輯關(guān)系組,它只有一個(gè)右件模糊值A(chǔ)6。此時(shí),本文的目標(biāo)是預(yù)測表1中所給出的第6個(gè)觀測值,假設(shè)這個(gè)觀測值的實(shí)際值是76100,A6所對(duì)應(yīng)的模糊區(qū)間為 I6=(75000,76500],將其均分為3個(gè)子區(qū)間,此時(shí),其所對(duì)應(yīng)的3個(gè)子區(qū)間為。根據(jù)上面這些信息,按照EBN預(yù)測方法,可知區(qū)間 I6的中點(diǎn)值為mid6=75750,實(shí)數(shù)。因此,得到對(duì)應(yīng)的模糊關(guān)系為F(t-2=在子區(qū)間 SR6.3中,此時(shí)76500)/2=76250,進(jìn)而,可以得到的預(yù)測值為:
本文采用等Kuo等[6]提出的MV預(yù)測方法來獲得測試數(shù)據(jù)集的預(yù)測值,原文獻(xiàn)在建立模糊關(guān)系時(shí)使用前λ年的數(shù)據(jù)來做預(yù)測,通過MV預(yù)測方法來計(jì)算測試數(shù)據(jù)集的預(yù)測值,預(yù)測值計(jì)算公式如下:
其中,F(xiàn)(t)為第t年的預(yù)測值,λ表示預(yù)測用到幾年的數(shù)據(jù),Wh表示前一年的數(shù)據(jù)對(duì)預(yù)測下年數(shù)據(jù)的影響程度,表示之前第i年模糊數(shù)據(jù)集區(qū)間的中點(diǎn)值,不同的Wh值不同的對(duì)應(yīng)預(yù)測精度,選取實(shí)驗(yàn)過程中使得精度最好的Wh。
步驟3.4:計(jì)算適應(yīng)度值
本文采用預(yù)測值與實(shí)際值的均方誤差(MSE)函數(shù)來評(píng)價(jià)算法的預(yù)測性能,MSE公式如下:
其中,Xforecasted(t) 和 Xactual(t)分別為t時(shí)刻樣本數(shù)據(jù)的預(yù)測值和實(shí)際值,N是預(yù)測值的個(gè)數(shù)。
在初始化人工魚群階段,比較初始化魚群中各人工魚所對(duì)應(yīng)的適應(yīng)度值,將最小適應(yīng)度值所對(duì)應(yīng)的位置向量賦給Xbest。用公告牌來記錄最優(yōu)狀態(tài)和當(dāng)前迭代的最優(yōu)人工魚位置信息。
步驟4:人工魚行為選擇
每條人工魚分別執(zhí)行IGAFS中的覓食、聚群、追尾和隨機(jī)行為等步驟,不斷更新人工魚個(gè)體的位置狀態(tài)信息,尋找并保存全局最優(yōu)值,將最優(yōu)人工魚位置向量賦給Xbest。
步驟5:行為終止判斷
對(duì)是否達(dá)到魚群的最大迭代次數(shù)進(jìn)行判斷,若未達(dá)到最大迭代次數(shù),則迭代次數(shù)加1,跳轉(zhuǎn)至步驟3繼續(xù)執(zhí)行;若已達(dá)到最大迭代次數(shù),則輸出魚群的最優(yōu)適應(yīng)度值和最優(yōu)值對(duì)應(yīng)的人工魚位置向量。
為了驗(yàn)證所提出算法的有效性,本文選取表3中給出的一組Alabama大學(xué)1971—1992年的注冊人數(shù)[2]作為樣本數(shù)據(jù)進(jìn)行比較研究。
表3 實(shí)際注冊人數(shù)、模糊化數(shù)據(jù)
步驟1:數(shù)據(jù)集設(shè)置和參數(shù)初始化
模糊區(qū)間的個(gè)數(shù)為n=7,各人工魚所含參數(shù)數(shù)目為d=6,模型階數(shù)λ=2,人工魚的群體規(guī)模 fishnum=100,最大迭代次數(shù)MAXGEN=150,人工魚的感知距離νisual=500,擁擠因子delta=5,最大移動(dòng)步長step=600*rand(rand為[0,1]內(nèi)的隨機(jī)數(shù)),最大試探次數(shù)try_number=30。
步驟2:定義論域
步驟3:初始化人工魚的位置并計(jì)算其對(duì)應(yīng)的適應(yīng)度值
通過步驟3.1至步驟3.4得到初始化人工魚群的位置向量,并將最小適應(yīng)度對(duì)應(yīng)的位置向量賦給Xbest。
步驟4:用IGAFS得到全局最優(yōu)適應(yīng)度值
每條人工魚分別執(zhí)行IGAFS的覓食、聚群、追尾和隨機(jī)行為4個(gè)步驟,不斷更新人工魚個(gè)體的位置狀態(tài)信息,然后保存全局最優(yōu)位置向量值,經(jīng)過150迭代后,得到使MSE結(jié)果最優(yōu)的全局最優(yōu)參數(shù)向量為:
此時(shí),所對(duì)應(yīng)的MSE=48875,結(jié)果如表3所示。
在表4中,將本文提出的預(yù)測方法與HPSO(使用2階模糊時(shí)間序列)[6],Cheng[12],CCO6H[18],Egioglu[19]和Chen[20]等模型的預(yù)測結(jié)果進(jìn)行比較,結(jié)果表明在訓(xùn)練數(shù)據(jù)集階段新方法優(yōu)于其他模型。
表4 不同方法預(yù)測結(jié)果比較
為了確定所提出方法預(yù)測未來數(shù)據(jù)的能力,將數(shù)據(jù)集中最后的3個(gè)觀測值作為測試數(shù)據(jù)集,并對(duì)這3個(gè)觀測值進(jìn)行預(yù)測。為剩下的19個(gè)觀測值創(chuàng)建相應(yīng)的模糊關(guān)系,預(yù)測得到對(duì)應(yīng)測試集中的數(shù)據(jù),通過預(yù)測值與實(shí)際值的均方誤差(MSE)來評(píng)估預(yù)測未來數(shù)據(jù)的能力。
本文測試集的分析與其他方法一樣,都是通過MV預(yù)測方法,得到測試集中的數(shù)據(jù)。通過大量研究發(fā)現(xiàn)2階模型時(shí)可以獲得最好的預(yù)測精度。
表5給出在相同的區(qū)間數(shù)目n=7、模型階數(shù)λ=2和Wh=15下,HPSO[6],AFPSO[21]和本文提出的新方法在測試階段的預(yù)測精度。
表5 不同方法預(yù)測結(jié)果比較
由表5可以看出本文所提出的方法MSE最小,這表明對(duì)于Alabama大學(xué)注冊數(shù)據(jù)來說本文所提出的方法在測試階段預(yù)測精度是比較好的,并且對(duì)未來數(shù)據(jù)的預(yù)測性能也是令人滿意的。
論域劃分是影響模糊時(shí)間序列模型預(yù)測精度的關(guān)鍵因素,本文將改進(jìn)的全局人工魚群算法用于模糊時(shí)間序列論域的劃分,從而提出了一種新的模糊時(shí)間序列預(yù)測模型,并將提出的方法用來預(yù)測Alabama大學(xué)注冊人數(shù),最后通過與其他模型進(jìn)行比較,仿真結(jié)果表明:本文所提出的基于改進(jìn)人工魚群算法的模糊時(shí)間序列預(yù)測的有效性,它更好地反映了數(shù)據(jù)的結(jié)構(gòu),提高了預(yù)測精度。
參考文獻(xiàn):
[1]Zadeh L A.Fuzzy Sets[J].Information and Control,1965,8(3).
[2]Song Q,Chissom B S.Fuzzy Time Series and Its Models[J].Fuzzy Sets and Systems,1993,54(1).
[3]Song Q,Chissom B S.Forecasting Enrollments With Fu-Zzy Time Series:Part I[J].Fuzzy Sets and Systems,1993,54(1).
[4]Song Q,Chissom B S.Forecasting Enrollments With Fu-Zzy Time Series:Part II[J].Fuzzy Sets and Systems,1994,62(1).
[5]Sakhuja S,Jain V,Kumar S,et al.Genetic Algorithm Based Fuzzy Time Series Tourism Demand Forecast Model[J].Industrial Manage-ment&Data Systems,2016,116(3).
[6]Kuo I H,Horng S J,Kao T W,et al.An Improved Method for Forecasting Enrollments Based on Fuzzy Time Series and Particle Swarm Optimization[J].Expert Systems With Applications,2009,36(3).
[7]Kuo I H,Horng S J,Chen Y H,et al.Forecasting TAI FEX Based on Fuzzy Time Series and Particle Swarm Optimization[J].Expert Systems With Applications,2010,37(2).
[8]Bas E,Egrioglu E,Aladag C H,et al.Fuzzy Time Series Network Used to Forecast Linear and Nonlinear Time Series[J].Applied Intelligence,2015,43(2).
[9]Huarng K,Yu T H K.Ratio-Based Lengths of Intervals to Improve Fuzzy Time Series Forecasting[J].IEEE Transactions on Systems,Man and Cybernetics,Part B:Cybernetics,2006,36(2).
[10]Cheng S H,Chen S M,Jian W S.Fuzzy Time Series Forecasting Based on Fuzzy Logical Relationships and Similarity Measures[J].Information Sciences,2016,(327).
[11]Chen Y H,Hong W C,Shen W,et al.Electric Load Forecasting Based on a Least Squares Support Vector Machine With Fuzzy Time Series and Global Harmony Search Algorithm[J].Energies,2016,9(2).
[12]Cheng C H,Cheng G W,Wang J W.Multi-Attribute Fuzzy Time Series Method Based on Fuzzy Clustering[J].Expert Systems With Applications,2008,34(2).
[13]Chen S M.Forecasting Enrollments Based on Fuzzy Time Series[J].Fuzzy Sets and Systems,1996,81(3).
[14]Aladag C H,Yolcu U,Egrioglu E.A High Order Fuzzy Time Series Forecasting Model Based on Adaptive Expectation and Artificial Neural Networks[J].Mathematics and Computers in Simulation,2010,81(4).
[15]Chen S M.Forecasting Enrollments Based on High-Order Fuzzy Time Series[J].Cybernetics and Systems,2002,33(1).
[16]李曉磊,邵之江,錢積新.一種基于動(dòng)物自治體的尋優(yōu)模式:魚群算法[J].系統(tǒng)工程理論與實(shí)踐,2002,22(11).
[17]江銘炎,袁東風(fēng).人工魚群算法及其應(yīng)用[M].北京:科學(xué)出版社,2012.
[18]Chen S M,Chung N Y.Forecasting Enrollments Using High-Order Fuzzy Time Series and Genetic Algorithms[J].International Journal of Intelligent Systems,2006,21(5).
[19]Aladag C H,Basaran M A,Egrioglu E,et al.Forecasting in High Order Fuzzy Times Series by Using Neural Networks to Define Fuzzy Relations[J].Expert Systems With Applications,2009,36(3).
[20]陳剛,曲宏巍.一種新的模糊時(shí)間序列模型的預(yù)測方法[J].控制與決策,2013,28(1).
[21]Huang Y L,Horng S J,He M,et al.A Hybrid Forecasting Model for Enrollments Based on Aggregated Fuzzy Time Series and Particle Swarm Optimization[J].Expert Systems With Applications,2011,38(7).