孫 晨 李 陽 李曉戈 于嬌艷
1(西安郵電大學計算機學院 陜西 西安 710100)
2(北京交通大學電子信息工程學院 北京 100044)
3(西安外國語大學英文學院 陜西 西安 710100)
?
基于布谷鳥算法優化BP神經網絡模型的股價預測
孫晨1李陽2李曉戈1于嬌艷3
1(西安郵電大學計算機學院陜西 西安 710100)
2(北京交通大學電子信息工程學院北京 100044)
3(西安外國語大學英文學院陜西 西安 710100)
摘要針對當前智能算法對股票市場預測精度不高的問題,提出使用布谷鳥算法優化神經網絡(CS-BP)的方法,對股票市場進行預測。并與粒子群算法優化神經網絡模型(PSO-BP)和遺傳算法優化神經網絡模型(GA-BP)的測試結果進行比較。通過對SZ300091(金通靈)日線的收盤價數據回測分析看出,布谷鳥算法優化神經網絡模型明顯優于這兩種算法,能有效對股票市場進行預測,對于30天的預測精度約為98.633%。
關鍵詞布谷鳥算法神經網絡股票預測
STOCK FORECASTING MODEL BASED ON OPTIMISING BP NEURAL NETWORK WITH CUCKOO SEARCH
Sun Chen1Li Yang2Li Xiaoge1Yu Jiaoyan3
1(School of Computer Science,Xi’an University of Post and Telecommunication,Xi’an 710100,Shaanxi,China)2(School of Electronic and Information Engineering,Beijing Jiaotong University,Beijing 100044,China)3(School of English Study,Xi’an International Studies University,Xi’an 710100,Shaanxi,China)
AbstractThis paper puts forward the method of predicting the stock market by using the cuckoo search algorithm to optimise BP-neural network(CS-BP) aimed at the problem of current intelligent algorithms in poor prediction accuracy on the market. Besides, it compares its test result with the results of PSO-BP model (optimising BP-neural network with particle swarm optimisation) and GA-BP model (optimising BP-neural network with genetic algorithm). After analysing the data backtesting result of the closing price of daily candlesticks of SZ300091 (JTL), we can conclude that the CS-BP model is obviously superior to these two algorithms, it can effectively predict the stock market with about 98.633% of accuracy for thirty days prediction.
KeywordsCS algorithmNeural networkStockPrediction
0引言
近年來股票投資已經成為眾多個人理財方式中最重要的方式之一,越來越受到投資者們的普遍關注。然而由于中國股票市場發展依然不夠成熟,存在著很多方面的隱患。如果能找到一種合理的方法來預測股票的漲跌走勢,進而引導人們進行正確的投資選擇,就可以更好地促進我國經濟朝著健康的方向發展。因此,建立一種合適的預測方法,具有極其重要的理論意義和實際價值。
近年來,隨著人們對股票市場研究的深入,專家和學者提出越來越多的方法進行股票預測。根據建模理論的不同,大致可以分為兩類:一類是以統計學為基礎,傳統型的波動率預測模型。目前比較具有代表性,應用范圍較廣的模型有ARCH模型、GARCH模型和SV模型[1,2]。但是國內外很多學者也做了大量驗證,證明了雖然對股票預測的結果是有效的,擬合效果也是較貼近的,但總體仍然不夠令人滿意[3-8]。另一類是基于非統計原理的創新型股指波動率的預測模型。比較有代表性的有GM模型、SVM模型和ANN模型[9-11]。國內外學者也做了很多驗證,同樣也取得了不錯的效果[12-14]。雖然這些算法都能夠在一定程度上取得不錯的效果,但是每種方法都存在著自己的不足。以神經網絡為例,BP神經網絡由于自身算法的原因,其計算量相對較大,計算速度慢,易陷入局部極小值。因此,很多學者將兩種以上的算法結合到一起,進而彌補每一種算法自身的缺陷,如劉媛媛等人[15]提出的將遺傳算法全局搜索最優和BP 神經網絡模型局部尋優結合起來的方法,能夠很好地改善神經網絡易陷入局部最優和收斂速度慢的缺陷,提高了預測效果。
群體智能優化算法是近年來人們根據自然界的生物的習性、行為提出的一系列啟發式優化算法,其中有代表性的有遺傳算法(GA)、粒子群算法(PSO)、布谷鳥算法(CS)等。其中最新提出的、效果相對更好的要數布谷鳥算法。本文為了提高股票的預測效果,增加精確度和預測速度,提出了利用布谷鳥算法優化神經網絡的方法,據此對股票市場進行走勢預測。通過與遺傳算法優化神經網絡、粒子群算法優化神經網絡對比,發現布谷鳥算法優化神經網絡方法能夠速度更快、精度更高,從而實現對股票走勢的有效判斷,為購買者提供一定的買賣依據。
1BP神經網絡算法
BP神經網絡是1986年由Rumelhart和McCelland為首的科學家小組提出的一種按誤差逆傳播算法訓練的多層前饋網絡[15]。BP神經網絡通過計算輸出層的誤差找到隱藏層的誤差。正是由于反向的這種能力,它非常容易找到輸入輸出之間的關系。梯度下降法是利用計算出的權重進而對網絡進行調整,從而減少網絡輸出的誤差的方法。假設有n個信號輸入,則設輸入向量為X=(x1,x2,…,xn)T,隱藏層節點數為h,則隱藏層輸出向量為Y=(y1,y2,…,yh)T,輸出層為m,則輸出層向量為O=(o1,o2,…,om)T,期望輸出向量為D=(d1,d2,…,dm)T,輸入層到隱藏層之間的權值矩陣為V=(V1,V2,…,Vj,…,Vh)T,隱藏層到輸出層之間權值W=(W1,W2,…,Wk,…,Wm)T,輸出層第k個神經元的輸入輸出分別為:
ok=f(netk)k=1,2,…,m
(1)
(2)
隱層第j個神經元的輸入輸出分別為:
yj=f(netk)k=1,2,…,h
(3)
(4)
其中f(x)為激勵函數,如S函數等。
當實際和理論輸出存在差別時,誤差計算公式如下:
(5)
因為E是權值vij,wjk的函數,所以可以通過梯度下降法來調整權值,進而減小誤差E,即:
(6)
(7)
最終化簡后得到公式:
Δwjk=η(dk-ok)ok(1-ok)yj
(8)
(9)
2布谷鳥算法優化神經網絡
2.1布谷鳥算法
布谷鳥算法是英國劍橋大學著名學者Yang和Deb于2009年根據布谷鳥的繁殖特征和飛行提出的一種新型啟發式優化算法。學者運用了大量的函數進行測試證明該算法在某些方面優于粒子群算法和遺傳算法,優勢體現在:全局搜索能力強、收斂速度快、所含參數少、通用性和魯棒性更好等。
布谷鳥算法是通過布谷鳥特殊的繁殖方式和飛行演變而來的。其將自己的鳥蛋產在別的宿主鳥的巢穴里進行孵化,如果布谷鳥這一行為被宿主鳥當場發現,就會出現激烈的沖突;如果布谷鳥將蛋產完后宿主發現蛋并非自己的,則會將這個蛋或巢穴直接放棄。因此布谷鳥產蛋一般會選擇剛剛產完蛋的巢穴進行產蛋,這樣一旦布谷鳥的蛋被保留下來,則通常情況下布谷鳥蛋會比其余鳥蛋先孵化出來。而布谷鳥新幼體又有本能會將其余鳥蛋推出巢穴之外,這樣宿主鳥就會將布谷鳥撫養長大。另外,許多學者研究發現許多動物和昆蟲的飛行行為都具有飛行的特征[16-19]。如果蠅飛行過程中突然轉90°彎,如Ju’hoansi的狩獵行為等行為,都符合 飛行的特征。Yang提出的布谷鳥算法,是基于以下三種假設的:(1) 每只布谷鳥一次只產一個蛋,同時隨機選擇鳥巢產蛋;(2) 最好鳥巢中的高質量的蛋會被保留并孵化出下一代;(3) 宿主發現外來鳥蛋的概率 ,一旦發現,宿主會將這個蛋或巢穴直接放棄。以此為前提,布谷鳥算法位置更新公式如下:

