基于BP网络的股票数据预测模型

合集下载

基于BP神经网络的股市预测模型

基于BP神经网络的股市预测模型
基于
!" 神 经 网 络 的 股 市 预 测 模 型
高琴 !!谈玲
"ห้องสมุดไป่ตู้
% !!山东工商学院中加学院 "山东 烟台 " $’ ##( #"! 南京信息工程大学信息与通信系 "江苏 南京 "!# ### & 摘要 "介绍了神经网络的 基本概念 "建立 ) * 神经网络模型 "以某个股实际收盘 价为原始数据样本 " 对网络 进行训练后 " 对股票价格 进行了短期预测 " 并计算出预测值和实际值的误差 $ 通过实验发现该模型收敛速度快 "预测精度高 $ 关键词 ")* 神经网络# 预测 #误差 中国分类号 "% $!&’ 文献标识 "( 文章编号 "!))*+’),,-"))./)"+!)0",+)’ + ,- ./0 !12,3 4/05" 678/09%7 909: 9 ;/58<= ,>> ?/<: 2<@80A?A5B 7A??<5<1 C890:A05 D0EF/FGF< AH )GE/ 0<EE 90: 2<@80A?A5B1I 90F9/ "$ ’## (17 8/09J (C< 4:964D28/E 9=F/@?< /0F=A:G@<: F8< 0<=K< 0<FLA=M N9E/@ @A0@<>F1 <EF9N ?/E8<E F8< ) * 0<=K < 0<FLA=M OA:<?1 F9M <E EAO< EFA@M 9@FG9? @?AE/05 >=/@< 9E F8< >=/O9=B :9F9 E9O>?<1 @9==/ <E A0 F8< F=9/0/05 9HF<= F8< 0<FL A=M1 89E @9==/<: A0 F8< E8A=F%F<=O HA=<@9EF FA F8< EFA@M > =/@<1 90: @9?@G?9F<E F8< HA=<@9EF K9?G< 90: F8< 9@FG9? K9?G< <==A=P 28=AG58 F8< <Q ><=/O<0F : /E@AK<=<: F8/E OA:<? @A0K<=5<0@< =9F< R G/ @M 1 8/58P E2F B5:=<D) * 0<=K < 0<FL A=M #SA=<@9EF #T==A= F8< HA=<@9EF > =<@/ E/ A0 /E

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

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

基于BP神经网络的股票趋势预测研究股票市场对于很多人来说,都是一个神秘而又令人敬畏的存在。

而要在股票市场中获得收益,除了对经济、金融等方面有足够的了解外,还需要了解股票的走势以及对其进行预测。

而在这个过程中,BP神经网络被广泛应用于股票趋势预测研究中。

BP神经网络可以解决的问题BP神经网络是一种广泛运用于各种应用中的人工神经网络,其中BP代表的是反向传播。

在进行股票趋势预测时,BP神经网络主要可以解决以下问题:第一,BP神经网络可以通过学习历史数据,自动地建立股票的预测模型。

因为股票市场的变化非常复杂,但是通过历史数据进行分析,就可以找到某种规律性,从而建立预测模型。

第二,BP神经网络可以处理大量非线性数据。

股票市场中的变化是非线性的,无法通过简单的线性模型进行预测。

而BP神经网络可以自动将非线性关系进行学习和处理,从而实现更好的预测效果。

第三,BP神经网络还可以进行多因素分析,将多个因素进行综合,从而建立更加精准的预测模型。

股票市场的变化不仅仅受到一个因素的影响,而是受到多个因素的影响。

在使用BP神经网络进行预测时,可以将多个因素进行综合分析,并得出更加合理的预测结果。

如何使用BP神经网络进行股票趋势预测在使用BP神经网络进行股票趋势预测时,需要进行以下步骤:第一,准备数据。

需要收集大量的历史数据,包括股票的交易量、收盘价、成交量等。

这些数据需要进行预处理和特征提取,以便用于BP神经网络的学习。

