【LSTM模型在A股交易中的应用实证分析11000字(论文)】_第1页
【LSTM模型在A股交易中的应用实证分析11000字(论文)】_第2页
【LSTM模型在A股交易中的应用实证分析11000字(论文)】_第3页
【LSTM模型在A股交易中的应用实证分析11000字(论文)】_第4页
【LSTM模型在A股交易中的应用实证分析11000字(论文)】_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LSTM模型在A股交易中的应用实证分析摘要:近年来,随着深度学习的快速发展,人工智能技术先后成功应用于语音识别、图像识别等各个领域。如何把神经网络机器学习运用于金融领域成为许多投资者的研究新课题。LSTM神经网络作为一种新型递归神经网络,其选择记忆性的特点非常适用于股票价格时间序列的预测。本文重点研究了循环神经网络(RNN)与长短期记忆神经网络(LSTM)在股票收盘价中的预测应用。分别运用两者所建立的模型对中证500、上证指数与深圳成指进行实证分析。对比两个模型的预测效果,证明了LSTM模型在股票收盘价预测方面的优越性能。关键词:股票收盘价;预测;RNN;LSTM;神经网络目录TOC\o"1-4"\h\u249181绪论 1320491.1研究背景及其意义 116281.2国内外文献综述 2135321.3研究方法 3273361.4章节安排 4262222神经网络相关概念介绍 4138702.1BP神经网络 4281682.2LSTM神经网络 8173083RNN与LSTM模型构建 14133533.1RNN模型构建 1452713.1.1RNN模型结构 1428743.1.2RNN模型参数 1453663.2LSTM模型构建 16201033.2.1LSTM模型结构 16323783.2.2LSTM模型参数 16301773.3RNN与LSTM模型评价指标 18251814RNN与LSTM的模型实证分析 19111394.1股票数据来源及处理 19205304.2RNN与LSTM模型程序实现 2076654.3RNN的模型预测结果 2232634.4LSTM的模型预测结果 24219874.5RNN与LSTM的模型预测结果对比分析 2583845总结与展望 271717参考文献 291绪论1.1研究背景及其意义股票市场是一国经济的晴雨表,有着及其重要的经济地位。我国A股市场起步较晚,经过20多年的发展,已由地方性股票市场发展成为全国性股票市场。如今,沪深股市共有4000多家上市公司,市值超过10万亿,日均成交额约6000亿。A股市场已成为中国国民经济的重要组成部分,成为中国经济运行的晴雨表。股票市场不仅可以为企业谋求发展、扩大生产规模提供资金来源,还可以为个人、机构等投资者提供投资渠道。随着我国经济的快速发展和人们理财意识的提高,越来越多的人愿意将闲置资金投入股市牟利。该股的涨跌受公司业务发展、国家政策扶持、行业前景等诸多复杂因素的影响。对于投资者来说,在承担一定风险的情况下,如何在股市中获得高回报。因此,如何预测股票收盘价是投资者面临的一个难题。随着人工智能技术和深度学习的发展,近年来出现了卷积神经网络(CNN)、循环神经网络(RNN)和深度神经网络(DNN)。他们在图像识别、人脸检测与识别、语音识别、目标捕获、机器翻译等领域都取得了巨大的成功。越来越多的学者将神经网络模型应用于未来股票收盘价的预测,并取得了丰富的研究成果。研究表明,与ARIMA等经典计量经济模型相比,神经网络在股票收盘价预测中能取得更好的预测效果。然而,考虑到股票市场的复杂性和市场价格的波动性,仅仅依靠传统的神经网络和时间序列模型来预测股票价格的未来走势是不够的。而长短期记忆网络(LSTM)作为循环神经网络(RNN)的变体之一,专门用于处理时序数据,能够帮助我们有效的预测未来股票收盘价趋势。1.2国内外文献综述股票市场中,大量的个人投资者以及专业金融机构投资者都热衷于对股票价格未来趋势进行研究以谋取高额的收益。目前,预测股票未来价格趋势的方法可分为基于基本面的定性分析方法与基于数据的定量分析方法。基于基本面的定性分析方法需要专业的研究人员对我国经济政策、公司盈利能力、成长能力等多方面宏观经济因素进行长时间观察研究且有很强的主观性。故大多投资者主要是运用基于数据的定量分析方法对股票价格未来趋势进行预测,比如传统的技术面分析与近年来发展迅速的深度学习方法。基于数据的定量分析方法大致分为两类:(1)数理统计方法中的时间序列分析法:在对股票未来收盘格趋势进行预测的数理统计方法中,运用最广泛的方法是时间序列分析法。时间序列方法起源于20世纪,是将统计方法与经济知识相结合,以此来预测股票未来收盘价趋势。Akgiray(1989)曾运用时间序列分析方法中的GARCH模型对美股中的道琼斯丶纳斯达克丶标普500股指收益率进行了拟合和预测。李志林(2007)在预测上证指数未来价格趋势中运用时间序列分析发中的自回归方法,得到最大误差只有2.3%。易力(2016)等人运用时间序列分析方法中的GARCH模型对影响绩效的风格择时因素进行了研究,发现仅仅只在成长型基金上,市场择时对基金管理绩效才有显著效果。在运用那个时间序列方法对股票未来收盘价趋势的预测中,发现股票的数据是非线性丶非平稳的,许多研究表明也是如此。股票非线性的特征使传统的这些数理统计方法处理起来十分棘手,会影响股票未来价格趋势的预测精度。而且我国股票市场相比于西方股票市场而言,起步晚,发展不完善。许多交易体系丶金融制度以及交易方式并不成熟,传统的数理统计方法并不适用于我国复杂的股票市场。(2)深度学习中的神经网络预测方法:近年来,深度学习的发展十分迅速,它在生活中的语音丶视觉处理等模式识别领域得到到了充分的应用。越来越多的国内外学者将深度学习应用于金融领域,如将神经网络模型运用于预测股票未来价格趋势的研究。神经网络模型由早期1943年的MP模型发展而来,它是通过仿效人类大脑中的神经元结构与工作原理而构建的数学模型。目前,神经网络中的主流学习算法仍然是BP算法。国外学者White(1988)首次运用了BP神经网络模型对BIM公司的股票回报率进行了研究预测,由于BP神经网络在训练过程中因梯度爆炸不能收敛于全局最优值,他所得到的预测效果并不好。杨忻(2004)运用了BP型前馈型人工神经网络对股票收益率与企业规模丶交易量丶年收益之间的关系进行了研究,发现在中国的股票市场中,企业规模的影响力最大,其次是交易量,年收益影响力最弱。MontriInthanhot(2015)将人工神经网络与支持向量机运用于泰国股票市场的SET50股指预测,通过对比这两种方法的预测准度,发现人工神经网络在股票预测方面精准度要优于支持向量机。但传统神经网络模型也有弊端,如BP神经网络不具有记忆功能丶循环神经网络模型(RNN)训练过程中存在梯度爆炸与梯度消失等问题。Hochreiter等学者(1997)提出了长短期记忆人工神经网络模型(LSTM),通过加入了门开关,对信息传递可以选择保留或者忘记,且有效解决了循环神经网络模型(RNN)训练中梯度爆炸与消失问题。LSTM是一种新型递归神经网络,已经成为了如今的大热框架模型。结果表明LSTM神经网络的预测进准度更优于传统神经网络。同时,国内的孙瑞奇(2016)丶任君(2018)等人分别将LSTM神经网络应用于标准普尔500指数和道琼斯指数进行了训练与预测,结果也表明较传统的神经网络而言,预测效果更佳。1.3研究方法本文运用python获取东方财富股票数据,下载了上证指数(1A0001)丶深圳指数(399001)丶中证500(1B0905)从2016年3月1日至2020年12月31日的开盘价丶收盘价丶最高价丶最低价以及成交量等数据。通过运用python中的keras模块建立RNN与LSTM模型。运用所建立的RNN与LSTM模型分别对中证500(1B0905)、上证指数(1A0001)、深圳指数(399001)进行实验。利用这三个指数的前5日的开盘价、收盘价、最高价、最低价、交易量预测第6日的收盘价价格。最后比较两个模型的预测效果,验证本文所建立的LSTM模型在股票收盘价预测上有良好的性能。1.4章节安排本文内容分为5个章节,分别如下:第一章为绪论。阐明本文研究背景以及意义,介绍国内外对相关研究现状与本文研究方法、章节结构。第二章为神经网络相关理论介绍。主要介绍了循环神经网络RNN与长短期神经网络LSTM的原理,分析了它们的特点。第三章为模型构建。设计了RNN与LSTM各自的结构与参数,如输入层、隐藏层以及它们的神经元个数设计,还有学习算法、激活函数、防止过拟合的方法等。第四章为实证分析。首先介绍了本文股票数据来源,并对数据进行了归一化处理。再运用所构建的RNN与LSTM模型对所选取的三大指数进行实证分析。通过对比这三支大盘指数的收盘价预测走势图与运用回归指标对其结果分析,验证LSTM模型在股票预测上性能优于RNN模型。第五章为总结与展望。对本文研究内容进行总结,并指出本文研究上的不足与缺陷,展望LSTM在未来可以调整与改进的地方。2神经网络相关概念介绍2.1BP神经网络BP神经网络是在训练前馈神经网络的过程中,根据每次训练结果与预测结果进行误差分析,再修改权值与阈值一步一步调整,得到输出结果与预测结果相同的模型。图2.1神经元模型在图2.1中,、、...为神经元的输入,、、...为神经元之间的连接权重,为该神经元的阈值,只有当神经元接受的输入信息达到阈值才会被激活。表示为激活函数,通过激活函数再输出输出值。常见的激活函数有tanh函数丶sigmoid函数以及rule函数,其函数表达式为:函数图像图下图所示:图2.2Sigmoid函数图像图2.3tanh函数图像图2.4tanh函数图像神经网络的学习过程就是训练过程,它根据给定的数据进行训练,训练时持续调整人工神经网络的参数,使其神经网络的输出值接近样本的真实值。通过优化器函数调整权重的大小,常见的方法有梯度下降法。该方法原理是满足一定调节时,计算误差项,根据误差来不断调整更新权重值。神经网络的学习过程就是在训练中不断更新权重值。学习规则上,通常使用误差校正方法。该方法原理是根据神经网络的输出误差来修正神经元间的连接强度。假设为神经元输入,神经元j为输出神经元,两者间权重为,修正值则为。为学习率,为神经元j的输出误差,是神经输出值与样本真实值的偏差。误差函数是衡量神经输出值与样本真实值误差大小的函数。当神经元的误差函数小于所设定值大小时,神经网络训练立即停止。图2.5神经网络学习示意图反向传播(BackPropagation,BP))是指利用输出后的误差来估计输出层的直接前导层的误差,然后利用这个误差估计来更新前一层的误差,从而得到神经网络各层的误差估计。在学习过程中,输入信号经过隐藏层处理后传输到输出层。当输出层节点未能得到期望的输出时,转移到后向传播阶段,输出误差以某种形式分配到各个输入节点,得到各个层的误差信号。误差信号是更新和修改权重的基础。图2.63层神经网络结构BP神经网络虽然可以帮助我们处理股票非线性问题,但也存在缺陷。一是收敛速度非常慢。二是陷入局部极小值的可能性非常大。三是他只能处理当时的数据,无法处理时间序列的数据,故不能作为股票市场金融时间序列数据的模型。2.2LSTM神经网络LSTM神经网络是传统的RNN神经网络的变体之一,由RNN神经网络发展而来。在为了解决BP神经网络无法处理序列数据的问题,科学家们提出了传统的RNN神经网络。图2.7RNN展开图如图2.1,左侧为RNN模型的基础结构,右侧则是根据时间展开的示意图。表示时刻的输入,与表示相应时刻的输出层与输入层。U表示输入层到隐藏层的权重矩阵,V表示隐藏层到输出层的权重矩阵,W表示不同状态间的权重矩阵。RNN通过状态之间的权重矩阵形成了信息传递,解决了BP神经网络无法处理时间序列数据的问题。但由于在反向传播过程中当无数个权重小于1的情况训练时,无数个小于1的数相乘会接近于0,就会产生梯度爆炸和消失。而且在前向传播过程中,前向的输入渐渐地对后面的影响越来越小,将不具备人体大脑的“记忆”功能。1997年,Hochreiter等学者提出了长短期神经网络模型(LSTM),在RNN神经网络的基础上加入了若干门来解决梯度爆炸、消失与记忆功能问题。下面介绍各个门层的功能与作用:图2.8LSTM结构1遗忘门:图2.9遗忘门遗忘门决定对上一层输入信息是保留还是遗忘。对上一状态的输入信息与当前状态输入信息运用激活函数中的Sigmoid函数。Sigmoid函数会产生0到1间的数,与输入信息相乘后表示保留多少信息。如果是0或者1表示完全遗忘或完全保留。2输入门:图2.10输入门输入门对输入的信息进行选择性记忆并放入细胞中,它由两部分组成。通过Sigmoid函数决定保留多少上一状态的输入信息与当前状态输入信息中的新信息。第二部分为候选新信息,通过tanh函数对上一状态的输入信息与当前状态输入信息激活得到候选信息。3更新细胞状态:通过将上一细胞状态与通过遗传门输出相乘,决定保留还是丢弃。再与输入门的输出(sigmoid与tanh乘积)相加,细胞状态则从状态变为状态。图2.11细胞状态更新4输出门:图2.12输出门输出门先决定从此时的细胞状态中输出的信息。由Sigmoid函数决定输出新的细胞状态的信息,再与tanh函数更新后的细胞状态经tanh函数相乘,得到输出。LSTM各单元元之间的计算公式:正向传播:Inputgate:Forgetgate:Cell(c):Outputgate:Celloutput:反向传播时权重更新时梯度计算:GradientofCelloutput:GradientofOutputgate:GradientofStates:Gradientofcell:GradientofInputgate:其中,I是输入层神经元数目;H代表隐藏层神经元数目;K是输出层神经元数目;C是每个block中含有的Cell数目;h与f都是激活函数。LSTM相比RNN而言,有如下优点:LSTM在RNN的基础上添加了状态计算值,求解梯度时累成变为了累加,因此梯度不会接近0或者无穷大。有效解决了RNN训练过程中梯度消失与梯度爆炸问题。本文接下来通过RNN与LSTM分别建立模型运用于股票收盘价预测,利用实证分析来证明LSTM在股票预测方面的优越性能。(2)解决了循环神经网络存在的长期依赖问题,能够处理时间滞后很长的数据序列。如果在某个时刻下信息较为重要,那么它对应的遗忘门位置会一直保留在接近于1的数值。这样就可以让这个时刻的信息一直往下传递下去而不被丢失,这就是LSTM神经网络能够处理长序列的原因之一。 3RNN与LSTM模型构建3.1RNN模型构建3.1.1RNN模型结构(1)RNN网络层数:通常我们隐藏层层数与隐藏层节点数是通过经验与数据复杂程度度来选择。相关理论表明,隐藏层层数设置较少时,我们对模型易于理解且容易通过编程来实现,但模型的预测准度较低。当隐藏层层数设置过多时,虽然可以有效提升模型的预测精度,但此时模型结构非常复杂,增加了训练难度且可能会出现过拟合的问题。股票是时间序列数据,处理时间序列数据时,RNN不需要太多隐藏层。考虑到股票时间序列数据所需模型较简单,且希望预测准度较高的情况下,优先考虑设置隐藏层神经元个数。本文中构建的RNN模型为最简单的单隐藏层结构。(2)RNN各网络层神经元数量:选取输入数据为股票数据的开盘价、最高价、最低价、收盘价、交易量,输入层神经元数目为1。预测的数据只有一个预测收盘价格,故输出层神经元数目为1。隐藏层神经元个数设置为64。(3)防止过拟合的方法:在深度学习过程中,往往会出现样本数据过拟合情况的发生。为了防止这种情况的发生,在神经网络模型构建中加入Dropout策略。Dropout策略是指在每一轮的训练过程中,通过概率P随机选取某个或某几个隐藏节点值作为0。这种方式有效地减少神经元间的依赖与相互作用,可以明显地减少过拟合现象。本文概率设置。3.1.2RNN模型参数(1)时间步长:时间步长N为使用前N个交易日的股票数据来预测N+1个交易日的股票收盘价格。考虑到股票数据越久远,对后面的股票价格影响程度越小。故模型利用前5个交易日(一周)的股票数据来预测第6个交易日的股票收盘价格。故时间步长N设置为5。(2)激活函数:RNN模型通常选择tanh函数作为激活函数。原因是tanh函数以0为中心,更新权值时基本不会只朝一个方向改变,这样可以保证网络的敛散性。(3)学习算法:神经网络在训练过程中,学习算法对模型网络的性能有极大的影响。想要增强神经网络模型的收敛能力与提升模型预测的精准度,往往要选择一个合适的算法。RNN通常使用Adagrad算法与RMSprop算法。Adagrad算法可以自动调整训练过程中的学习率。它的原理是通过对数据利用率的排序决定使用学习率的大小。数据利用率高的数据,学习率设定较高。数据利用率低的数据,学习率设定较低。在使用此算法前,需要提前设定一个全局学习率,每次学习后的改变大小由这个值来决定。Adagrad算法在训练后期通常会出现训练提前结束等问题。RMSprop算法是自适应算法学习率算法。RMSprop算法是Adagrad算法的一种改进,它不像Adagrad算法那样将梯度平方求和,而是求梯度平方和的平均值。故RMSprop算法学习率下降幅度较小,加快训练速度。本文RNN模型选取RMSprop算法。(4)其它参数:本文将均方差MeanAbsoluteError(MAE)作为损失函数,初始学习率设置为0.001。迭代次数设置为100次,过大过小会导致模型过拟合与学习不够充分等问题。参数汇总:根据上述RNN模型构建,RNN模型参数设定如下表:参数名称参数值输入层神经元个数5输出层神经元个数1隐藏层层数1隐藏层神经元个数64Dropout0.5时间步长5初始学习率0.001迭代次数100激活函数tanh函数学习算法RMSprop算法损失函数MAE表3.1RNN模型参数汇总表3.2LSTM模型构建3.2.1LSTM模型结构(1)LSTM网络层数由设置RNN模型网络层数分析可知,处理时间序列数据时,RNN不需要太多隐藏层。同样,对于LSTM模型而言也是如此。LSTM隐藏层层数设置过多会出现层间的梯度消失与容易陷入局部最优等问题。本文本文中构建的LSTM模型为最简单的单隐藏层结构。(2)LSTM王络层神经元数量LSTM各网络层神经元数量设定跟RNN模型相同。选取输入数据为股票数据的开盘价、最高价、最低价、收盘价、交易量,输入层神经元数目为1。预测的数据只有一个预测收盘价格,故输出层神经元数目为1。隐藏层神经元个数设置为64。(3)防止过拟合的方法在深度学习过程中,往往会出现样本数据过拟合情况的发生。为了防止这种情况的发生,在神经网络模型构建中加入Dropout策略。Dropout策略是指在每一轮的训练过程中,通过概率P随机选取某个或某几个隐藏节点值作为0。这种方式有效地减少神经元间的依赖与相互作用,可以明显地减少过拟合现象。本文概率设置。3.2.2LSTM模型参数(1)时间步长时间步长N为使用前N个交易日的股票数据来预测N+1个交易日的股票收盘价格。考虑到股票数据越久远,对后面的股票价格影响程度越小。故模型利用前5个交易日(一周)的股票数据来预测第6个交易日的股票收盘价格。故时间步长N设置为5。(2)激活函数LSTM与RNN模型相同,通常选择tanh函数作为激活函数。但tanh函数也存在一些问题,如梯度消失等问题。与传统的sigmoid函数与tanh函数相比,可以解决梯度爆炸与梯度消失问题,且有效降低神经网络的训练成本。故本文LSTM模型选择Relu作为激活函数。(3)学习算法与RNN模型一样,学习算法的选择对于LSTM来讲有着十分重要的作用。想要增强LSTM模型的收敛能力与提升模型预测的精准度,往往也需要选择一个合适的算法。LSTM模型通常也选择Adagrad算法与RMSprop算法作为学习算法。神经网络在训练过程中,学习算法对模型网络的性能有极大的影响。想要增强神经网络模型的收敛能力与提升模型预测的精准度,往往要选择一个合适的算法。LSTM模型通常使用Adagrad算法与RMSprop算法。但Adam优化算法与其他优化算法相比拥有更强的学习能力与更快的收敛速率,并且能解决其他优化算法在优化时存在的学习率消失与函数波动较大等问题。本文选取Adam优化算法作为LSTM模型的学习算法。(4)其它参数与RNN模型相同,本文将均方差MeanAbsoluteError(MAE)作为损失函数,初始学习率设置为0.001。迭代次数设置为100次,过大过小会导致模型过拟合与学习不够充分等问题。参数汇总:根据上述LSTM模型构建,LSTM模型参数设定如下表:参数名称参数值输入层神经元个数5输出层神经元个数1隐藏层层数1隐藏层神经元个数64时间步长5Dropout0.5时间步长5初始学习率0.001迭代次数100激活函数Relu函数学习算法Adam算法损失函数MAE表3.2LSTM模型参数汇总表3.3RNN与LSTM模型评价指标时间序列模型的评价指标主要评估真实值与预测值的偏差大小。偏差越小表明模型预测效果越好,偏差越大说明模型预测效果越差。本文采用评价绝对误差(MeanAbsoluteError,MAE)与均方根误差(RootMeanSquareError,RMSE)(亦称标准误差)与两个指标对RNN模型与LSTM模型预测效果对比。平均绝对误差表示预测值与真实值之间的平均误差大小,均方根误差是预测值与真实值偏差的平方与观察次数n比值的平方根。标准差对一组测量中的特大或特小误差反应非常敏感,所以,标准误差能够更好地反映出测量的精密度。RMSE值越小,表示预测值与真实值偏差越小,说明模型预测精准度越高,模型预测效果越好。RMSE值越大,表示预测值与真实值偏差越大,说明模型预测精准度越小,模型效果越差。两者计算公式如下:其中,和分别代表第个样本的预测值和实际值,N代表样本数量。这两个指标的值越低,表示预测精度越高,模型的性能就越好。4RNN与LSTM的模型实证分析4.1股票数据来源及处理1股票数据来源:本文股票数据通过python下载东方财富APP中的数据而来。由于股票市场中的个股存在庄家坐庄和人为炒作现象,故挑选我国股票市场三只最具代表性的大盘指数大盘指数作为实验对象。本文下载了上证指数(1A0001)丶深圳指数(399001)丶中证500(1B0905)从2016年3月1日至2020年12月31日的开盘价丶收盘价丶最高价丶最低价以及成交量等数据。本文将股票数据的前百分之70作为训练集进行训练,训练完成后,再用原始数据的后百分之30进行预测。图3.1中证500的股票数据2股票数据处理:从图3.1中,我们得知股票的历史数据中,价格与成交量的交易数据纲量相差巨大,两者之间相差不止一个数量级。为了避免巨大差异对神经网络训练时收敛的影响与预测出的数据与真实值差异过大的问题,我们需要先将这五个自变量做归一化处理。数据归一化处理运用公式如下:使用归一化处理后的数据作为输入值输入模型进行训练完成后,模型预测股票收盘价时需要将数据反归一化。原因是保证预测数据与股票实际数据是同一量级。4.2RNN与LSTM模型程序实现(1)RNN与LSTM模型程序流程图:图3.2RNN与LSTM模型程序流程图RNN模型部分程序代码:创建MinMaxScaler将股票数据归一化:#归一化公式:x=(x-min)/(max-min)sc=MinMaxScaler(feature_range=(0,1))#将数据转为numpy数组values=df[features].to_numpy()#归一化valuesscaled_values=sc.fit_transform(values)利用python中的人工神经网络库Kreas对RNN进行建模#创建模型model=Sequential()#添加一层含有64个神经元数目的隐藏层RNN网络model.add(SimpleRNN(64))#添加Dropout隐藏层防止过拟合model.add(Dropout(0.5))#添加输出层网络以输出预测的股票收盘价格model.add(Dense(1,activation='tanh'))#编译模型(损失函数为mae,优化算法为rmsprop,初始学习率为0.001)pile(loss='mae',optimizer='rmsprop')#利用model.fit对训练集进行学习,迭代次数为100history=model.fit(X_train,y_train,epochs=100,validation_data=(X_test,y_test))#预测的归一化收盘价格y_pred_sc=model.predict(X_test).reshape(-1,1)#归一化逆过程,即将归一化的数据转为真实数据y_pred=sc.inverse_transform(y_pred_sc.reshape(-1,1))LSTM模型部分程序代码:创建MinMaxScaler将股票数据归一化:#归一化公式:x=(x-min)/(max-min)sc=MinMaxScaler(feature_range=(0,1))#将数据转为numpy数组values=df[features].to_numpy()#归一化valuesscaled_values=sc.fit_transform(values)利用python中的人工神经网络库Keras对LSTMN进行建模#创建模型model=Sequential()#添加一层含有64个神经元数目的隐藏层LSTM网络model.add(LSTM(64))#添加Dropout隐藏层防止过拟合model.add(Dropout(0.5))#添加输出层网络以输出预测的股票收盘价格model.add(Dense(1,activation='relu'))#编译模型(损失函数为mae,优化算法为adam,初始学习率为0.001)pile(loss='mae',optimizer='adam')#利用model.fit对训练集进行学习,迭代次数为100history=model.fit(X_train,y_train,epochs=100,validation_data=(X_test,y_test))#预测的归一化收盘价格y_pred_sc=model.predict(X_test).reshape(-1,1)#归一化逆过程,即将归一化的数据转为真实数据y_pred=sc.inverse_transform(y_pred_sc.reshape(-1,1))4.3RNN的模型预测结果(1)RNN模型对中证500指数收盘价走势的预测效果图图4.1基于RNN模型预测的中证500指数收盘价预测走势图图4.2基于RNN模型预测的上证指数收盘价预测走势图图4.3基于RNN模型预测的深圳成指收盘价预测走势图4.4LSTM的模型预测结果图4.4基于LSTM模型预测的中证500收盘价预测走势图图4.5基于LSTM模型预测的上证指数收盘价预测走势图图4.6基于LSTM模型预测的深圳成指收盘价预测走势图4.5RNN与LSTM的模型预测结果对比分析观察上图,4.1、4.2、4.3分别为基于RNN模型预测的中证500丶上证指数与深圳成指收盘价预测效果图,4.4、4.5、4.6分别为基于LSTM模型预测的中证500丶上证指数与深圳成指收盘价预测效果图。(横坐标为数据的时间,纵坐标为股票收盘价格,蓝色曲线为真实收盘价,橙色曲线为预测收盘价)观察上面六幅预测效果图,可以发现:RNN模型对中证500与上证指数收盘价的预测值与真实值在走势上几乎相同,预测值与真实值之间比较接近,偏差程度较低。而对深圳成指收盘价的预测效果较差,具体表现在训练完成后对测试集的预测值与真实值差别较大。而LSTM模型对三个大盘指数的收盘价的预测值与真实值在走势上几乎一致。且预测值与真实值之间十分接近,偏差程度与RNN模型相比更低。表明LSTM模型在股票收盘价走势预测效果上比RNN模型效果更好,精准度更高。RNN与LSTM模型的预测值与真实值之间在时间上都存在一定的滞后性。观察预测收盘价曲线与真实收盘价曲线,发现预测收盘价曲线较真实收盘价有明显的右移现象。而且在指数涨跌过程中,明显的发现上涨时预测收盘价小于真实收盘价、下跌时预测收盘价大于真实收盘价。这是因为模型是基于过往发生的历史数据来预测收盘价,预测收盘价与真实收盘价相比,肯定有一定的时间滞后性。时间滞后性对预测收盘价的影响需要进一步深入研究。为了进一步分析RNN模型与LSTM模型对股票收盘价预测效果,本文采用评价绝对误差(MeanAbsoluteError,MAE)与均方根误差(RootMeanSquareError,RMSE)(亦称标准误差)两个个指标来对比。如下表所示:神经网络模型MAERMSERNN74.560887104.112092LSTM74.352285101.658580表4.1中证500预测性能指标神经网络模型MAERMSERNN45.29924033.094499LSTM29.18008841.757838表4.2上证指数预测性能指标神经网络模型MAERMSERNN421.697540591.559679LSTM225.922473299.988681表4.3深圳成指预测性能指标观察表4.1、4.2、4.3可知,LSTM模型对中证500、上证指数与深圳成指收盘价预测结果上的MAE、RMSE值均小于RNN模型。其中,RNN模型对中证500收盘价预测结果的MAE、RMSE值与LSTM模型相比比较接近,而上证指数与深圳成指收盘价预测结果的MAE、RMSE值明显大于LSTM模型。说明LSTM模型的预测值与真实值间的误差比RNN模型预测值与真实值间的误差更小,LSTM模型在预测股票收盘价上的预测性能优于RNN模型的预测性能。5总结与展望论文总结:本文研究了LSTM模型在我国A股市场中对股票收盘价预测的应用。先从理论介绍了神经网络相关知识与模型,对比了循环神经网络RNN、长短期神经网络LSTM在处理股票时间序列时的特点与缺陷。循环神经网络RNN能够很好地处理股票非线性时间序列,但是在训练过程中存在梯度爆炸和消失问题。且循环神经网络RNN前向传播过程中,前向的输入渐渐地对后面的影响越来越小,将不具备人体大脑的“记忆”功能。长短期神经网络LSTM通过加入了遗传门、输入门、输出门来控制长期输入的信息,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论