(10)

20世紀30年代,法國數學家萊蕪提出了Lévy(λ)分布。之后Yang等人也對這一公式進行研究,將Lévy(λ)分布經過化簡和傅里葉變換之后得到冪次形式的概率密度函數:
Lévy~u=t-λ1<λ<3
(11)
其中λ為指數,是一個帶有重尾的概率分布函數。雖然這一函數能從本質上描述布谷鳥算法的隨機過程,但編程上卻極難實現。因此Yang等人在實現布谷鳥算法的時候采用了Mantegna在1992年提出的模擬Lévy飛行跳躍路徑的公式:
(12)
式中s為Lévy飛行跳躍路徑Lévy(λ);參數β同式(11)中λ關系為λ=1+β,β取值范圍為0<β<2,在CS算法中取β=1.5[21];參數μ、ν為正態分布隨機數,服從下面所示的正態分布:
(13)
(14)
因此可以將公式化簡為:
(15)
式中,Lévy飛行取決于μ、ν這兩個參數,而這兩個參數又是隨機數,可正可負,可大可小。這樣就使在尋優的過程中保持很高的隨機性,并且這樣使得該算法也有很強的全局尋優能力。本文通過對不同參數下實驗結果的研究,按最優參數原則,設置宿主隨機拋棄鳥蛋的概率Pa為25%,即Pa=0.25,關于不同參數下的實驗結果分析詳見3.2節數據分析的末尾部分。
2.2布谷鳥算法優化神經網絡進行股票預測步驟
當前有很多專家學者都研究過使用布谷鳥算法優化神經網絡。例如NM Nawi等人做過關于布谷鳥算法優化BP神經網絡的驗證,證明算法結合的效果要比單純的布谷鳥算法精確度高,運算速度快,誤差更小等優點[22]。同時他還優化了列文伯格-馬夸爾特法法[23]。Ehsan Valian等人使用布谷鳥算法優化前饋神經網絡[24]。屈遲文等人使用布谷鳥算法優化灰色神經網絡[25],他們都得到了更好的結果。下面就是布谷鳥算法優化BP神經網絡對股票進行預測的具體步驟:
步驟一首先收集金融市場個股的數據,然后進行初步篩選,選擇能夠盡可能正確反應交易規律。同時又要顧及神經網絡的本身性能的有代表性的數據,然后作為輸入、輸入到網絡中。

