首页> 中国专利> 基于LSTM神经网络的股票价格预测方法

基于LSTM神经网络的股票价格预测方法

摘要

本申请实施例涉及一种基于LSTM神经网络的股票价格预测方法。本申请实施例的基于LSTM神经网络的股票价格预测方法包括:获取当前交易日第一目标股票的第一特征数据;对所述第一特征数据进行归一化处理;将归一化处理后的所述第一特征数据输入至训练好的股票预测模型中,得到下一个交易日该目标股票的价格走势,其中,所述股票预测模型包括按照Keras内置的Sequential顺序模块依次连接的第一Lstm层、第一Dropout层、第二Lstm层、第三Lstm层、第二Dropout层和Dense层。本申请实施例的基于LSTM神经网络的股票价格预测方法预测股票涨跌走势准确率明显提高,且随着历史股票数据的增加,LSTM网络模型的预测效果趋于稳定。

著录项

  • 公开/公告号CN113095484A

    专利类型发明专利

  • 公开/公告日2021-07-09

    原文格式PDF

  • 申请/专利权人 华南师范大学;

    申请/专利号CN202110376509.6

  • 发明设计人 邓飞燕;岑少琪;钟凤琪;陈壹华;

    申请日2021-04-07

  • 分类号G06N3/04(20060101);G06N3/08(20060101);G06Q10/04(20120101);G06Q40/04(20120101);

  • 代理机构44425 广州骏思知识产权代理有限公司;

  • 代理人吴静芝

  • 地址 528225 广东省佛山市南海区狮山南海软件园华南师范大学软件学院

  • 入库时间 2023-06-19 11:45:49

说明书

技术领域

本申请实施例涉及计算机软件开发的技术领域,特别是涉及一种基于LSTM神经网络的股票价格预测方法。

背景技术

随着经济全球化的发展,股票市场愈发受到我国投资者的青睐,伴随着金融市场的发展和强烈需求,股票价格趋势预测倍受学术界、业界关注,互联化、数字化、智能化为标志的信息技术创新呈现深度融合,量化科技与金融的结合趋势愈发明显。投资股票具有高收益的同时,也伴随着高风险,而影响股市波动的内外因素众多且难以量化,处理海量、繁杂的股票数据工程量大,所以传统的非人工智能的方法在股票价格预测上往往不尽如人意。

发明内容

基于此,本发明提供了一种基于LSTM神经网络的股票价格预测方法,其具有预测股票涨跌走势准确率明显提高的优点,且随着历史股票数据的增加,LSTM网络模型的预测效果趋于稳定。

本申请实施例提供了一种基于LSTM神经网络的股票价格预测方法,所述方法包括:获取当前交易日第一目标股票的第一特征数据;

对所述第一特征数据进行归一化处理;

将归一化处理后的所述第一特征数据输入至训练好的股票预测模型中,得到下一个交易日该目标股票的价格走势,其中,所述股票预测模型包括按照Keras内置的Sequential顺序模块依次连接的第一Lstm层、第一Dropout层、第二Lstm层、第三Lstm层、第二Dropout层和Dense层。

本发明提供的一种基于LSTM神经网络的股票价格预测方法,使用LSTM神经网络算法建立预测模型,对海量的、繁杂的数据进行深入的数据挖掘,对股票时序数据进行预测,得出股票预测结果。

可选的,对所述特征数据进行归一化处理前,采用python中的pywt库对所述第一特征数据进行小波变换去除数据噪声。

可选的,所述第一特征数据包括以下至少一项:

所述目标股票在当前交易日的最低价、最高价、收盘价、开盘价和交易量。

可选的,所述股票预测模型的训练过程包括:

获取历史交易日第二目标股票的第二特征数据,所述第二特征数据包括以下至少一项:所述目标股票在历史交易日的最低价、最高价、收盘价、开盘价和交易量;

采用python中的pywt库对所述第二特征数据进行小波变换去除数据噪声;

对所述第二特征数据进行归一化处理;

将归一化后的所述第二测试数据划分为训练集和测试集;

建立所述股票预测模型,其中,所述股票预测模型中使用的损失函数为均方差,优化算法为Adam,模型采用2个epochs,每个batch的大小为32;

将训练集中的所述第二测试数据输入至所述股票预测模型,以训练所述股票预测模型;

将测试集中的所述第二测试数据输入至训练好的所述股票预测模型,以对所述股票预测模型进行评估验证及参数优化。