第二,构建神经网络。

需要根据实际情况和需要,构建合适的BP神经网络模型。

模型的深度、层数、激活函数等都需要进行合理的选择。

第三,进行训练。

使用历史数据对BP神经网络进行训练,并进行不断的优化和调整。

在训练过程中,需要设置好学习率、迭代次数等参数,并对网络的权重和偏置等进行调整。

第四,进行预测。

训练好的BP神经网络可以用于预测未来的股票趋势。

在进行预测时,需要对输入数据进行编码,并进行前向传播,从而得到预测结果。

基于神经网络的股票预测模型

基于神经网络的股票预测模型

基于神经网络的股票预测模型一、前言股票市场变化无常,预测股票价格走势一直是金融领域的一个重要研究方向。

以往的股票预测模型主要采用统计学方法,如ARMA、ARIMA、GARCH等,它们在一定程度上可以解决预测问题,但是难以处理非线性、非平稳的时间序列数据。

近年来,神经网络模型逐渐成为处理时间序列数据的主流方法,它可以更好地对于数据进行拟合,提升预测效果。

二、神经网络模型神经网络是一种模仿人脑结构和功能的数学模型,模拟了生物神经元相互连接的过程。

神经网络模型输入层接收股票相关数据,隐层通过对数据的特征提取和转换,输出层得到对应的股票价格预测结果。

目前神经网络模型用于股票预测的较为常用的有BP神经网络和RNN神经网络。

1. BP神经网络BP神经网络是一种前向反馈神经网络,它的网络结构包含一个输入层、若干个隐层和一个输出层。

该神经网络通过反向传播算法来优化神经网络权值,不断减小预测误差。

BP神经网络适合处理线性可分问题,但是该模型不能处理序列数据。

2. RNN神经网络RNN神经网络相比于BP神经网络,具有更加强大的处理序列数据的能力。

与BP神经网络仅能处理静态数据不同,RNN 神经网络可以将过去时刻的输出作为当前时刻的输入,从而可以更好地捕捉时序结构。

但是,RNN神经网络存在梯度消失和梯度爆炸的问题,限制了其应用范围。

为了解决这个问题,LSTM网络和GRU网络进行了提出和改进。

三、利用神经网络预测股票价格神经网络模型可以提取输入数据的非线性特征,并输出对应的股票价格预测结果,其预测效果受到多种因素的影响。

以下是基于神经网络的股票预测模型应用的必要步骤。

1. 数据预处理数据预处理是整个预测模型的基础,可应用不同的数据处理技术提升预测的可靠性。

首先要将所采集到的数据集按照时间顺序进行排序,并确保数据没有误差。

其次,需要对数据进行缩放,通常采用Min-Max方法将数据归一化到0-1之间。

正常情况下,数据归一化后更有助于提高预测精度,尤其是对于采集到的数据量范围较大的数据集。

运用贝叶斯网络预测股票价格

运用贝叶斯网络预测股票价格

运用贝叶斯网络预测股票价格随着社会的发展和科技的不断进步,越来越多的人开始投资股票,希望通过股票赚取一笔可观的利润。

然而,股市的波动和股票价格的不稳定使得投资变得不可控,让很多投资者感到不安和无助。

贝叶斯网络作为一种基于概率统计的预测方法,可以帮助投资者更好地预测和掌握股票价格的趋势,从而制定更合理的投资策略。

一、贝叶斯网络的基本概念贝叶斯网络是一种基于贝叶斯定理的概率图模型,用于表示变量之间的依赖关系。

在贝叶斯网络中,节点代表变量,边表示变量之间的依赖关系。

贝叶斯网络的核心思想是通过观察某些节点的取值来预测其他节点的取值,从而对整个网络进行预测。

贝叶斯网络的训练过程主要包括两个步骤,即结构学习和参数学习。

结构学习是指确定网络中各个变量之间的依赖关系,通常使用启发式算法或贪心算法进行求解。

