基于PCA的BP神经网络股票预测研究

2011-01-09 03:05王建中胡红萍
关键词:权值神经网络误差

李 杰 王建中 胡红萍

(中北大学 理学院,山西 太原 030051)

基于PCA的BP神经网络股票预测研究

李 杰 王建中 胡红萍

(中北大学 理学院,山西 太原 030051)

股票市场是国民经济发展变化的“晴雨表”,股票价格的涨跌也是政治、经济、社会等诸多因素的综合反映.近几年来,神经网络取得较大发展已经成为热点研究并在各个领域中得到应用.文章基于主成分分析和BP神经网络,以中国石化100天股票历史技术指标数据作为训练样本对收盘价进行预测,20天数据进行检验,并通过图像仿真拟合来验证神经网络股票预测的可行性和准确性.

主成分分析;BP神经网络;股票技术指标;收盘价;预测

0 引言

股票是国民经济发展变化的“晴雨表”.自股票诞生以来,股市已预测成为投资者及学术研究人员研究的热点问题之一.但是,由于股票市场是一个高度复杂的非线性系统,其变化既有内在的规律性,同时也受到市场、宏观经济环境以及非经济原因等诸多因素的影响,所以一般传统的方法对于股市的预测往往难如人意.

人工神经网络(Artifical Neural Network,简称ANN)是人类对于其大脑神经网络认识理解的基础上人工构造的能够实现某种功能的神经网络.它是理论化的人脑神经网络的数学模型,是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统.它实际上是由大量简单元件相互连接而成的复杂网络,具有高度的非线性,它能进行复杂的逻辑操作和非线性关系实现的系统[1].

近年来,人工神经网络的研究取得了划时代的发展,其在模式识别和复杂系统控制等方面已经取得了巨大的成功,并开始在经济、金融等领域广泛应用.由于人工神经网络具有高度的并行性、高度的非线性全局作用、良好的容错性与联想记忆功能和十分强的自适应、自学习功能,具有可逼近任意非线性连续函数的学习能力和对杂乱信息的综合能力,因此为股票市场建模与预测提供了许多新技术和新方法,已成为目前国际上进行股票预测研究的热点.

反向传播网络(Back-Propagation Network,简称BP网络)是将W-H学习规则一般化,对非线性可微分函数进行权值训练的多层网络[1].BP网络主要用于函数逼近、模式识别、分类和数据压缩.BP网络是目前运用最广泛的神经网络,它经常使用S型的对数或正切激活函数和线性函数作为激活函数,采用BP算法训练网络.

总之,股票市场在我国的经济发展中发挥着重要的作用.股票预测的研究能够为投资者的投资提供指导.

1 BP神经网络模型

1.1 BP神经网络模型的结构

BP网络是一种多层前馈神经网络,由一个输入层、一个输出层和若干个隐含层所组成.理论和实践证明具有一个隐含层即三层的BP神经网络已经具有逼近任意非线性连续函数的能力.

图1 具有一个隐含层的BP神经网络模型结构图

1.2 BP算法

BP网络的产生归功于BP算法的获得.BP算法是由两部分组成:信息的正向传递与误差的反向传播.在正向传播过程中,输入信息从输入层经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态.如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标[1].

BP算法属于δ算法,是一种监督式的学习算法.其主要思想为:对q个输入学习样本:P1,P2,…,Pq,已知其对应的输出样本为:T1,T2,…,Tq.学习的目的是用网络的实际输出A1,A2,…,Aq与目标矢量T1,T2,…,Tq之间的误差来修正其权值,使Al,(l=1,2,…,q)与期望的Tl尽可能地接近;即:使网络输出层的误差平方和达到最小.它是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的.每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式传递到每一层的[1].

BP算法收敛速度慢,训练时间长,由于采用的是梯度下降法,所以易陷入局部极小值.

2 主成分分析简介

主成分分析(Principal Components Analysis)也称主分量分析,是由Hotelling于1933年首先提出的.主成分分析是利用降维的思想,把多指标转化为少数几个综合指标的多元统计分析方法.

假设有所考虑的问题有p个影响因素,即对应的神经网络输入层应该有p个结点,直接将这些因素作为网络的输入项,无疑会使网络过于复杂,不利于问题的分析.下面我们利用主成分分析的方法来简化输入其主要计算过程如下:首先设这p个影响因素指标为x1,x2,…,x p,再设网络有n组学习训练样本,这样得到原始数据矩阵为X