可选的,所述将测试集中的所述第二测试数据输入值训练好的所述股票预测模型,以对所述股票预测模型进行评估验证,包括:

将测试集中的所述第二测试数据输入至训练好的所述股票预测模型,得到预测结果;

判断预测结果所指示的该样本的预测涨跌结果,如果是涨,则将该样本设置标签1,如果是跌,则将该样本设置标签0;

判断该样本的实际涨跌结果,如果是涨,则将该样本设置标签1,如果是跌,则将该样本设置标签0;

根据该样本的实际涨跌结果与预测涨跌结果,将样本分为TP、FN、FP和TN四类,其中,TP用于指示该样本的实际涨跌结果与预测涨跌结果都为正类的个数,FN用于指示该样本的实际涨跌结果为正类、预测涨跌结果为负类的个数,FP用于指示该样本的实际涨跌结果为负类、预测涨跌结果为正类的个数,TN用于指示该样本的实际涨跌结果与预测涨跌结果都为负类的个数;

通过如下公式计算所述股票预测模型的评价指标:

其中,Accuracy为准确率,Precision为精确率,Recall为召回率。

可选的,在所述股票预测模型中运行所述第一特征数据或所述第二特征数据时,通过keras中的fit_generator函数批量获取数据,并使用python生成器动态训练数据集来绘制数据。

可选的,所述第一Lstm层、所述第二Lstm层与所述第三Lstm层的神经元个数分别为100、100和150,所述第一Dropout层与所述第二Dropout层的rate为0.2。

可选的,训练完所述股票预测模型后,将所述股票预测模型存入saved_models文件夹中,以使在使用时可直接加载该文件夹中保存的所述股票预测模型文件,从而节省训练模型的时间。

可选的,通过如下公式对所述第一特征数据进行归一化处理:

其中,x和y为转换前与转换后的值,MaxValue是样本的最大值,MinValue是样本的最小值。

可选的,所述下一个交易日该目标股票的价格走势包括所述目标股票下一个交易日的收盘价格。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图说明

图1为本发明提供的一种基于LSTM神经网络的股票价格预测方法的操作流程图;

图2为AAON股票小波变换前后对比图,其中图2-1为小波变化前的数据曲线,图2-2为小波变换三层分解后的数据曲线;

图3为LSTM神经网络模型细胞的更新状态示意图;

图4为Dropout神经网络示意图;

图5为有无使用Dropout网络的神经网络对比示意图;

图6为本发明提供的一种基于LSTM神经网络的股票价格预测方法的预测模型结构示意图;

图7为MSE误差值的曲线分布图;

图8为本发明提供的一种基于LSTM神经网络的股票价格预测方法的股票价格趋势预测模型的操作流程图;

图9为本发明提供的一种基于LSTM神经网络的股票价格预测方法对于AAON股票预测结果示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。

应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。

在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

如图1所示,图1为本发明提供的一种基于LSTM神经网络的股票价格预测方法的操作流程图,其步骤包括:

S1:获取当前交易日第一目标股票的第一特征数据。

优选的,第一特征数据包括以下至少一项:目标股票在当前交易日的最低价、最高价、收盘价、开盘价和交易量。

S2:对所述第一特征数据进行归一化处理。

由于收盘价和交易量等参数同时作为特征值输入,取值范围相差较大,需避免数值过大的交易量对预测结果的影响过大,需要进行归一化处理,把数据维度控制在0到1之间。数据归一化的公式如下:

其中,x和y为转换前与转换后的值,MaxValue是样本的最大值,MinValue是样本的最小值。

因市场动态非常复杂,特征数据含有不经常的噪声,优选的,对所述特征数据进行归一化处理前,还包括对数据进行降噪处理的步骤。本实施例中,具体采用python中的pywt库进行小波变换去除数据噪声。如图2所示,图2为AAON股票小波变换前后对比图,其中图2-1为小波变化前的数据曲线,图2-2为小波变换三层分解后的数据曲线。

S3:将归一化处理后的所述第一特征数据输入至训练好的股票预测模型中,得到下一个交易日该目标股票的价格走势。

其中,所述股票预测模型包括按照Keras内置的Sequential顺序模块依次连接的第一Lstm层、第一Dropout层、第二Lstm层、第三Lstm层、第二Dropout层和Dense层。

优选的,下一个交易日该目标股票的价格走势包括目标股票下一个交易日的收盘价格。

LSTM神经网络具有时间序列和选择记忆性,能够通过学习股票历史数据的变化,利用其内部的选择记忆性,实现短期股票的预测。