3數據分析
3.1數據樣選
對于股票市場的數據,樣本的選取盡量正確地反映其交易規律,又要適合神經網絡的輸入。因此,首先選取數據為個股的收盤價作為輸入和輸出,因為最高和最低價很容易受到影像而波動,開盤價又不具有特別的代表性,而收盤價往往是莊家和散戶經過一天的博弈而達到平衡的一個價格,更加具有代表性。本文將收盤價首先作為輸入進行樣本的預處理,將收盤價轉化為市場上的部分有代表性的技術指標。這些指標包括:收盤價、成交量、移動平均MA、乖離率BIAS、心里線PSY、威廉指標WR、平滑異動平均MACD、相對強弱指標RSI、隨機指標KDJ等。這些指標作為神經網絡輸入的數據。本文用平均絕對誤差(MAE)和平均相對誤差(MAPE)作為神經網絡輸出的評價指標,MAE和MAPE的計算公式如下:
(16)
(17)

3.2數據預測及結果分析
本文選取SZ300091(金通靈)日線的收盤價作為訓練和回測樣本數據。2012年10月9日至2014年1月5日的300個收盤價作為訓練樣本,2014年1月6日至2014年2月24日的30個樣本點作為回測樣本。因為做的是短期預測,因此只要能夠預測后面的一個半月的價格即可。然后構建三層神經網絡,其中所有算法迭代次數為300代,學習率參數為0.1,分別用布谷鳥算法、粒子群算法和遺傳算法進行訓練回測。其中布谷鳥算法中Pa=0.25,鳥巢數量為50個,α=1;粒子群算法中w=1,c1=c2=1.49,種群規模為50;遺傳算法中種群規模為40,交叉概率為0.7,變異概率為0.1,預測結果見圖1-圖5和表1所示。

圖1 GA-BP預測結果

圖2 PSO-BP預測結果 圖3 CS-BP預測結果(PA=0.25)

圖4 CS-BP對比(PA=0.2) 圖5 CS-BP對比(PA=0.3)

預測樣本指標GA-BPPSO-BPCS-BP(Pa=0.25)SZ300091擬合MAE0.93350.34100.2287擬合MAPE0.09980.03500.0238測試MAE0.72580.42920.2463測試MAPE0.04040.02400.0137
通過表1的數據分析可以得知,布谷鳥算法優化BP神經網絡權值后得到的測試平均相對誤差和平均絕對誤差都是最低的,效果要優于粒子群算法和遺傳算法優化BP神經網絡的測試結果;通過表2的數據分析可以得知,在布谷鳥優化BP神經網絡的測試結果中發現,當鳥蛋淘汰率Pa=0.25時,測試結果最優。這說明選用Pa=0.25的布谷鳥優化BP神經網絡模型,可以對股票價格進行更好更有效的預測。

