基于模式匹配识别和神经网络的股指预测研究

2014-02-15 05:16喻丽春
关键词:模式匹配隐层权值

喻丽春

股票指数是描述股票市场总的价格水平变化的指标.它是选取有代表性的一组股票,把它们的价格进行加权平均,通过一定的计算得到.在金融数据挖掘方面,股票指数预测一直是个比较热门的研究领域.近年来,国内外很多计算机学者将神经网络、遗传算法、模式匹配识别[1,2]等算法思想应用于股票的预测和分析,取得了很大的成功.但由于股票指数受多方面因素的影响,各种算法都有固有的缺点和优点.人工神经网络具有广泛的学习能力和适应能力,但容易陷入局部最优,从而影响模型的建立和可靠性.模式匹配识别方法是以历史数据来进行预测,具有较好的拟合度[3],但股指不仅仅是重复过去,随着时间的推移有着自身的变化规律.所以将人工神经网络和模式匹配识别进行结合,能够扬长避短,取得更好的预测结果.

1 模式匹配识别预测系统

模式匹配识别系统最重要的步骤是确定与当前时间序列数据趋势最接近的历史时间序列数据,并根据最接近的历史时间序列数据段的最后一个节点的升降趋势,预测未来的时间序列数据趋势.实现模式匹配识别系统的步骤如下:

(1)选择历史数据

历史数据在模式匹配识别系统中有着很重要的作用.根据多次实验,选取一段长度为n 的数据序列,n 为250 ~400 时最为合适.假设所选取的历史时间数据序列为:

Y={y1,y2,…,yn}

选择最近一段长度为k + 1 的时间序列数据,该时间序列数据可表示如下:

Yc={yn-k,yn-k+1,…,yn-1,yn}

yn代表今天的股票指数,yn-1为昨天的股票指数,如此类推.k+1 为其序列数据的个数,它的长短将对预测结果产生重要影响.太长或太短都将干扰预测的准确性.k 最适合的值在程序中根据预测值的相对误差和准确率确定.根据实验结果,k 的值在2 ~6 之间.

(2)最近似匹配时间序列数据

模式匹配识别系统的关键步骤是匹配,如何在过去的历史数据中找出与当前时间序列数据最近似的序列是最主要的问题.假设最近似的序列为:

Yp={yj-k,yj-k+1,…,yj-1,yj}

对原来的数据序列Y 进行处理,产生两个新的数据序列:

C={C1,C2,…,Cn-1}

D={D1,D2,…,Dn-1}

C 为股票指数升降趋势序列,其构造方法如下:

D 为股票指数变化数据序列,其构造方法如下:

Di=yi+1- yi

在序列C 里面寻找与数据段相匹配的01 数据段Cp,可得到一个或多个与Cc相匹配的数据段Cp.比较它们在序列Y 里面相对应的数据段Yc和数据段Yp的差异distance,记为D.计算方法如下:

D 为两个数据序列的差异,其值越接近零,则表示两个数据序列之间的差异越小.

(3)确定股票预测指数

假设找到与时间序列数据Cc最接近的时间序列Cp,表示方法如下:

Cc={Cn-2,Cn-1}

Cp={Cj-2,Cj-1}

假设Cj=1,那么可以预测Cn=1,从而可以知道明天的股票指数Yn+1将比今天的高.计算yn+1的值的公式如下:

(4)误差计算

可采用预测结果的趋势准确率与平均相对误差评价预测结果.当预测趋势和实际一致时,计算器rightdirection 加1.n 天的预测结果趋势准确率ET 的计算方法如下:

n 天的预测值平均相对误差的计算公式如下:

其中,Y' 为预测的股指,Yi为实际股指,n 为预测天数,ER 的值越接近于0.预测多天的数据,可利用滚动的方式,把预测值也加入到历史数据中,重复上面的步骤.

2 神经网络预测系统

神经网络在预测非线性系统方面有着很大的优势,它通常用历史数据来训练网络,并利用在时间上最靠近预测数据的几个时间序列数据来预测实际输出.BP 算法是神经网络中应用最为广泛的一种学习算法[4,5].

2.1 BP 算法的基本实现步骤

(1)网络初始化,权值的初始值用小随机数设定.

(2)输入向量输入到输入层,并传播到各神经元.

(3)向输出层输入教师信号.

(4)误差逆传播的权值学习.

(5)计算样本的误差,如样本误差小于预设误差,则保存权值退出;否则,返回到步骤2 继续训练.

2.2 预测实现

为提高神经网络的训练速度,首先对样本进行归一化操作.处理方法是分别用max、min 记录样本里面输入输出的最大最小值,然后对每个样本值归一化处理.公式如下:

对于初始权值,取0 ~1 之间随机数.输入归一化后的样本时,为防止样本的输入顺序对训练结果产生较大影响,可采用循环输入的方法,并通过样本的输入数据计算输出向量O.比较输出向量O 和教师数据T,计算其均方误差:

其中i 表示第i 个样本.接着反向传播,计算输出层到隐层的δ,采用的激励函数为Sigmoid 函数.激励函数导数公式如下:

f'(x)= f(x)×[1 - f(x)]

δ 的计算公式如下:

δ=[(1 - Ok)·Ok]×[Tk- Ok]

调整隐层到输出层的权值:

Vjk=Vik+ aδkHh

其中:k 为输出层的第k 个节点,Hj为隐层节点中的第j 个节点的输出,a 为学习效率.在调整输入层到隐层的权值之前,需计算输入层到隐层的δ,为了区别前面输出层到隐层的δ,此处使用λ 表示.先计算来自紧接其后层的δ 的附加权值和δ',计算公式如下:

再计算λ 值,计算公式如下:

λj=[(1 - Hj)Hj]·δ'

计算调整输入层到隐层的权值:

Wij=Wij+ bλjXi

其中:Wij为第i 个输入节点到第j 个隐层节点的权值,b 为学习效率.累加n 个样本的全局误差.如果全局误差小于预定值preErr,则训练完毕;否则,改变n 个样本的输入次序,继续训练.

3 基于模式匹配识别和神经网络的预测系统

基于模式匹配识别和神经网络的预测系统流程图如图1所示.

图1 预测系统流程图

假设需要预测30 个连续的预测值,预测值为Pi(1 ≤i ≤30).同时其对应的实际值为Ri(1≤i ≤30).可将预测值和实际值分成5 组,得到如表1所示的5 个样本:

表1 样本列表

由表1可知,输入节点和输出节点都为6个.隐层节点太多或太少都将不利于预测的最终效果.在经过实验数据的预测效果对比之后,将隐层节点定为10 个,并设置输入层到隐层、隐层到输出层的学习效率均为0.7.当全局误差小于0.005 时,训练完毕.训练完成时,权值将被保存到文件weight.sav.采用模式匹配识别系统读入需预测的数值序列前270 d 的时间序列数据,产生30 d 的预测数据序列,将其作为神经网络的输入,并从weight.sav 文件读取权值,输出结果为最终预测值.

4 实验结果分析

采用基于模式匹配识别和神经网络的预测系统预测上证指数3 个不同时间段的数据.具体时间段如下:

2012.12.06 —2013.01.21;

2013.01.22 —2013.03.11;

2013.03.12 —2013.04.24.

预测天数分别为30 个交易日.预测结果分别如图2、图3、图4所示.图中空心正方形实线为真实值,空心圆形实线为模式匹配识别预测值,空心三角形虚线为混合系统预测值.实验结果显示:该系统的预测值和预测趋势更接近于实际值,预测结果具有一定的准确性和实用性.

图2 2012.12.06—2013.01.21 预测结果

图3 2013.01.22—2013.03.11 预测结果

图4 2013.03.12—2013.04.24 预测结果

5 结论

由实验测试结果可知:模式匹配识别和神经网络相结合在总体上比单用模式匹配识别进行预测的效果更好.该混合系统在绝大多数情况下预测值逼近于真实值,预测结果良好.但是,由于训练样本个数偏少,可能使预测效果并没有达到最佳状态.如何改善算法,使混合系统的预测能力更强,如何克服股票市场外在的人为因素和经济因素的影响,是值得我们继续思考的问题.

[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].模式识别与人工智能,2010,23(1) :103 -106.

[4] 黄华,罗四维,李爱军,等.实现人工神经网络知识增殖能力的一种方法[J].计算机研究与发展,2004,41(7) :21 -26.

[5] 李炯城,黄汉雄.一种新的快速BP 神经网络算法QLMBP[J].华南理工大学学报:自然科学版,2006,34(6) :49 -54.

猜你喜欢
模式匹配隐层权值
基于RTD可编程逻辑门的n变量函数实现算法
一种融合时间权值和用户行为序列的电影推荐模型
CONTENTS
基于BP神经网络学习算法的图像压缩技术研究
基于模式匹配的计算机网络入侵防御系统
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
具有间隙约束的模式匹配的研究进展
OIP-IOS运作与定价模式匹配的因素、机理、机制问题
代价敏感正则化有限记忆多隐层在线序列极限学习机及图像识别应用
基于权值动量的RBM加速学习算法研究