如图3所示,图3为LSTM神经网络模型细胞的更新状态示意图,LSTM神经网络模型由记忆细胞C、输入门Input Gate、输出门Output Gate和遗忘门Forget Gate组成。

LSTM神经网络模型的各个控制门的计算原理如下:

(1)输入门:记忆现在的某些信息。计算输入门i

i

a

其中W

(2)遗忘门:控制舍去哪些信息。计算在t时刻遗忘门的激活值f

f

其中W

(3)细胞状态更新:根据输入门和遗忘门的计算结果,对细胞状态进行更新,从而得出t时刻的细胞状态更新值C

C

(4)输出门:控制决定哪些信息需要输出。根据计算得到的细胞状态更新值C

h

其中W

图3的水平线表示细胞的状态,细胞类似于一个传送带,直接在整个传送带上运行,只是有一些少量的线性交互。

在对模型进行训练时,有可能遇到训练数据不够,即训练数据无法对整个数据的分布进行估计的时候,或者在对模型进行过度训练(overtraining)时,常常会导致模型的过拟合(overfitting)。随着模型训练的进行,模型的复杂度会增加,此时模型在训练数据集上的训练误差会逐渐减小,但是在模型的复杂度达到一定程度时,模型在验证集上的误差反而随着模型的复杂度增加而增大。此时便发生了过拟合,即模型的复杂度升高,但是该模型在除训练集之外的数据集上结果却不尽人意。

针对上述技术问题,本发明所提供的一种基于LSTM神经网络的股票价格预测方法,在LSTM神经网络模型中添加dropout层进行正则化,并且使用了两层dropout层,分别在第一层LSTM层和第二层LSTM层之间,第三层LSTM层和全连接(dense)层之间。从而解决过拟合问题,提高模型的泛化能力。

在神经网络的Dropout层中,为每个神经元结点设置一个随机消除的概率,我们得到一个节点较少,规模较小的网络进行训练。即,Dropout层的核心在于在训练过程中随机的暂时性“丢弃”掉一部分的单元。

在一个优选的实施例中,本发明所提供的一种基于LSTM神经网络的股票价格预测方法所使用的预测模型中设定Dropout层的rate=0.2,即每5个神经元里面有一个被随机“丢弃”。

如图4所示,图4为Dropout神经网络示意图,带Dropout的神经网络前馈运算的方程如下所示:

r

y

其中,*是元素级乘法,对任意层l,r

如图5所示,图5为有无使用Dropout网络的神经网络对比示意图,其中图5-1为标准神经网络,图5-2为应用了Dropout的神经网络。由图5可知,Dropout简化了神经网络。将Dropout应用到神经网络中,就等于从神经网络中抽取一个“变薄”的网络。变薄的网络由从Dropout中幸存下来的所有单元组成(图5-2)。因此,带Dropout的具有n个单元的神经网络可以看作是训练一组具有广泛的权重分担的2

在一个具体的实施例中,如图6所示,本发明提供的一种基于LSTM神经网络的股票价格预测方法的预测模型结构及各项参数设置如下:

1)建立Sequential模型,测试窗口序列长度为55,模型采用2个epochs,每个batch的大小为32;

2)三层LSTM层,各层的神经元个数分别为100、100、150;

3)Dropout层rate为0.2,输入数据的维度为5;

4)Dense层将其维度聚合为1,激活函数使用linear;

5)使用MSE(Mean Squared Error)损失函数,优化算法采用Adam。

优选的,在模型中运行股票数据时,本发明使用创建的model.train_generator()方法,并不是使用keras框架的model.train()方法。因为在尝试训练大型数据集时很容易耗尽内存,而model.train()函数将完整数据集加载到内存中,然后将规范化应用于内存中的每个窗口,容易导致内存溢出。因此,本发明使用了Keras的fit_generator()函数,允许使用python生成器动态训练数据集来绘制数据,这意味着内存利用率将大大降低。

Adam优化算法为自适应时刻估计方法(Adaptive Moment Estimation),是一种在深度学习模型中用来替代随机梯度下降的优化算法,它还是能提供解决稀疏梯度和噪声问题的优化方法。Adam通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。梯度的第一个时刻平均值和第二个时刻方差的两个公式如下所示:

其中,

参数更新的最终公式为:

其中,β

Adam算法结合了AdaGrad和RMSProp算法最优的性能,对比其他算法,其具有对内存需求较小,速度更快的优点。

