两种基于深度网络的股票价格预测方法研究

2024-06-03 09:11:36孙震宇
现代信息科技 2024年6期

收稿日期:2023-02-26

基金项目:国家自然科学基金项目(62266055)

DOI:10.19850/j.cnki.2096-4706.2024.06.020

摘  要:股票是一种重要的投资渠道,如何更准确地预测股票价格是一个热门的研究课题。由于股票数据的非线性、非平稳以及前后相关等复杂特点,传统的股票价格预测方法已经到达性能瓶颈。随着深度学习方法的兴起,LSTM和GRU等深度神经网络预测模型受到了极大的关注。基于厦门港务股票和上证指数的历史交易数据,利用了LSTM和GRU两种模型对收盘价进行预测研究,通过5个指标MAE、MSE、RMSE、MAPE和R2给出了模型评价。

关键词:股票价格预测;LSTM模型;GRU模型

中图分类号:TP183      文献标识码:A  文章编号:2096-4706(2024)06-0086-04

Research on Two Stock Price Forecasting Methods Based on Deep Network

SUN Zhenyu1,2

(1.School of Mathematics, Yunnan Normal University, Kunming  650500, China;

2.Yunnan Key Laboratory of Modern Analytical Mathematics and Applications, Kunming  650500, China)

Abstract: Stock is an important investment channel, how to forecast stock price more accurately is a hot research topic. Due to the complex characteristics of stock data, such as non-linearity, non-stationarity and before and after correlation, traditional stock price forecasting methods have reached the performance bottleneck. With the rise of Deep Learning methods, deep neural network forecast models such as LSTM and GRU have received great attention. Based on the historical trading data of Xiamen Port Stock and Shanghai Stock Index, LSTM and GRU models are used to forecast the closing price. The model evaluation is given by 5 indexes of MAE, MSE, RMSE, MAPE and R2.

Keywords: stock price prediction; LSTM model; GRU model

0  引  言

股票是一种重要的投资渠道,它的价格走势是人们关注的焦点,但股票的价格走势是复杂多变的,想要准确预测并非易事[1],如何更准确地预测股票价格是国内外学者研究的热门课题。对于投资者而言,股票价格预测结果越准确,风险就越低,收益就越大。

股票价格预测的方法目前有很多,传统的股票价格预测方法有ARIMA[2]、ARMA[3]和GARCH [4]等模型,后来又出现了支持向量机[5]和随机森林[6]等机器学习方法,这些方法能较好地解决了股票数据非线性问题,弥补了传统的股票价格预测方法在处理非线性数据时的不足,但在处理股票数据的时序相关性方面仍存在局限性。随着深度学习的发展,最近涌现了许多深度神经网络模型来对股票价格进行预测,例如LSTM(Long Short Term Memory networks)[7]、GRU(Gated Recurrent Unit)[8]等深度神经网络模型。在预测具有非线性趋势和序列相关性的数据问题上,深度神经网络方法可以达到更高的精度,突破了传统机器学习方法的局限性。为了验证深度神经网络模型在股票价格预测方面的性能,本文以厦门港务股票和上证指数的历史交易数据为例,建立了LSTM和GRU两个深度神经网络预测模型,最后通过5个指标MAE、MSE、RMSE、MAPE和R2給出了模型评价。

1  模型原理和方法

1.1  LSTM模型原理

LSTM神经网络,全称长短期记忆网络[9],是一种循环神经网络的变体。如图1所示,LSTM具有一种重复神经网络模块的链式形式,这个重复模块中包含了四个交互的层,三个sigmoid激活函数和一个tanh激活函数,并以特殊的方式进行交互。

在图1中,σ表示的是sigmoid激活函数,它和tanh激活函数的作用都是帮助调节流经网络值;二者不同之处在于sigmoid激活函数把输出值压缩到[0,1]区间内,而tanh激活函数把输出值压缩到[-1,1]区间内;这样的设置有助于更新或忘记上一状态信息[10]:1)因为任何数乘以0都得0,那么这部分信息就会遗忘;2)任何数乘以1都得到它本身,那么这部分信息就会被保存下来。LSTM神经网络的传播过程可分为以下4步:

第1步:判别从上一状态中丢弃了哪些信息,这个决定通过一个称为“忘记门”的结构完成。忘记门读取上一个输出ht-1和当前输入xt,通过sigmoid激活函数进行非线性映射后,输出一个向量ft,其计算表达式为:

ft = ( Wf [ht-1,xt] + bf )

