APP下载

基于布谷鸟算法优化BP神经网络模型的股价预测

2016-03-17李晓戈于娇艳

计算机应用与软件 2016年2期
关键词:布谷鸟遗传算法神经网络

孙 晨 李 阳 李晓戈 于娇艳

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。孙晨,硕士生,主研领域:智能算法。李阳,硕士生。李晓戈,教授。于娇艳,硕士生。

猜你喜欢

布谷鸟遗传算法神经网络
布谷鸟读信
布谷鸟读信
神经网络抑制无线通信干扰探究
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
布谷鸟叫醒的清晨
基于神经网络的拉矫机控制模型建立
软件发布规划的遗传算法实现与解释
基于改进的遗传算法的模糊聚类算法
复数神经网络在基于WiFi的室内LBS应用