表2 Pa取不同值布谷鳥算法
4結語
本文對布谷鳥算法和神經網絡進行了簡要介紹,進而介紹了如何使用布谷鳥算法優化神經網絡對股票市場的數據進行預測。首先進行數據選取以及預處理,之后將指標作為神經網絡的輸入到網絡內,通過布谷鳥算法對神經網絡的權值和閾值進行迭代優化,達到預測股票走勢的目的。同時,本文還將此方法與當前主流的粒子群算法和遺傳算法的結果進行了對比,證明布谷鳥算法能夠有效地對股票走勢及價格進行估計,從而為機構或散戶買賣股票提供有效依據。
參考文獻
[1] Engle R F.Autoregressive conditional heteroskedasticity with estimates of the variance of U.K. Inflation[M].Econometrica,1982.
[2] Bollerslev T.A generalized autoregressive conditional heteroskedasticity[J].Journal of econometrics,1986,31(3):307-327.
[3] French K R,Schwert G W,Stambaugh R.Expected stock returns and volatility[J].Journal of Financial Economics,1987,19(87):3-29.
[4] 魏巍賢,周曉明.中國股票市場波動的非線性GARCH預測模型[J].預測,1999(5):47-49.
[5] 丁華.股價指數波動中的ARCH現象[J].數量經濟技術經濟研究,1999(9):22-25.
[6] 張永東,畢秋香.上海股市波動性預測模型的實證比較[J].管理工程學報,2003(2):16-19.
[7] Ghysels E,Harvey A Renault.Stochastic volatility[M].Elseier Science Publishers,1995.
[8] Jun Y U.Forecasting volatility in the New Zealand stock market[J].Journal of Financial Economics,2002,12(3):193-202.
[9] 鄧聚龍.灰色控制系統[M].武漢:華中理工大學出版社,1985.
[10] Cortes C,Vapnik V.Support-vector Networks[C]//Machine Learning,1995:273-297.
[11] Matsuba I.Application of neural network sequential associator to long-te- rm stock price prediction[C]//IJCNN.91,Singarporee,1991:1196-1202.
[12] 施久玉,胡程鵬.股票投資中一種新的技術分析方法[J].哈爾濱工程大學,2004,25(5):680-684.
[13] 李立輝,田翔,楊海東,等.基于SVR的金融時間序列預測[J].計算機工程與應用,2005,41(30):221-224.
[14] 尚俊松,毛定祥.改進BP神經網絡在股市預測中的應用[J].價值工程,2004,7(10):119-121.
[15] Rumelhart D E,Hinton G E,Williams R J.Learning Internal Re- presentations by error Propagation[C]//Parallel Distributed Processing:Explorations in the Microstructure of Cognition,1986,1.
[16] Brown C,Liebovitch L S,Glendon R.L′evy flights in Dobe Ju[C]//hoansi foraging patterns,Human Ecol,2007,35:129-138.
[17] Pavlyukevich I.L′evy flights,non-local search and simulated annealing[J].J.Computational Physics,2007,226(2):1830-1844.
[18] Pavlyukevich I.Cooling down Lévy flights[J].Journal of Physics A Mathematical and Theoretical,2007,40(41):12299-12313.
[19] Reynolds A M,Frye M A.Free-flight odor tracking in Drosophila is consistent with an optimal intermittent scale-free search[C]//PLoS One,2007,2:e354.
[20] Yang X S,Deb S.Cuckoo search via Lévy flights[C]//Proceedings of World Congress on Nature & Biologically Inspired Computing.Piscataway:IEEE,2009:210-214.
[21] Yang X S,Deb S.Engineering optimization by cuckoo search[J].International Journal of Mathematical Modeling and Numerical,2010,1(4):330-343.
[22] Nawi N M,Khan A,Rehman M Z.A new back-propagation neural network optimized with cuckoo search algorithm[M]//Computational Science and Its Applications-ICCSA 2013.Springer Berlin Heidelberg,2013:413-426.
[23] Nawi N M,Khan A,Rehman M Z.A new cuckoo search based leven-berg-marquardt (cslm) algorithm[M]//Computational Science and Its Applications-ICCSA 2013.Springer Berlin Heidelberg,2013:438-451.
[24] Valian E,Mohanna S,Tavakoli S.Improved cuckoo search algorithm for feedforward neural network training[J].International Journal of Artificial Intelligence & Applications,2011,2(3):36-43.
[25] 屈遲文,傅彥銘,戴俊.基于改進CS優化算法的灰色神經網絡預測模型[J].西南師范大學學報:自然科學版,2014(1):131-136.
中圖分類號TP399
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.02.064
收稿日期:2014-08-04。孫晨,碩士生,主研領域:智能算法。李陽,碩士生。李曉戈,教授。于嬌艷,碩士生。