参数学习是指确定网络中每个节点的条件概率分布,通常使用最大似然估计或贝叶斯估计进行求解。

二、贝叶斯网络预测股票价格在贝叶斯网络的预测中,股票价格可以作为一个节点,其他一些与股票价格相关的因素,如公司财报、宏观经济指标等,可以作为其他节点。

通过搜集大量的数据,建立数据集,训练贝叶斯网络,可以预测股票价格的走势。

具体地说,通过贝叶斯网络模型,我们可以将股票价格和其他因素进行建模。

在训练过程中,我们需要找到与股票价格密切相关的节点,并确定它们之间的依赖关系。

例如,公司财报的变化可以对股票价格产生影响,因此,股票价格和公司财报之间建立依赖关系。

此外,宏观经济指标和政策等因素也会对股票价格产生影响,我们可以将它们与股票价格建立相关的节点。

在完成贝叶斯网络的建模后,我们可以用该模型来预测股票价格的趋势。

具体地说,我们观察与股票价格相关的节点的取值,通过贝叶斯网络模型,可以预测股票价格的变化趋势。

三、贝叶斯网络预测股票价格的局限性贝叶斯网络虽然是一种非常有用的概率预测方法,但是它也存在一定的局限性。

首先,贝叶斯网络的建模需要大量的数据,而这些数据在现实中并不容易获取。

股票价格走势的预测模型

股票价格走势的预测模型

股票价格走势的预测模型伴随着不断发展的经济和市场,股票价格作为最重要的市场指标之一,具有很高的关注度。

在如此高度的关注下,通过建立股票价格走势的预测模型,可以帮助投资者更好地理解市场趋势,做出更为准确的决策。

一、股票走势的预测模型概述股票价格的走势模型是通过分析历史股票价格数据和市场影响因素,并运用数学、统计学等方法,构建一套预测模型。

目前,股票价格预测模型主要分为两类:基于统计学的时间序列模型和基于人工智能的机器学习模型。

基于统计学的时间序列模型是根据历史价格数据,利用时间序列分析统计模型对未来股票价格进行预测。

这种模型适用于时间序列数据经过平稳处理的情况,例如通过差分、对数化处理等方式,使得数据的平均数、方差和自相关系数等都不会随时间发生变化。

常见的时间序列模型有ARMA、ARIMA、GARCH等。

基于人工智能的机器学习模型则是使用数据挖掘和算法来构建模型,并利用大量数据进行训练。

这种模型适用于处理非平稳性数据,并能识别它们的复杂关系。

常见的机器学习模型有神经网络、支持向量机、决策树等。

二、基于时间序列的股票价格预测模型1. ARMA模型ARMA是一种常用的时间序列模型。

其中,AR(Auto-Regression)表示自回归模型,MA(Moving Average)表示滑动平均模型。

ARMA模型将这两个模型结合起来,可以更好地描述时间序列数据的随机波动和趋势。

ARMA模型通常应用于平稳时间序列数据的预测。

2. ARIMA模型ARIMA模型是建立在ARMA模型基础之上的,可以用于非平稳数据的预测。

ARIMA模型中的I表示差分(difference),即将非平稳的时间序列数据转换为平稳的数据序列。

ARIMA模型是ARMA模型的扩展,它考虑了时间序列中的季节性因素和趋势项,例如季节性变化、长期趋势等。

3. GARCH模型GARCH模型是广义自回归条件异方差模型,用于描述时间序列数据的自回归、滞后和波动性。

基于BP模型创业板指数预测研究

基于BP模型创业板指数预测研究

基于BP模型创业板指数预测研究【摘要】本研究旨在探讨基于BP模型的创业板指数预测方法,并通过实证分析验证其效果。

首先分析了BP模型的原理及在股市预测中的应用,然后对创业板指数的特点进行了深入分析。

接着提出了基于BP模型的创业板指数预测方法,并进行了实证分析。

