基于LSTM神经网络的股票价格预测研究

2021-05-07 10:44矫丰霞
数字技术与应用 2021年3期
关键词:收盘价股票价格时刻

矫丰霞

(中国石油大学胜利学院,山东东营 257000)

0 引言

股票市场作为国家经济的组成部分,在经济发展中发挥着重要作用,其变化趋势更被认为是经济市场的“晴雨表”。随着市场经济的发展和投资理念的深化,越来越多的人开始投身于股票市场,同时股价的变化趋势也成为股民关注的焦点。但是股票市场数据量大、波动性强,导致预测股票价格具有极大挑战性。

股票价格预测采用的传统方法包括基本面分析和技术分析[1],这些方法大多针对于线性模型,但由于股票市场噪声高、波动性强等特点,使得统计分析方法不能很好的抓住股票非线性波动的特点,造成预准确率不高。随着机器学习的快速发展与广泛应用,神经网络、支持向量机和决策树等也被众多学者应用到股票价格预测中。Al-Fattah[2]利用遗传算法和人工神经网络对油价进行预测,实验结果表明该模型具有较高的预测准确率。辛治远[3]将最小二乘支持向量机模型应用于股市预测,将此方法与时间序列分析作对比,结果表明最小二乘支持向量机有着更高的预测精度和训练效率。相比于机器学习,深度学习模型具有更好的非线性逼近能力,更适用于股价时间序列的预测。

图1 LSTM记忆单元示意图Fig.1 Schematic diagram of LSTM memory unit

LSTM神经网络是一种新型递归神经网络模型,可以进一步解决RNN神经网络中存在的梯度下降快、无法得到最优解的问题,LSTM神经网络已成为能有效处理与时间序列相关的学习模型,因此具有更加广阔的应用前景。本文提出了基于LSTM的股票价格预测模型,以股票市场的沪深300指数为研究对象,验证了该模型的有效性。

1 LSTM神经网络

由Hochreiter[4]等人提出的长短时记忆(LSTM)循环神经网络是一种特殊的循环神经网络,RNN通过内部多循环回路保证数据的持续传递,通过反向传播的方式不断调整权重,当传播到激活函数时,斜率会变得极大或极小,就会出现梯度爆照或梯度消失的问题。LSTM是为解决这一问题而出现的,LSTM结构中不仅有外部的RNN循环,还有内部的自循环,在自循环中增加了输入门(input gate)、输出门(output gate)和遗忘门(forget gate)用于控制细胞状态,这种结构也使得LSTM能更好的控制信息流动。

LSTM主要由记忆单元、输入门、输出门和遗忘门组成,记忆单元用于存储历史数据,输入门用于控制当前时刻的输入数据,遗忘门用于控制上一时刻的历史数据,输出门用于控制当前时刻的输出数据,通过这样的结构可以忽略掉不需要的数据并存储需要的数据,其单元结构如图1所示。

设Xt为t时刻的输入数据,ht为t时刻的隐藏层状态,LSTM单元的更新步骤如下:

(2)计算输入门it的值,it的值取决于当前时刻输入数据xt、上一时刻输出数据ht-1,其中Wi为输入门层的权值向量,bi为输入门层的偏置参数,σ为激活函数。

(3)计算遗忘门的值ft,根据上一时刻的输出和当前时刻的输入产生一个数值(0~1),ft代表上一个记忆单元中需要遗忘的信息权重。其中,σ为激活函数,Wf为遗忘门层的权值向量,bf为遗忘门层的偏置参数。

(4)计算当前时刻记忆单元状态值ct,ct值的更新在忘记门和输入门的控制下由自身状态ct-1和前时刻候选记忆单元状态值共同作用。

(5)计算输出门的值ot,其中σ为激活函数,Wo为输出门层的权值向量,bo为输出门层的偏置参数。

(6)最后计算LSTM的单元输出值ht

2 建立模型与处理数据

利用LSTM模型对股票价格的波动情况进行预测,方法是利用学习样本,构建输入数据和输出数据之间的非线性映射关系,在此关系的基础上输入新的数据,得到的输出数据就是预测结果。本文将LSTM模型应用于沪深300股指收盘价的预测,样本选取时间为2012年1月17日至2019年6月28日。

表1 指标选取Tab.1 Index selection

2.1 输入向量的选择

模型的预测结果与输入向量的选择有关,影响股票价格的因素众多,本文从基本行情指标和技术指标中共选取7个指标(如表1所示),其中基本行情指标包括开盘价、收盘价、最高价、最低价以及成交量,技术指标包括移动平均线(MA)、指数平滑异同平均线(MACD)。

本文将样本数据分为三类,即训练集、验证集和测试集(如表2所示)。训练集用于训练LSTM模型,验证集用于调整神经网络结构来确定参数,测试集用于评估模型的预测能力。

由于时间序列数据可能存在噪声,因此利用小波变换去除噪声以清洗数据。同时,由于各项指标的数量级不同,为消除数据量级上的差距,需要对样本特征进行标准化处理,将数据缩放到0和1之间。

2.2 模型参数的选择

本文基于前9日的特征向量对第10日的收盘价进行预测,时间序列长度为9。由表1可知,选取的特征向量数为14,因此,输入层的神经元个数为9*14。

LSTM神经网络中包含一个隐藏层,当隐藏层中神经元的数量过少时,会出现欠拟合的情况,当神经元的数量过多时,会出现过拟合的情况。因此,神经元数量的确定关系着模型的预测能力,经过实验,选取隐藏层神经元的个数为76。在深度学习中,学习率决定了目标函数的收敛效果,适当的学习率能使目标函数在合适的时间内收敛到目标最小值,经过实验,设置的学习率为0.001。

模型中优化器的选择同样重要。本文参考学者SANG C等人[5]的研究(如表3所示),当数据量相等时,Adam优化器在训练时间以及熵损失上都具有较好的性能。Adam优化器计算效率高,所以适合用于较大数据量的股票数据。

基于LSTM的股票价格预测模型的具体参数如表4所示。

3 实验与结果

利用python基于Keras框架进行实验,模型预测结果如图2、表5所示。图2中实线表示股票收盘价的实际值,虚线表示股票收盘价的预测值,横坐标为时间,纵坐标为股票价格。

表2 样本数据划分说明Tab.2 Description of sample data division

表3 不同优化器的比较Tab.3 Comparison of different optimizers

表4 模型参数Tab.4 Model parameters

表5 模型的评价指标Tab.5 Evaluation indicators of the model

图2 模型预测值与真实值的对比图Fig.2 Comparison of model predicted value and true value

用于评价模型性能的指标有均方根误差(RMSE)和平均绝对误差(MAE),公式如下:

其中,xprdict,i代表预测值,xreal,i代表实际值,N代表预测窗口。

从图2中可以看到,通过LSTM模型预测的收盘价和实际的收盘价走势大致一致,且拟合情况较好。从表5中的数据可以看到,模型的均方根误差和平均绝对误差都相对较低。由实验结果可知,本文所建立的LSTM模型对股票价格的预测有较好的预测效果。

4 结语

预测股票价格的走势一直都是股票市场研究的热点,本文提出一种基于LSTM神经网络的股票价格预测模型,并用沪深300指数进行实验,对沪深300指数的收盘价进行预测,实验结果表明该模型具有较高的预测准确度。

猜你喜欢
收盘价股票价格时刻
冬“傲”时刻
基于GARCH族模型的重庆啤酒股票价格波动研究
捕猎时刻
股神榜
论股票价格准确性的社会效益
我国股票价格指数与“克强指数”的关系研究
一天的时刻
基于多元回归与技术分析的组合股票价格预测