第2步:决定什么样的新信息被存放在下一状态中,这个决定通过一个称为“输入门”的结构完成。该输入门包含两个部分:第一部分是读取上一个状态输出ht-1和当前输入xt,通过sigmoid激活后输出一个向量it;第二部分是通过一个tanh激活函数创建出一个新的候选值向量 ,将其加入当前状态中,其计算表达式为:

第3步:状态更新:将Ct-1更新为Ct。首先将上一状态Ct-1与ft相乘,接着再加上 ,得到的结果就是新的候选值Ct,其计算表达式为:

第4步:确定整个模型输出的值,这个决定通过一个称为“输出门”的结构完成。输出门首先读取上一个输出ht-1和当前输入xt,然后通过一个sigmoid激活来确定输出哪些值从而得到向量ot;接着将新状态Ct通过一个tanh激活进行处理,并将它和通过sigmoid激活函数确定的输出相乘,最终得到整个模型输出的值ht,其计算表达式为:

图1  LSTM神经网络结构图

1.2  GRU模型原理

GRU神经网络是对LSTM神经网络的改进,它比LSTM神经网络的参数更少、结构更简单。GRU神经网络通过引入重置门(Reset Gate)rt与更新门(Update Gate)zt去选择信息。如图2所示,GRU神经网络的门控状态来源于前一刻的信息状态ht-1和当前时刻的信息状态xt。

图2  GRU神经网络结构图

GRU神经网络的传播过程可分为以下3步:

第1步:通过上一状态ht-1和当前节点的输入xt来获取两个门控状态:rt为重置门控(reset gate),zt为更新门控(update gate)[12],计算表达式为:

第2步:使用重置门rt对上一时刻的状态信息ht-1实现信息状态的重置从而得到重置之后的数据 ,将其与当前时刻信息xt进行拼接,再通过一个tanh激活函数将数据缩放至[-1,1]范围,从而得到当前时刻的候选状态 ,其计算表达式为:

第3步:通过更新门zt的遗忘和记忆作用得到当前时刻的状态ht,其计算表达式为:

其中  表示对上一时刻的状态ht-1的选择性遗忘,即将ht-1中一些不重要的信息舍弃; 表示对当前时刻的候选状态  的选择性记忆,即记住 中一些重要的信息;即当前时刻的状态ht由忘记上一时刻的状态ht-1中的某些信息,并加入当前候选状态  中的某些信息而得到。

2  股票预测应用

2.1  模型设置

LSTM模型使用的Python中的PyTorch学习库进行搭建,模型单特征输入的输入层数input_size为1,多特征输入的输入层数input_size为5,隐藏层数hidden_size设置为16,输出层数output_size设置为1,层数num_layers设置为1,时间步长Sequence设置为5,即用前五天的数据来预测第六天的数据,学习率设置为0.001,Batch_size训练批次大小设置为12,Epoch训练次数设置为1 000。GRU模型也使用的PyTorch学习库进行搭建,设置模型单特征输入的输入层数input_size为1,多特征输入的输入层数input_size为5,隐藏层数hidden_size设置为16,输出层数output_size设置为1,层数num_layers设置为1,时间步长Sequence设置为5,学习率设置为0.001,Batch_size训练批次大小设置为12,Epoch训练次数设置为1 000。

2.2  实验数据及模型评价指标

本次实验使用的两个数据集分别是:1)厦门港务股票2020年10月1日至2022年10月20日之间的历史交易数据;2)上证指数2021年3月31日至2023年4月12日之间的历史交易数据。每个数据集选取收盘价作为单特征输入,同时选取开盘价、收盘价、最高价、最低价和交易量共5个指标作为多特征输入。本次实验将数据集以7:3的标准划分为训练集和测试集,检查是否存在异常值和缺失值,对数据分量按如下公式进行归一化处理:

其中xmax为样本分量最大值,xmin为最小值;归一化后的数据值在[0,1]内。

作为神经网络预测模型性能评价,选取如下评价指标:

MAE平均绝对误差指标为:

MSE均方误差指标为:

RMSE均方根誤差指标为:

MAPE平均绝对百分比误差指标为:

R2拟合优度指标为:

其中m为数据集的长度,yi为在i时刻的真实值, 为在i时刻的预测值。

2.3  实验结果及分析

利用LSTM和GRU两个深度神经网络模型分别对厦门港务和上证指数的股票收盘价进行预测,分别画出股票价格的真实值(true)、LSTM模型的预测值和GRU模型的预测值的折线图,结果如图3~4所示。

图3  厦门港务股票价格的预测结果

图4  上证指数股票价格的预测结果

从图3~4可看出,LSTM和GRU两个深度神经网络模型的预测值与股票价格的真实值是较为贴合的,且预测值与真实值之间的误差较小。