研究发现,利用BP模型可以有效预测创业板指数的走势。

在结论部分总结了BP模型在创业板指数预测中的效果,并展望了未来的研究方向。

通过本研究,可以为投资者提供更科学的决策依据,为股市预测提供新的思路和方法。

【关键词】创业板指数,BP模型,预测研究,股市,特点分析,预测方法,实证分析,效果评估,研究展望1. 引言1.1 研究背景:随着我国经济的快速发展和股市的日益成熟,投资者对股市走势的预测需求也日益增加。

由于股市受多种因素影响,如政策、经济、外部市场等,预测股市走势一直是一个复杂而困难的问题。

在这种情况下,利用数学模型进行股市预测成为一种重要的研究方向。

BP神经网络模型是一种常用的非线性预测模型,其具有强大的拟合能力和逼近能力,适用于复杂的非线性系统的预测。

在股市预测中,BP模型已经得到了广泛的应用,取得了一定的成果。

针对创业板指数的预测研究相对较少,尤其是基于BP模型的预测方法还有待深入探讨。

本研究旨在通过对BP模型在股市预测中的应用以及创业板指数的特点分析,构建基于BP模型的创业板指数预测方法,从而提高创业板指数的预测准确性,为投资者提供参考依据。

通过实证分析,验证BP 模型在创业板指数预测中的效果,为未来预测研究提供基础和借鉴。

1.2 研究意义创业板指数作为中国股市中规模较小、成长性强的板块之一,其走势波动较大,对于研究者来说具有更大的挑战性。

基于BP模型的创业板指数预测研究具有重要的理论和实际意义。

通过对创业板指数走势的准确预测,能够为投资者提供更科学的投资建议,为政府决策者提供更精准的经济政策支持,有助于提高股市的稳定性和效益,推动股市的健康发展。

基于BP神经网络的股票价格预测模型

基于BP神经网络的股票价格预测模型

基于BP神经网络的股票价格预测模型股票市场是一个高度波动的市场,股票价格每天都发生着变化,投资者需要在这个市场中赚取利润,但是要预测股票价格的变化是非常困难的。

传统的基本面分析和技术分析方法虽然可以对市场产生一定的影响,但是对于股票价格预测的准确性并不高。

近年来,随着神经网络技术的发展,越来越多的学者开始利用神经网络模型来进行股票价格预测。

BP神经网络作为一种最为基础的神经网络模型在股票价格预测中得到了广泛的应用。

本文将基于BP神经网络模型,探讨其在股票价格预测中的应用和优缺点。

一、BP神经网络模型概述BP神经网络模型是一种前向反馈的多层神经网络模型,由输入层、隐层和输出层组成。

输入层接收外部输入数据,隐层对输入值进行一定的特征提取和转换后输出到输出层,输出层则给出最终结果。

在训练过程中,BP神经网络利用反向传播算法,不断调整网络的权重和阈值,使得网络的输出结果与实际结果尽可能的接近。

二、BP神经网络在股票价格预测中的优缺点1.优点(1)非线性映射能力:BP神经网络模型能够非线性地拟合股票价格的变化趋势,能够更好的适应复杂和非线性的市场环境。

(2)自适应性:神经网络模型能够自动地对权重和阈值进行调整,对于不同的市场环境和数据情况都能够有一定的适应性。

(3)数据处理能力:神经网络模型具有较好的数据处理能力,能够识别并利用大量的数据和变量进行预测,这为股票价格预测提供了很大的便利。

2.缺点(1)过拟合问题:当神经网络模型的训练数据过多或者网络结构过于复杂时,容易出现过拟合问题,导致模型的泛化能力下降。

(2)训练时间长:传统的BP神经网络需要进行大量的迭代训练,对计算机资源和时间的要求较高。

(3)参数选择困难:BP神经网络的训练结果受到很多参数的影响,需要进行不断的试错才能得到最优的参数选择,影响模型的实用性。

