喻麗春
股票指數(shù)是描述股票市場(chǎng)總的價(jià)格水平變化的指標(biāo).它是選取有代表性的一組股票,把它們的價(jià)格進(jìn)行加權(quán)平均,通過一定的計(jì)算得到.在金融數(shù)據(jù)挖掘方面,股票指數(shù)預(yù)測(cè)一直是個(gè)比較熱門的研究領(lǐng)域.近年來,國內(nèi)外很多計(jì)算機(jī)學(xué)者將神經(jīng)網(wǎng)絡(luò)、遺傳算法、模式匹配識(shí)別[1,2]等算法思想應(yīng)用于股票的預(yù)測(cè)和分析,取得了很大的成功.但由于股票指數(shù)受多方面因素的影響,各種算法都有固有的缺點(diǎn)和優(yōu)點(diǎn).人工神經(jīng)網(wǎng)絡(luò)具有廣泛的學(xué)習(xí)能力和適應(yīng)能力,但容易陷入局部最優(yōu),從而影響模型的建立和可靠性.模式匹配識(shí)別方法是以歷史數(shù)據(jù)來進(jìn)行預(yù)測(cè),具有較好的擬合度[3],但股指不僅僅是重復(fù)過去,隨著時(shí)間的推移有著自身的變化規(guī)律.所以將人工神經(jīng)網(wǎng)絡(luò)和模式匹配識(shí)別進(jìn)行結(jié)合,能夠揚(yáng)長避短,取得更好的預(yù)測(cè)結(jié)果.
模式匹配識(shí)別系統(tǒng)最重要的步驟是確定與當(dāng)前時(shí)間序列數(shù)據(jù)趨勢(shì)最接近的歷史時(shí)間序列數(shù)據(jù),并根據(jù)最接近的歷史時(shí)間序列數(shù)據(jù)段的最后一個(gè)節(jié)點(diǎn)的升降趨勢(shì),預(yù)測(cè)未來的時(shí)間序列數(shù)據(jù)趨勢(shì).實(shí)現(xiàn)模式匹配識(shí)別系統(tǒng)的步驟如下:
(1)選擇歷史數(shù)據(jù)
歷史數(shù)據(jù)在模式匹配識(shí)別系統(tǒng)中有著很重要的作用.根據(jù)多次實(shí)驗(yàn),選取一段長度為n 的數(shù)據(jù)序列,n 為250 ~400 時(shí)最為合適.假設(shè)所選取的歷史時(shí)間數(shù)據(jù)序列為:
Y={y1,y2,…,yn}
選擇最近一段長度為k + 1 的時(shí)間序列數(shù)據(jù),該時(shí)間序列數(shù)據(jù)可表示如下:
Yc={yn-k,yn-k+1,…,yn-1,yn}
yn代表今天的股票指數(shù),yn-1為昨天的股票指數(shù),如此類推.k+1 為其序列數(shù)據(jù)的個(gè)數(shù),它的長短將對(duì)預(yù)測(cè)結(jié)果產(chǎn)生重要影響.太長或太短都將干擾預(yù)測(cè)的準(zhǔn)確性.k 最適合的值在程序中根據(jù)預(yù)測(cè)值的相對(duì)誤差和準(zhǔn)確率確定.根據(jù)實(shí)驗(yàn)結(jié)果,k 的值在2 ~6 之間.
(2)最近似匹配時(shí)間序列數(shù)據(jù)
模式匹配識(shí)別系統(tǒng)的關(guān)鍵步驟是匹配,如何在過去的歷史數(shù)據(jù)中找出與當(dāng)前時(shí)間序列數(shù)據(jù)最近似的序列是最主要的問題.假設(shè)最近似的序列為:
Yp={yj-k,yj-k+1,…,yj-1,yj}
對(duì)原來的數(shù)據(jù)序列Y 進(jìn)行處理,產(chǎn)生兩個(gè)新的數(shù)據(jù)序列:
C={C1,C2,…,Cn-1}
D={D1,D2,…,Dn-1}
C 為股票指數(shù)升降趨勢(shì)序列,其構(gòu)造方法如下:
D 為股票指數(shù)變化數(shù)據(jù)序列,其構(gòu)造方法如下:
Di=yi+1- yi
在序列C 里面尋找與數(shù)據(jù)段相匹配的01 數(shù)據(jù)段Cp,可得到一個(gè)或多個(gè)與Cc相匹配的數(shù)據(jù)段Cp.比較它們?cè)谛蛄衁 里面相對(duì)應(yīng)的數(shù)據(jù)段Yc和數(shù)據(jù)段Yp的差異distance,記為D.計(jì)算方法如下:
D 為兩個(gè)數(shù)據(jù)序列的差異,其值越接近零,則表示兩個(gè)數(shù)據(jù)序列之間的差異越小.
(3)確定股票預(yù)測(cè)指數(shù)
假設(shè)找到與時(shí)間序列數(shù)據(jù)Cc最接近的時(shí)間序列Cp,表示方法如下:
Cc={Cn-2,Cn-1}
Cp={Cj-2,Cj-1}
假設(shè)Cj=1,那么可以預(yù)測(cè)Cn=1,從而可以知道明天的股票指數(shù)Yn+1將比今天的高.計(jì)算yn+1的值的公式如下:
(4)誤差計(jì)算
可采用預(yù)測(cè)結(jié)果的趨勢(shì)準(zhǔn)確率與平均相對(duì)誤差評(píng)價(jià)預(yù)測(cè)結(jié)果.當(dāng)預(yù)測(cè)趨勢(shì)和實(shí)際一致時(shí),計(jì)算器rightdirection 加1.n 天的預(yù)測(cè)結(jié)果趨勢(shì)準(zhǔn)確率ET 的計(jì)算方法如下:
n 天的預(yù)測(cè)值平均相對(duì)誤差的計(jì)算公式如下:
其中,Y' 為預(yù)測(cè)的股指,Yi為實(shí)際股指,n 為預(yù)測(cè)天數(shù),ER 的值越接近于0.預(yù)測(cè)多天的數(shù)據(jù),可利用滾動(dòng)的方式,把預(yù)測(cè)值也加入到歷史數(shù)據(jù)中,重復(fù)上面的步驟.
神經(jīng)網(wǎng)絡(luò)在預(yù)測(cè)非線性系統(tǒng)方面有著很大的優(yōu)勢(shì),它通常用歷史數(shù)據(jù)來訓(xùn)練網(wǎng)絡(luò),并利用在時(shí)間上最靠近預(yù)測(cè)數(shù)據(jù)的幾個(gè)時(shí)間序列數(shù)據(jù)來預(yù)測(cè)實(shí)際輸出.BP 算法是神經(jīng)網(wǎng)絡(luò)中應(yīng)用最為廣泛的一種學(xué)習(xí)算法[4,5].
(1)網(wǎng)絡(luò)初始化,權(quán)值的初始值用小隨機(jī)數(shù)設(shè)定.
(2)輸入向量輸入到輸入層,并傳播到各神經(jīng)元.
(3)向輸出層輸入教師信號(hào).
(4)誤差逆?zhèn)鞑サ臋?quán)值學(xué)習(xí).
(5)計(jì)算樣本的誤差,如樣本誤差小于預(yù)設(shè)誤差,則保存權(quán)值退出;否則,返回到步驟2 繼續(xù)訓(xùn)練.
為提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,首先對(duì)樣本進(jìn)行歸一化操作.處理方法是分別用max、min 記錄樣本里面輸入輸出的最大最小值,然后對(duì)每個(gè)樣本值歸一化處理.公式如下:
對(duì)于初始權(quán)值,取0 ~1 之間隨機(jī)數(shù).輸入歸一化后的樣本時(shí),為防止樣本的輸入順序?qū)τ?xùn)練結(jié)果產(chǎn)生較大影響,可采用循環(huán)輸入的方法,并通過樣本的輸入數(shù)據(jù)計(jì)算輸出向量O.比較輸出向量O 和教師數(shù)據(jù)T,計(jì)算其均方誤差:
其中i 表示第i 個(gè)樣本.接著反向傳播,計(jì)算輸出層到隱層的δ,采用的激勵(lì)函數(shù)為Sigmoid 函數(shù).激勵(lì)函數(shù)導(dǎo)數(shù)公式如下:
f'(x)= f(x)×[1 - f(x)]
δ 的計(jì)算公式如下:
δ=[(1 - Ok)·Ok]×[Tk- Ok]
調(diào)整隱層到輸出層的權(quán)值:
Vjk=Vik+ aδkHh
其中:k 為輸出層的第k 個(gè)節(jié)點(diǎn),Hj為隱層節(jié)點(diǎn)中的第j 個(gè)節(jié)點(diǎn)的輸出,a 為學(xué)習(xí)效率.在調(diào)整輸入層到隱層的權(quán)值之前,需計(jì)算輸入層到隱層的δ,為了區(qū)別前面輸出層到隱層的δ,此處使用λ 表示.先計(jì)算來自緊接其后層的δ 的附加權(quán)值和δ',計(jì)算公式如下:
再計(jì)算λ 值,計(jì)算公式如下:
λj=[(1 - Hj)Hj]·δ'
計(jì)算調(diào)整輸入層到隱層的權(quán)值:
Wij=Wij+ bλjXi
其中:Wij為第i 個(gè)輸入節(jié)點(diǎn)到第j 個(gè)隱層節(jié)點(diǎn)的權(quán)值,b 為學(xué)習(xí)效率.累加n 個(gè)樣本的全局誤差.如果全局誤差小于預(yù)定值preErr,則訓(xùn)練完畢;否則,改變n 個(gè)樣本的輸入次序,繼續(xù)訓(xùn)練.
基于模式匹配識(shí)別和神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)系統(tǒng)流程圖如圖1所示.
圖1 預(yù)測(cè)系統(tǒng)流程圖
假設(shè)需要預(yù)測(cè)30 個(gè)連續(xù)的預(yù)測(cè)值,預(yù)測(cè)值為Pi(1 ≤i ≤30).同時(shí)其對(duì)應(yīng)的實(shí)際值為Ri(1≤i ≤30).可將預(yù)測(cè)值和實(shí)際值分成5 組,得到如表1所示的5 個(gè)樣本:
表1 樣本列表
由表1可知,輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)都為6個(gè).隱層節(jié)點(diǎn)太多或太少都將不利于預(yù)測(cè)的最終效果.在經(jīng)過實(shí)驗(yàn)數(shù)據(jù)的預(yù)測(cè)效果對(duì)比之后,將隱層節(jié)點(diǎn)定為10 個(gè),并設(shè)置輸入層到隱層、隱層到輸出層的學(xué)習(xí)效率均為0.7.當(dāng)全局誤差小于0.005 時(shí),訓(xùn)練完畢.訓(xùn)練完成時(shí),權(quán)值將被保存到文件weight.sav.采用模式匹配識(shí)別系統(tǒng)讀入需預(yù)測(cè)的數(shù)值序列前270 d 的時(shí)間序列數(shù)據(jù),產(chǎn)生30 d 的預(yù)測(cè)數(shù)據(jù)序列,將其作為神經(jīng)網(wǎng)絡(luò)的輸入,并從weight.sav 文件讀取權(quán)值,輸出結(jié)果為最終預(yù)測(cè)值.
采用基于模式匹配識(shí)別和神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)系統(tǒng)預(yù)測(cè)上證指數(shù)3 個(gè)不同時(shí)間段的數(shù)據(jù).具體時(shí)間段如下:
2012.12.06 —2013.01.21;
2013.01.22 —2013.03.11;
2013.03.12 —2013.04.24.
預(yù)測(cè)天數(shù)分別為30 個(gè)交易日.預(yù)測(cè)結(jié)果分別如圖2、圖3、圖4所示.圖中空心正方形實(shí)線為真實(shí)值,空心圓形實(shí)線為模式匹配識(shí)別預(yù)測(cè)值,空心三角形虛線為混合系統(tǒng)預(yù)測(cè)值.實(shí)驗(yàn)結(jié)果顯示:該系統(tǒng)的預(yù)測(cè)值和預(yù)測(cè)趨勢(shì)更接近于實(shí)際值,預(yù)測(cè)結(jié)果具有一定的準(zhǔn)確性和實(shí)用性.
圖2 2012.12.06—2013.01.21 預(yù)測(cè)結(jié)果
圖3 2013.01.22—2013.03.11 預(yù)測(cè)結(jié)果
圖4 2013.03.12—2013.04.24 預(yù)測(cè)結(jié)果
由實(shí)驗(yàn)測(cè)試結(jié)果可知:模式匹配識(shí)別和神經(jīng)網(wǎng)絡(luò)相結(jié)合在總體上比單用模式匹配識(shí)別進(jìn)行預(yù)測(cè)的效果更好.該混合系統(tǒng)在絕大多數(shù)情況下預(yù)測(cè)值逼近于真實(shí)值,預(yù)測(cè)結(jié)果良好.但是,由于訓(xùn)練樣本個(gè)數(shù)偏少,可能使預(yù)測(cè)效果并沒有達(dá)到最佳狀態(tài).如何改善算法,使混合系統(tǒng)的預(yù)測(cè)能力更強(qiáng),如何克服股票市場(chǎng)外在的人為因素和經(jīng)濟(jì)因素的影響,是值得我們繼續(xù)思考的問題.
[1] Sameer S,Jonathan F.Pattern matching and neural networks based hybrid forecasting system[J].Advances in Pattern Recognition,2001:72 -82.
[2] Sameer S.Fuzzy nearest neighbour method for time -series forecasting[C].Proc.6th European Congress on Intelligent Techniques and Soft Computing,1998:1901-1905.
[3] 胡金柱,熊春秀,舒江波,等.一種改進(jìn)的字符串模式匹配算法[J].模式識(shí)別與人工智能,2010,23(1) :103 -106.
[4] 黃華,羅四維,李愛軍,等.實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)知識(shí)增殖能力的一種方法[J].計(jì)算機(jī)研究與發(fā)展,2004,41(7) :21 -26.
[5] 李炯城,黃漢雄.一種新的快速BP 神經(jīng)網(wǎng)絡(luò)算法QLMBP[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2006,34(6) :49 -54.