为了对LSTM和GRU两个模型的预测能力进行更充分的评价,下面分别计算MAE、MSE、RMSE、MAPE和R2指标值,如表1~4所示。

表1  多特征输入时厦门港务股票价格预测评价结果

预测模型 MAE MSE RMSE MAPE R2

LSTM 0.056 6 0.006 7 0.081 7 0.121 5 0.706 7

GRU 0.050 1 0.005 5 0.074 0 0.107 6 0.759 7

表2  单特征输入时厦门港务股票价格预测评价结果

预测模型 MAE MSE RMSE MAPE R2

LSTM 0.061 0 0.007 1 0.084 2 0.125 5 0.688 5

GRU 0.055 2 0.006 0 0.077 6 0.115 4 0.735 5

表3  多特征输入时上证指数股票价格预测评价结果

预测模型 MAE MSE RMSE MAPE R2

LSTM 0.027 2 0.001 3 0.035 4 0.157 6 0.921 4

GRU 0.029 9 0.001 5 0.038 3 0.209 9 0.907 8

表4  單特征输入时上证指数股票价格预测评价结果

预测模型 MAE MSE RMSE MAPE R2

LSTM 0.025 3 0.001 1 0.032 9 0.174 2 0.932 2

GRU 0.026 5 0.001 2 0.034 4 0.187 7 0.925 8

由表1~4可观察到:1)LSTM和GRU两个模型的在指标MAE、MSE、RMSE和MAPE上的值都接近于0,并且在拟合优度指标R2上的值都接近于1;

2)两个模型之间各项评价指标的差距都很小;3)在厦门港务股票数据上,多特征输入时的评价结果优于单特征输入时评价结果,而在上证指数股票数据上,单特征输入时的评价结果优于多特征输入时的评价结果。

3  结  论

股票价格受多方面因素影响,包括宏观经济、政治因素、公司运营和投资者的信心等,因此很难做到准确预测。随着近年来深度学习的发展,本文尝试使用LSTM和GRU两个典型深度神经网模型来进行股票价格预测。通过5个常用的MAE、MSE、RMSE、MAPE和R2评价指标值,我们获得了一些经验结论:1)LSTM和GRU的预测效果都较好,这表明循环神经网络善于捕捉时间序列中的相关信息;2)LSTM和GRU的在各评价指标上相差较小,这与二者的模型结构相似有关;3)对于波动较大的厦门港务股票数据,多特征输入时的评价结果优于单特征输入时评价结果,这表明遇到波动较大的数据集时多特征输入更有效;对于波动较小的上证指数股票数据,单特征输入时的评价结果优于多特征输入时评价结果,这表明遇到波动较小的数据集时模型不需要太多的特征输入来获得信息。

参考文献:

[1] SINGH N,KHALFAY N,SONI V,et al. Stock Prediction Using Machine Learning a Review Paper [J].International Journal of Computer Applications,2017,163(5):36-43.

[2] 吴玉霞,温欣.基于ARIMA模型的短期股票价格预测 [J].统计与决策,2016(23):83-86.

[3] 杨琦,曹显兵.基于ARMA-GARCH模型的股票价格分析与预测 [J].数学的实践与认识,2016,46(6):80-86.

[4] 徐枫.股票价格预测的GARCH模型 [J].统计与决策,2006(18):107-109.

[5] 彭丽芳,孟志青,姜华,等.基于时间序列的支持向量机在股票预测中的应用 [J].计算技术与自动化,2006(3):88-91.

[6] 张潇,韦增欣.随机森林在股票趋势预测中的应用 [J].中国管理信息化,2018,21(3):120-123.

[7] 乔若羽.基于神经网络的股票预测模型 [J].运筹与管理,2019,28(10):132-140.

[8] 谷丽琼,吴运杰,逄金辉.基于Attention机制的GRU股票预测模型 [J].系统工程,2020,38(5):134-140.

[9] 杨丽,吴雨茜,王俊丽,等.循环神经网络研究综述 [J].计算机应用,2018,38(S2):1-6+26.

[10] 尹宝才,王文通,王立春.深度学习研究综述 [J].北京工业大学学报,2015,41(1):48-59.

[11] 张军阳,王慧丽,郭阳,等.深度学习相关研究综述 [J].计算机应用研究,2018,35(7):1921-1928+1936.

[12] 郑远攀,李广阳,李晔.深度学习在图像识别中的应用研究综述 [J].计算机工程与应用,2019,55(12):20-36.

作者简介:孙震宇(1999—),男,汉族,江苏镇江人,本科,研究方向:机器学习。