三、BP神经网络模型的应用案例1.利用BP神经网络预测股票趋势李果等人利用BP神经网络,以2014年沪深300个股为样本,建立了股票价格预测模型,结果显示BP神经网络具有较好的精度和稳定性。

基于BP神经网络的预测算法在时间序列分析中的应用

基于BP神经网络的预测算法在时间序列分析中的应用

基于BP神经网络的预测算法在时间序列分析中的应用基于BP(Back Propagation)神经网络的预测算法在时间序列分析中具有广泛的应用。

时间序列分析是一种研究时间上的观测值如何随时间变化而变化的特定技术。

通过对过去的时间序列数据进行分析,可以预测未来的趋势和模式。

BP神经网络是一种机器学习算法,可以通过训练将输入和输出之间的关系学习出来,从而可以用于时间序列预测。

BP神经网络的预测算法在时间序列分析中的应用主要有以下几个方面:1.股票市场预测:BP神经网络可以通过学习历史的股票市场数据,来预测未来股票价格的走势。

通过输入历史的股票价格、成交量等指标,可以训练BP神经网络模型,并使用该模型来预测未来的股票价格。

2.经济数据预测:BP神经网络可以通过学习历史的经济数据,来预测未来的经济趋势。

例如,可以使用过去的GDP、消费指数等数据作为输入,来预测未来的经济增长率或通货膨胀率。

3.交通流量预测:BP神经网络可以通过学习历史的交通流量数据,来预测未来的交通状况。

通过输入历史的交通流量、天气状况等数据,可以训练BP神经网络模型,并使用该模型来预测未来的交通流量,从而可以提前采取交通管理措施。

4.气象预测:BP神经网络可以通过学习历史的天气数据,来预测未来的气象变化。

例如,可以使用过去的温度、湿度、风向等数据作为输入,来预测未来的天气情况,从而为农业、旅游等行业提供预测参考。

5.能源需求预测:BP神经网络可以通过学习历史的能源需求数据,来预测未来的能源需求量。

通过输入历史的经济发展状况、人口增长等数据,可以训练BP神经网络模型,并使用该模型来预测未来的能源需求,从而指导能源生产和供应。

总体而言,基于BP神经网络的预测算法在时间序列分析中具有较强的预测能力。

通过学习历史的数据,BP神经网络可以发现数据中的规律和模式,并将其用于预测未来的趋势和变化。

然而,需要注意的是,BP 神经网络也有一些局限性,例如对于较大规模的数据集,训练时间可能较长。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于BP网络的股票数据预测模型姓名:江政班级:控制2015级学号: 20150280811000152016 年6月 26日需求分析和网络结构设计根据我们对自然神经系统的构造和机理的认识,神经系统是由大量的神经细胞(神经元)构成的复杂的网络,人们对这一网络建立一定的数学模型和算法,设法使它能够实现诸如基于数据的模式识别,函数映射等带有“智能”的功能,这种网络就是神经网络。

其中,BP (Back Propagation )神经网络是1986年由Rumelhart 和McCelland 为首的科学家小组提出,是一种按误差反向传播算法训练的多层前馈网络。

BP 网络能学习和存贮大量的输入—输出模式映射关系,而其他神经网络具有重要作用。

针对150组股票数据进行拟合(详细数据请见《附件1》),选取其中的开盘、最高、最低、收盘和成交次数五组数据,用当日的这五组数据来预测次日的收盘数据,从而等效建立一个股票数据预测模型。

采用包括输入层、隐含层和输出层的三层BP 网络结构,如图1所示,输入层包含五个神经元,隐含层包含三个神经元,输出层为一个神经元。