累计贡献率表明了前m个主成分包含的总信息量的份额.在实际应用中我们总选取m<p,使前m个主成分的累计贡献率达到一定的比例.这样用前m个主成分代替原来的全部变量既减少了网络输入项的个数,又包含了原来变量的绝大多数信息,是网络输入的一种有效简化[2].

3 实证分析

本文基于BP神经网络,结合遗传算法,建立含有一个隐含层的三层神经网络模型.隐含层采用正切型激活函数(tansig),输出层采用线性函数(purelin),网络训练函数采用动量法和自适应速率相结合的算法(traingdx).选取2010-08-10~2011-01-24之间的中国石化历史股票数据,前100天作为训练样本,后10天作为测试样本.因此,本文的神经网络模型输入层为6个节点,输出层为1个节点,经多次试验隐含层为9个节点最佳.

3.1 数据的预处理和后处理

为了提高神经网络的训练效率,我们需要在训练前对输入和目标数据进行必要的处理.本文利用premnmx函数对输入和目标数据进行归一化处理,使其落在[-1,1]区间,再利用postmnmx函数进行反归一化处理.

3.2 基于PCA方法的技术指标的选取

本文原始选取开盘价,最高价,最低价,MA5,PSY12,MACD12,BIAS6,ASI6,RSI12和 WR10这10个技术指标作为预输入,第二天的收盘价作为输出.然后利用SPSS软件对预输入进行主成分分析,处理结果见表1,表2.

表1 公因子方差

表2 解释的总方差

由表1,表2可知前两个主成分已经包含了总信息量的88.472%,但考虑到只有2个变量作为神经网络的输入相对较少,可能会影响网络训练的收敛和结果的拟合效果,所以选取前3个主成分即:MA5,MACD12和ASI6(总信息量的95.317%)作为实际的输入变量.

3.3 训练结果

通过BP神经网络进行训练可得出以下结果,见图1,图2,表3.

图1 BP神经网络的训练结果拟合曲线

图2 BP神经网络的训练误差曲线

表3 BP测试数据训练结果和真实值对比

4 结论

通过探讨和实践,利用主成分分析方法可以有效地简化神经网络的输入,提高网络训练的速度.由于BP神经网络本身容易陷入局部最小值和收敛速度慢的缺陷,训练误差的收敛性并不是特别的理想,再加上股票市场高度非线性和复杂性,所以预测结果不尽人意.可以尝试与遗传算法结合,选用其他改进的BP训练算法或者利用贝叶斯正则化等方法来提高BP神经网络的预测效果和泛化能力.

[1]丛 爽.面向MATLAB工具箱的神经网络理论与应用[M].北京:中国科学技术出版社,2009

[2]米 红,张文璋.实用现代统计分析方法与SPSS应用[M].北京:当代中国出版社,2000

The Research of Stock Prediction Based on PCA and BP Neural Network

Li Jie Wang Jianzhong Hu Hongping
(College of Science,North University of China,Taiyuan 030051,China)

The stock market is a"barometer"of the changes and development of national economic,the change of stock prices is also a reflection of comprehensive factors such as policics,economy economic and society.In recent years,neural network which has achieved greater development has become a hot research spot applied in various fields.In this paper,100 days’historical datas of Sinopec stock technical indicators as the training samples are used to predict the closing price and10 days’datas to test,which is based on principal component analysisand BP neural network.Finally,the feasibility and accuracy of neural network to predict the stock are verified by fitting the images.

principal component analysis;BP neural network;stock technical indicators;closing price;prediction

王映苗】

1672-2027(2011)03-0060-04

TP183

A

2011-05-10

2009年国家自然科学研究基金(60876077);2009年山西省自然科学研究基金(2009011018-3).

李 杰(1987-),男,河北阜平人,中北大学在读研究生,主要从事计算机科学中的数学问题研究.

猜你喜欢
权值神经网络误差
一种融合时间权值和用户行为序列的电影推荐模型
CONTENTS
角接触球轴承接触角误差控制
Beidou, le système de navigation par satellite compatible et interopérable
神经网络抑制无线通信干扰探究
压力容器制造误差探究
基于神经网络的中小学生情感分析
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
基于神经网络的拉矫机控制模型建立