优选的,损失函数使用Mean Squared Error(MSE)均方差,它是预测值与目标值之间差值的平方和,其公式如下所示:

如图7所示,图7为MSE误差值的曲线分布图,可以看到随着误差的增加损失函数增加的更为迅猛,其中最小值为预测值为目标值的位置。

如图8所示,图8为本发明提供的一种基于LSTM神经网络的股票价格预测方法的股票价格趋势预测模型的操作流程图,为保证股票预测模型预测功能的准确度,需要提前对其进训练和功能评估,在一个优选的实施例中,股票预测模型的训练过程包括:

获取历史交易日第二目标股票的第二特征数据,所述第二特征数据包括以下至少一项:所述目标股票在历史交易日的最低价、最高价、收盘价、开盘价和交易量;

采用python中的pywt库对所述第二特征数据进行小波变换去除数据噪声;

对所述第二特征数据进行归一化处理;

将归一化后的所述第二测试数据划分为训练集和测试集;

建立所述股票预测模型,其中,所述股票预测模型中使用的损失函数为均方差,优化算法为Adam,模型采用2个epochs,每个batch的大小为32;

将训练集中的所述第二测试数据输入至所述股票预测模型,以训练所述股票预测模型;

将测试集中的所述第二测试数据输入至训练好的所述股票预测模型,以对所述股票预测模型进行评估验证及参数优化。

在一个具体的实施例中,建立的股票预测模型结构及各项参数设置如下:

1)建立Sequential模型,测试窗口序列长度为55,模型采用2个epochs,每个batch的大小为32;

2)三层LSTM层,各层的神经元个数分别为100、100、150;

3)Dropout层rate为0.2,输入数据的维度为5;

4)Dense层将其维度聚合为1,激活函数使用linear;

5)使用MSE(Mean Squared Error)损失函数,优化算法采用Adam。

如图8所示,图8为本发明提供的一种基于LSTM神经网络的股票价格预测方法的股票价格趋势预测模型的操作流程图,优选的,LSTM模型训练完成后,先对部分股票数据进行预测,并对预测结果进行评估验证,包括:

将测试集中的所述第二测试数据输入至训练好的所述股票预测模型,得到预测结果;

判断预测结果所指示的该样本的预测涨跌结果,如果是涨,则将该样本设置标签1,如果是跌,则将该样本设置标签0;

判断该样本的实际涨跌结果,如果是涨,则将该样本设置标签1,如果是跌,则将该样本设置标签0;

根据该样本的实际涨跌结果与预测涨跌结果,将样本分为TP、FN、FP和TN四类,其中,TP用于指示该样本的实际涨跌结果与预测涨跌结果都为正类的个数,FN用于指示该样本的实际涨跌结果为正类、预测涨跌结果为负类的个数,FP用于指示该样本的实际涨跌结果为负类、预测涨跌结果为正类的个数,TN用于指示该样本的实际涨跌结果与预测涨跌结果都为负类的个数。

通过如下公式计算所述股票预测模型的评价指标:

其中,Accuracy为准确率,Precision为精确率,Recall为召回率。

在一个具体的实施例中,对本发明提供的一种基于LSTM神经网络的股票价格预测方法的股票预测模型进行评估验证的实验选取1998年1月9日至2019年5月31日的AAON股票日数据为例进行研究,预测第2日收盘价涨跌趋势。数据特征属性为收盘价、开盘价、最高价、最低价、交易量,对数据进行插值排序、降噪、归一化操作,建立前述LSTM模型、并与支持向量机(SVM)、随机森林(Random forest)模型进行对比实验。股票预测方法选取逐点预测方法。

1998年1月9日至2019年5月31日的AAON股票日数据共计5383条,其中85%作为训练数据,15%作为测试数据,LSTM模型以前述参数设置进行实验。实验结果如表1所示:LSTM模型各项评估指标均高于SVM、随机森林。可见,本文改进后的LSTM模型预测效果优于其他模型。

表1不同模型评估指标对比表

经过多次调参及优化,如图9所示,图9为本发明提供的一种基于LSTM神经网络的股票价格预测方法对于AAON股票预测结果示意图,其准确率提高到了69%。

在一个具体的实施例中,训练完所述股票预测模型后,将所述股票预测模型存入saved_models文件夹中,以便在使用时可直接加载该文件夹中保存的所述股票预测模型文件,从而节省训练模型的时间。

应当理解的是,本申请实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请实施例的范围仅由所附的权利要求来限制。

以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号