其中,隐含层神经元的激活函数采用非对称型Sigmoid 函数,函数表达式为:))exp(1/(1)(x x f -+=,输出层神经元的激活函数采用线性函数,表达式为:x x f =)(。

将150组数据分为三等份,其中两份作为训练样本,用来对网络进行训练学习;另外一份作为测试样本,用来检验所训练出的网络的泛化能力。

采用BP 算法对隐含层和输出层权值进行修正,以达到计算输出和实际样本输出相差最小,最终实现较精确预测的目的。

图1 预测模型的网络结构MATLAB源程序(版本不限)clear allclcclf%采用三层BP网络结构%输入层神经元数为5,隐含层神经元数为3,输出层神经元数为1%最大迭代次数maxcishu=5000;%e为计算输出和样本实际输出差%在内存中开辟maxcishu个存储空间e=zeros(maxcishu,1);% 输入数据维度5,输入节点数5% maxp当日最高价序列% minp当日最低价序列% sp当日开盘价% ep当日收盘价% tnum当日成交量% 调用数据%shuju=xlsread('dm.xlsx', 'B1:K151');shuju=importdata('dm.xlsx');sp=shuju.data(:,1)';maxp=shuju.data(:,2)';minp=shuju.data(:,3)';tnum=shuju.data(:,10)';ep=shuju.data(:,4)';%将数据集按照2:1分为训练样本集,和测试样本集jishu=length(ep);jishu=ceil(jishu/3*2) ;%测试样本集是2/3处到最后一个spt=sp(jishu+1:end);maxpt=maxp(jishu+1:end);minpt=minp(jishu+1:end);tnumt=tnum(jishu+1:end);ept=ep(jishu+1:end);%训练样本集sp=sp(1:jishu);maxp=maxp(1:jishu);minp=minp(1:jishu);tnum=tnum(1:jishu);ep=ep(1:jishu);%记录下每组的最大值最小值,为训练样本集的归一化准备maxp_max=max(maxp);maxp_min=min(maxp);minp_max=max(minp);minp_min=min(minp);ep_max=max(ep);ep_min=min(ep);sp_max=max(sp);sp_min=min(sp);tnum_max=max(tnum);tnum_min=min(tnum);% 目标数据为次日的收盘价,相当于把当日收盘价时间序列向前挪动一个单位goalp=ep(2:jishu);%数据归一化,将所有数据归一化到(0 1)guiyi=@(A)((A-min(A))/(max(A)-min(A)));maxp=guiyi(maxp);minp=guiyi(minp);sp=guiyi(sp);ep=guiyi(ep);tnum=guiyi(tnum);% 后面的目标数据goalp个数是ep向前移动一位得到,所以最后一组的目标数据缺失% 所以,要把除了目标数据goalp以外的所有数据序列删除最后一个maxp=maxp(1:jishu-1);minp=minp(1:jishu-1);sp=sp(1:jishu-1);ep=ep(1:jishu-1);tnum=tnum(1:jishu-1);%需要循环学习次数loopn,即训练样本的个数loopn=length(maxp);%为了方便表示将5个行向量放到一个5*loopn的矩阵中simp中,每一列是一个样本向量simp=[maxp;minp;sp;ep;tnum];%隐含层节点n%根据相关资料,隐含层节点数比输入节点数少,一般取1/2输入节点数bn=3;%隐含层激活函数为S型函数jihuo=@(x)(1/(1+exp(-x)));%bx用来存放隐含层每个节点的输出%bxe用来保存bx经过S函数处理的值,即输出层的输入bx=zeros(bn,1);bxe=zeros(bn,1);%权值学习率uu=0.02;%W1(m,n)表示隐含层第m个神经元节点的第n个输入数值的权重,%即,每一行对应一个节点%所以输入层到隐含层的权值W1构成一个bn*5的矩阵,初值随机生成W1=rand(bn,5);%W2(m)表示输出节点第m个输入的初始权值,采用随机生成W2=rand(1,bn);%loopn个训练样本,对应loopn个输出out=zeros(loopn,1);for k=1:1:maxcishu%训练开始,i表示为本次输入的是第i个样本向量for i=1:1:loopn%求中层每个节点bx(n)的输出,系数对应的是W1的第n行for j=1:1:bnbx(j)=W1(j,:)*simp(:,i);bxe(j)=jihuo(bx(j));end%求输出out(i)=W2*bxe;%误差反向传播过程%计算输出节点的输入权值修正量,结果放在行向量AW2中%输出神经元激活函数 f(x)=x%为了书写方便,将deta用A代替AW2=zeros(1,bn);AW2=u*(out(i)-goalp(i))*bxe';%计算隐含层节点的输入权值修正量,结果放在行向量AW1中,需要对隐含层节点逐个处理AW1=zeros(bn,5);for j=1:1:bnAW1(j,:)=u*(out(i)-goalp(i))*W2(j)*bxe(j)*(1-bxe(j))*simp(:,i)';endW1=W1-AW1;W2=W2-AW2;end%计算样本偏差e(k)=sum((out-goalp').^2)/2/loopn;%误差设定if e(k)<=0.01disp('迭代次数')disp(k)disp('训练样本集误差')disp(e(k))breakendend%显示训练好的权值W1W2%绘制误差收敛曲线,直观展示收敛过程figure(1)hold one=e(1:k);plot(e)title('训练样本集误差曲线')% 计算输出和实际输出对比图figure(2)plot(out,'rp')hold onplot(goalp,'bo')title('训练样本集计算输出和实际输出对比')%学习训练过程结束%进行测试样本阶段,变量用末尾的t区分训练样本maxpt=(maxpt-maxp_min)/(maxp_max-maxp_min);minpt=(minpt-minp_min)/(minp_max-minp_min);spt=(spt-sp_min)/(sp_max-sp_min);eptduibi=ept(2:end);ept=(ept-ep_min)/(ep_max-ep_min);tnumt=(tnumt-tnum_min)/(tnum_max-tnum_min);% 同样,将多维数据放入一个矩阵中,便于处理simpt=[maxpt;minpt;spt;ept;tnumt];%因为是用当前的数据预测下一天的,所以检验样本第一天的收盘价和预测的最后一天的收盘价因为没有比对值而舍弃for i=1:1:length(maxpt)-1for j=1:1:bnbx(j)=W1(j,:)*simpt(:,i);bxe(j)=jihuo(bx(j));end%输出预测序列outt(i)=W2*bxe;end%预测输出和实际对比散点图figure(3)hold onplot(outt,'rp')plot(eptduibi,'bo')title('测试样本集预测输出和实际对比')%计算全局误差disp('测试样本集误差')disp(1/length(eptduibi)*0.5*sum((eptduibi-outt).^2))结果及分析图2为MATLAB命令窗口显示内容,图3为训练样本集误差曲线图,图4为训练样本集计算输出和实际输出对比图,图5为测试样本集预测数据与实际数据对比图。

图2 MATLAB命令窗口显示内容训练样本集误差曲线图3 训练样本集误差曲线训练样本集计算输出和实际输出对比图4 训练样本集计算输出和实际输出对比图测试样本集预测数据和实际对比图5 测试样本集预测数据与实际数据对比由图2和图3可看出,刚开始的时候计算输出和实际输出误差比较大,经迭代259次后误差收敛到设定值0.01,且最后一组数据误差最小。

训练好的网络隐含层和输出层权值矩阵分别为 W1和W2,向网络输入测试样本集后误差为0.0104,比训练样本集误差稍大。

由图4可看出,对于100组训练样本来说,计算输出和实际样本输出整体拟合的比较好,虽然中间有几组数据发生了大的波动,但算法及时调整权值,可以看到最后几组样本数据拟合的相对要好,说明误差最终收敛。

由图5可看出,输入50组测试样本得到的计算输出和实际样本输出误差比训练样本集要大,说明所设计的网络泛化能力不是很好。

经分析,一是由于训练样本太少,二是预测模型过于简单,收盘价格还和其他数据有关。

结论本次作业采用BP网络建立对股票数据的预测模型,即利用前一天的相关数据来预测后一天的收盘价格。

相关文档
最新文档