中国科技论文在线
http://www.paper.edu.cn
基于 BP_Adaboost 的股票指数预测模型
梁德阳,牛明飞**
(兰州大学数学统计学院,兰州 730000)
5 摘要:本文首先对证券市场预测方面的研究进行回顾,并分析了近年来使用较多的神经网络
模型的优缺点。其次,本文引入 Adaboost 算法,提出了能够将任意弱学习器进行组合改进
为强学习器的 BP_Adaboost 方法。然后本文选取了沪深 300 指数数据进行模型实证,结果显
示,BP_Adaboost 模型的股指预测精度较单个 BP 神经网络明显提高。
关键词:BP 神经网络;Adaboost 算法;股票指数
中图分类号:F224.9
10
Stock Composite Index Prediction Model Based on
15
20
BP_Adaboost
Liang Deyang, Niu Mingfei
(Mathematics and Statistics School,Lanzhou University,Lanzhou 730000)
Abstract: Firstly, we carry out a review of the study of the stock market forecasting and analysis
of the advantages and disadvantages of neural network model. Secondly, this paper introduces
Adaboost algorithm, and proposes BP_Adaboost model which can be improve any weak learners
to strong ones Then this article selects the CSI 300 Index historical data to empirical analysis,.The
results show the prediction accuracy of BP_Adaboost model improved significantly compared to a
single model of BP neural network.
Key words: BP Neural Network;Adaboost Algorithm;Stock Composte Index
25
0 引言
股票市场是现代金融市场的重要组成部分,是一国国民经济的晴雨表。股票市场的准确
预测, 对政府而言, 可以监测和引导股票市场的平稳运行,从而促进实体经济的健康;对投
资者而言,可以减少股票市场中盲目投资的现象,减少资金损失,然而股票价格指数的运行态
势受宏观经济运行、投资者心理、公司经营情况与财务状况等多种因素影响,具有高度的非
线性、波动大、高噪音的特点。因此通过构建有效的分析模型来预测股票价格指数走势是一
项很具挑战性且很有意义的工作。
国内外学者在股票市场的预测问题上提出了很多方法。早期研究者大多基于线性假设采
用ARIMA 模型、指数平滑模型等统计方法进行预测。近年来随着人工智能理论的发展,以非
线性假设为基础的人工神经网络方法更显优越性,被广泛应用于股票市场预测。Kimoto[1]
等运用人工神经网络方法在东京交易所进行择时投资, 最后结果显示采用该方法可以取得
较好的收益。Yoon[2]等通过构建一种四层神经网络方法预测美国股市上股票变化趋势, 并与
多元离散分析方法进行比较,结果显示,四层神经网络方法有着更好的结果。Donaldson[3]
等采用带有非线性组合的多层次正反馈网络对S&P500 股票价格指数进行预测,解释了不同
时间节点之间的交叉影响, 而且相对于传统的方法而言效果更好。吴微[4]等对BP 神经网络
预测上证综指的涨跌情况进行了初步分析, 认为该模型对于中国股市的预测是有效的。李春
伟[5]等基于BP 神经网络对股票市场进行建模, 对股票中期价格进行了预测,采用模糊曲线分
析法对输入变量进行筛选来提高了预测精度。
神经网络模型具有较强的自学习、自适应、自组织能力和较好的非线性映射能力等优点,
但是存在局部最小解及过学习等问题,要提高神经网络模型的效果,就必须克服它的弱点。
因此本文结合Adaboost算法,构建了 BP_Adaboost 模型, 利用该模型对沪深 300 指数进行
作者简介:梁德阳(1987-),男,硕士研究生,主要研究方向:统计与数据挖掘
通信联系人:牛明飞(1964-),男,副教授,主要研究方向:金融统计. E-mail: nmf@lzu.edu.cn
30
35
40
45
- 1 -
中国科技论文在线
验证分析。并说明了新模型的有效性。
1 方法介绍
1.1 BP 神经网络
http://www.paper.edu.cn
BP( Back Propagation)神经网络是目前人工神经网络模式中运用较为广泛的模型, 它
是一种多层前馈型神经网络。典型的BP神经网络由输入层、隐含层、输出层三个要素构成。
当信号正向传播时, 信号通过输入层输入,经隐含层进行处理, 直至输出层。当输出层与期
望输出存在误差时, 误差将进入反向传播过程, 利用输出层误差估计输出层的直接前导层的
误差, 再用这个误差去估计更前一层的误差, 一层一层的反传直到输入层, 经过反复调整网
络的权值与阈值, 最后使得神经网络输出的误差减少到可接受的程度。BP神经网络的结构如
图1 所示。
50
55
图 1 BP 神经网络结构图
图1中
即为BP 神经网络的输入向量,
是隐含层的输出向量,
是输出层的输出向量, 和 是BP神经网络的网络权值。此时节点的输
60
出模型为:
(1)
(2)
式(1)是隐含层节点的模型,其中 为激活函数,一般取为输出值在 (0,1) 之间的 Sigmod 函
数:
。式(2)是输出层节点的模型,其中 为激活函数,通常为线性函数。
65
70
观察图1 可以发现, BP 神经网络的网络输入值和输出值可看作一个非线性函数的自变
量和因变量,BP 神经网络模型即为一个非线性映射模型。然而由于采用非线性梯度算法进
行学习, 将产生局部极小值问题。当使用不同的权值 和 时, 算法将会收敛于不同的
局部最小点,即对初始权值很敏感。BP 神经网络是基于经验风险最小化原则的, 满足对已
有训练数据的最佳拟合, 在理论上可以通过增加算法的规模与复杂度使得经验风险不断降
低直至为0, 然而这样会导致实际风险增加, 这就是学习算法的过拟合问题。正是由于BP 神
经网络存在局部最小值、过度拟合等问题, 因此该方法可能导致预测结果存在较大程度的失
真
1.2 Adaboost 算法
Adaboost 算法由 Boosting 算法改进而成。它的思想源于 Valiant[6]提出的 PAC 学习模
- 2 -
),...,(11Nxxx),...,(21Nyyy),...,(31Nzzzihwhjw111,...,2,1),(1NixwfyNiiihh212,...,2,1),(2NhywfzNhhhjj1f)exp(111xf2fihwhjw
中国科技论文在线
http://www.paper.edu.cn
75
型,最初用于分类问题,现在已推广到分类和预测的诸多领域。Boosting 算法发展过程中,
有学者指出,无固定错判率的弱分类算法并不能使加权后得到的分类算法性能更优,这就限
制了 Boosting 算法的应用。而在 1999 年,Freund 和 Schapire[7]提出 Adaboost (Adaptive Boosting)
算法,解决了过去 Boosting 算法面临的诸多难题,也使算法得到更广泛的应用。
Adaboost 算法的核心思想是将若干个识别率不高的弱分类器进行组合提升得到一个联
合分类器[8-9]。联合分类器的分类性能较弱分类器得到提高,这样就提高了弱分类算法的性
80
能。首先对给出的弱学习算法和样本空间(X,Y),初始条件下样本为等概率分布,即 n 个样本
的训练集每个样本的概率均为 1/n。使用弱分类器时会出现错分样本,则一次迭代后错分样
本的分布概率被提高,使错分样本在训练集中有较大权重,这样下次迭代的分类器更关注这
些错分样本,提高分类效率。经过反复迭代后得到分类器序列
,每个分类器都有不
85
同的预测效果,然后对每个分类器根据其效果赋予不同的权重,效果越好对应的权重越大,
k 次迭代后的最终预测器 F 即为
的加权组合。最终分类器 F 就是集成的分类器,它
的预测效果可以得到较大提升。
Adaboost 算法具有快速、算法简单、易于编程等优点,不需要弱分类器的先验知识,
训练错误率上界随着迭代次数增加而不断下降,同时不会出现“过学习”的现象。它的出现
90
是传统学习系统设计思想的突破。人们可以集中去寻找仅比随机预测稍好的弱学习算法,而
这相对于寻找一个在全样本空间都精确地学习算法是很容易办到的。
1.3 BP_Adaboost 强预测器构建
经过不断发展,Adaboost 算法现在已经可用于构建强预测器[10-11]。与分类时不同的是
在强预测器中增加预测误差超过阈值的样本权重。BP_Adaboost 强预测器算法的步骤如下:
95
(1) 数据选择和网络初始化。样本分布权重初始化为
(2) 弱预测器预测。用训练数据进行 BP 神经网络训练,得到训练数据预测
及其预
测误差和
if
其中 y 为期望输出,c 为阈值。
(3) 计算预测序列权重
(4) 根据预测序列权重调整下轮训练样本的权重
100
其中 是使在权重比例不变的情况下分布权值和为 1 的归一化因子。
(5) 训练 k 次后得到 k 个弱预测器
,将它们组合成强预测器 F:
(3)
步骤(2)-(4)是反复迭代过程,单个神经网络预测效果越好权值越大。
105
2 实证分析
沪深300 指数是从沪深证券市场中选取300 只A 股作为样本编制而成的成份股票指
数,反映了中国证券市场股票价格变动的概貌和运行状况,可作为投资业绩的评价标准。它
- 3 -
kff,...,1kff,...,1niniDt,...,1,/1)()(tgittiDe)(nicytg,...,1,|)(|ttteea1ln21nixgyaBiDiDititttt,...,1)],(exp[)()(1tBktagfttt,...,1),,(ktagfaaxFkttttkttt,...,1,),()(11
中国科技论文在线
http://www.paper.edu.cn
110
的样本股覆盖了沪深市场六成左右的市值, 具有良好的市场代表性,由于沪深300 指数的诸
多良好性质, 使其成为在中国上市的第一个股指期货的标的物。
本文选取沪深300 指数2010年1月25日至2013年10月31日中880个交易日的收盘价数据
作为研究对象,其中800个数据作为训练集,80个数据作为测试集。数据来源:锐思数据库
(www.resset.cn)。本文采用滞后项预测法,将用T-1,„,T-10日的收盘价去预测T日收盘价
数据。则在本文的弱预测器BP 神经网络中,输入层的维数是10,输出层是收盘价的预测值,
维数是1。
115
在隐含层维数的确定上,本文采取经验法与试凑法结合[12],参考公式(4)并进行试错.
(4)
确定隐含层维数为4。最终弱预测器BP 神经网络的结构为10-4-1。隐含层的激活函数为
Sigmod函数,输出层的激活函数为线性函数,设定单个BP 神经网络迭代次数为50次,学习
率为0.1,目标为0.00001.
120
本文共训练产生12 个BP 神经网络弱预测器,并用这12 个弱预测器组成强预测器对测
试集进行预测。本文构建的BP_Adaboost模型在MATLAB 2010b下仿真的结果如下:
图 2 强预测器和弱预测器对测试集的预测效果图
125
图 3 强预测器与弱预测器预测绝对误差对比图
- 4 -
维数为输入、隐含、输出层nlmanlanml,,,101,log,)(2
中国科技论文在线
http://www.paper.edu.cn
在图 2 中可以看到,强预测器的预测值对实际数据的预测效果明显优于弱预测器,提高了预
测的精度与准确性。图 3 显示,强预测器的误差绝对值平均地小于弱预测器。
为更直观的表现模型的优劣,本文选用 MAE、RMSE、MAPE 等指标进行模型评估。
130
指标表达式如下
(5)
(6)
(7)
其中 , 分别为预测值和实际值,MAE、RMSE、MAPE 值较小,则模型较优。
135
表 1 强预测器与弱预测器的预测效果对比
强预测器
弱预测器
MAE
24.3345
94.9829
RMSE
31.3384
116.5873
MAPE(%)
1.05
4.07
表 1 给出了强预测器和弱预测器的预测效果。从表 1 可以看到,BP_Adaboost 模型构建的强
预测器的预测的 MAE、RMSE、MAPE 均比弱预测器的小,这说明本文构建的 BP_Adaboost
140
模型在股票指数预测上优于一般的 BP 神经网络,在股指预测上更为有效。
3 结论
股票市场指数预测研究中由于指数时间序列的非线性等特点,BP 神经网络得到广泛应
用,但是 BP 神经网络应用中出现易出现对初始值敏感、局部解、过拟合等问题。本文针对
这些问题提出了改进的 BP_Adaboost 模型,用沪深 300 指数进行验证分析,证实了本文构建
145
的组合强预测器较一般的 BP 神经网络能够有效提高预测精度。实证表明,本文提出的股指
预测模型对宏观管理者、市场投资者都有较好的参考价值。
[参考文献] (References)
[1] Kimoto T.,Asakawa K. Stock Market Prediction System with Modular Neural Networks[J]. Proceedings of the
International Joint Conference on Neural Network,1990
[2] Yoon Y,Swalves G. Predicting Stock Price Performance: A Neural Network Approach[J]. Proceedings of the
Twenty-fourth Annual Hawaii International Conference on System Science,1991
[3] Donaldson R G,Kamstra M. Neural Network Forecast Combining with Interaction Effects[J]. Journal of the
Pranklin Institute,1999,336(2):227-236
[4] 吴微、陈维强、刘波. 用 BP 神经网络预测股票市场涨跌[J]. 大连理工大学学报,2001,1:9-15
[5] 李春伟、张骏. 基于神经网络的股票中期预测[J]. 计算机工程与科学,2006,5:115-117
[6] Valiant L G. A theory of the learnable[J]. Communication of ACM,1984,27(11):1134-1142
[7] Freund Y,Schapire R,Abe N. A short introduction to boosting[J]. Journal-Japanese Society For Artificial
Intelligence,1999,14(771-780):1612
[8] 张君昌,张译. 基于改进 Adaboost 算法的人脸检测[J]. 计算机仿真,2011,7:240-244
[9] 郭红刚,方敏. AdaBoost 方法在入侵检测技术上的应用[J]. 计算机应用,2005,1:144-146
[10] 毛志忠,田慧欣,王琰. 基于 AdaBoost 混合模型的 LF 炉钢水终点温度软测量[J]. 仪器仪表学
报,2008,3:662-667
[11] 孙晓峰,何争光,高霞. 适于水质评价的 AdaBoost-NN 模型研究[J]. 环境科学与技术,2007,11:66-69+119
[12] 史峰,王小川,郁磊. MATLAB 神经网络 30 个案例分析[J]. 2010
150
155
160
165
- 5 -
niiiyynMAE11||niiiyynRMSE121)(%100|/)(|11niiiiyyynMAPEiyiy