您好, 访客   登录/注册

基于卷积和循环神经网络模型融合的股票开盘价预测研究

来源:用户上传      作者:

  摘要:本文提出了一种利用股票价格和相关新闻数据,基于卷积和循环神经网络模型融合的股票开盘价预测研究方法。针对股票开盘价预测的问题,考虑到股票相关信息的时序性以及新闻影响的持续性特点后,首先使用向量表示方法将新闻数据转换成向量,再利用卷积神经网络模型提取出股票相关的新闻文本特征,同时使用循环神经网络模型对股票价格数据进行训练,最后将新闻特征向量和价格训练后得到的向量合并,得到股票信息的低维向量表示并输入到深度神经网络中,利用深度神经网络对股票开盘价进行预测。本文实验中使用的数据是美股道琼斯指数与相关新闻,实验结果表明,本文所提出的方法在股票开盘价预测上具有明显的优越性。
  关键词:股票开盘价预测;卷积神经网络;循环神经网络;深度学习
  0引言
  金融市场是国家金融体系的重要部分,对于一、二级市场的参与者来说股票价格的分析预测是其做出正确判断与决定的重要参考,因此预测其价格也让大量的专家学者为之着迷。在全球化的股票市场中,市场的行情与国家经济大环境、法律法规、企业经营情况、投资者信心、新闻舆情等都有所关联,股市行情具有高度的波动性与不确定性,使其成为金融与计算机领域研究中的一大难题。
  由于公司报表、报刊和舆论媒体等文本信息的快速增长与积累,可用于分析的数据样本也在逐渐丰富,数据数量也在不断地增加。在股票价格的预测中,如何使用文本数据来让模型的表现得到提升,在近些年的股市预测中一直是关注的热点。资本市场相关的数据信息通常可以反应股票价格波动,并且数据信息分析相比传统的K线分析更具有广度和深度。同时,随着AI领域的持续发展,机器学习和深度学习等人工智能技术在众多研究领域和实际场景中得到了广泛的应用,自然语言处理领域也因为深度学习的兴起得到了发展和进步,这些技术上的突破均使得股票预测模型的建立有了更大的上升空间。
  在过往的研究中,线性回归、遗传算法、SVM、决策树这些机器学习算法以及深度学习网络模型都被大量用在股票预测的研究之中。在文献中作者将多种机器学习算法与卷积神经网络(CNN)在股票预测中的表现进行了比较,证明了卷积神经网络模型在股票预测上的准确率优于传统的机器学习算法。而在文献中,作者利用tensorflow框架搭建了多层神经网络(MLP)来对股票的价格进行预测,最终通过与传统的BP神经网络方法对比,说明了合适的神经网络结构有利于提高网络模型预测的准确率,同时还能有效减少预测耗时。
  基于深度学习在股票预测中的优良表现和循环神经网络在序列数据预测中的特殊性,本文提出了一种基于卷积和循环神经网络模型融合的股票开盘价预测研究方法。在股票的数据选取方面包含了历史价格和相关新闻,新闻的特征提取用到了word2vec和CNN方法。在训练模型上,由于股票价格是时间序列数据,具有时序性,同时新闻对股价的影响具有持续性,所以本文采用的训练模型是卷积神经网络和循环神经网络。
  1相关技术
  1.1Word2Vector
  在神经网络等机器学习和深度学习模型中,无法直接处理字符串类型的数据,因此需要将其转换为纯数字信息。在转换过程中,应尽可能保留数据原始信息。
  Word2Vector与One-hot类似,是一种将文本数据转换为矢量的模型,广泛用于自然语言处理(NLP)中。One-hot对文本中的所有单词进行计数,然后对于每个词汇表编号,为每个单词创建N维向量。向量的每个维度代表一个单词,因此对应的数字位置中的维度值为1.其它维度均为0。虽然此方法保留原始单词信息,但在文本数量多的情况下维度太高,而且不能反映两个词之间的关系。例如,猫和小猫明显比猫和珊瑚更接近,但其却在单词向量表示中无法得到体现。相比于One-hot的编码方式,Word2Vector通过学习文本,使用单词向量来表示单词的语义信息,通过将单词向量“嵌入空间”(嵌入就是将原始单词所在的空间映射到新空间),达到语义相似的单词之间距离接近的目的。这样便可以降低维度并反映单词和单词之间的关系。
  在Word2Vector方法中,主要有Skip-Gram和CBOW两种模型。从直观上理解,CBOW的做法是,将一个词所在的上下文中的詞作为输入,而词本身作为输出。Skip-Gram的做法和CBOW刚好相反,其将一个词所在的上下文中的词作为输出,而词本身作为输入。具体情况如图1所示。
  1.2卷积神经网络(CNN)
  卷积神经网络(CNN)在计算机视觉领域取得了极大的进展,与此同时,CNN开始应用于自然语言处理(Natural Language Processing)的各种任务,也逐渐在自然语言处理领域占有了重要的地位。
  之所以用CNN来进行自然语言处理的工作,是因为其解决了传统词袋模型和连续词袋模型句子中词语的顺序被忽略、训练参数非常大的问题。在图像中卷积核通常是对图像的一小块区域进行计算,而在文本中,一句话所构成的词向量作为输入。每一行代表一个词的词向量,所以在处理文本时,卷积核通常覆盖上下几行的词,所以此时卷积核的宽度与输入的宽度相同。通过这样的方式,就能够捕捉到多个连续词之间的特征,并且能够在同一类特征计算时共享权重。
  1.3循环神经网络
  循环神经网络(RNN)提出后,被广泛用于分析预测序列数据,但经过大多数学者研究发现,随着时间的推移RNN模型会存在忘记之前状态信息的问题,之后便提出了长短期记忆循环神经网络(LSTM)。LSTM是一种时间递归的神经网络,由于其特殊的模型结构,使得LSTM具有适合处理和预测时间序列中间隔和延迟较长的重要事件的特性。LSTM的网络结构采取控制门的机制,其核心结构是由3个门构成,分别是遗忘门、输入门和输出门。LSTM的关键在于运行在上方的细胞状态,这是其能保留记忆的原因。具体结构如图2所示。
  LSTM模型的计算原理如下:   得到了新的细胞状态之后,就可以进行输出门值的计算,公式如下:
  2模型构建
  本文所使用的模型是基于CNN和LSTM的融合模型。因为股票历史交易信息具有时序性,是属于时间序列数据,同时相关新闻对股票价格的影响具有持续性。综合考虑以上几点,本文采用CNN和LSTM作为训练数据的主要模型。模型框架如图3所示。
  2.1输入层
  该模型的输入层由两部分组成:每天的新闻标题(News),以及过去连续T天的交易信息(Price)。
  2.2隐层
  模型的隐层分为2部分:首先将清洗后的新闻标题进行词向量嵌入,将得到的新闻数据输入到CNN模型中并进行2次卷积和池化的操作,之后经过Flatten层压平,再进行全连接的计算,从而得到新闻数据的特征向量。同时,另一边的LSTM模型接收股票价格的数据,经历3个隐藏层的计算之后把数据输入到全连接层,最终得到价格的特征向量。最后,将两个模型得到的特征向量进行合并输入到新的全连接网络模型中,并使用Dropout方法来防止模型出现过拟合问题,
  2.3输出层
  因为本文研究的目标是股票每日的开盘价格,属于回归问题,所以最后网络模型的输出结果为一维向量,
  3实验
  3.1数据集
  本文所选用的数据是美股道琼斯指数和相关新闻的数据集,包括从2008年8月8日到2016年7月1日近八年的股票交易信息和相关新闻数据,其中新闻数据共有73609条。实验中将股票的数据按照交易时间排序,其中前70%的股票数据作为训练集,后30%的数据作为测试集。
  3.2模型实现
  本实验在Windows系统环境下,使用Python3.6作为编程语言,开发工具使用JetBrains PyCharm和Anaconda3.运用Keras构建网络模型结构,底层应用Tensorflow框架。实验相关参数设置见表1。
  3.3实验流程
  使用卷积和循环神经网络融合模型进行股票开盘价预测的实验具体如下:
  (1)对新闻文本进行预处理操作,如:分词、去除停用词等:
  (2)应用Word2Vec模型生成16维度的向量矩阵(词向量嵌入);
  (3)将向量输入到CNN模型中,进行特征提取操作:
  (4)将股票价格数据输入到LSTM模型中,进行特征提取操作:
  (5)将新闻特征向量和价格特征向量进行合并;
  (6)利用深度神经网络训练合并后的向量;
  (7)生成股票开盘价的真实值和预测值之间的对比图像,计算出模型预测的误差值。
  3.4实验结果
  (1)首先进行的是仅用股票价格数据作为唯一输入特征的实验。其实验数据、训练集、测试集划分方式和所有的实验参数都与之后进行的实验相同。本实验主要是探索单一的股票价格数据输入到LSTM模型中的预测表现情况。具体结果如图4所示。
  从图4的结果可以直观看出:模型的预测值和真实值存在一定的差距,并非十分理想,预测值普遍低于真实值:
  (2)其次就是本文所提出的方法:利用股票价格和相关新闻数据,基于深度学习的股票开盘价预测。本实验主要是探索在添加相关新闻的情况下,LSTM模型的预测情况是否优于单一的价格预测。具体结果如图5所示,
  由实验结果可以看出,利用股票价格和相关新闻的数据进行股票开盘价预测时,模型的精准度得到了很大地提升。其中RMSE与MAE分别减少了近60和65不等,MAPE也有所下降,说明本文的方法对股票开盘价的预测准确度更高。因此可以说明,股票历史交易信息和相关新闻同时决定了股票的开盘价格。在模型计算复杂度上,CNN和LSTM网络采用权重共享的方式,大大减少了网络中需要学习的参数个数,使其计算复杂度也随之下降。
  4结束语
  对于股票投资者来说,如果能够知道未来的大盘价格和走势,就能为其股票选择提供有意义的参考价值。本文提出了一种利用股票价格和相关新闻数据,基于深度学习的股票开盘价预测方法。通过对股票相关新闻进行处理并利用卷积神经网络模型对新闻特征进行提取,充分利用所获取的數据信息,最后再将新闻特征和价格特征进行合并、拼接,共同对股票的开盘价进行预测。通过与单一的价格作为输入进行预测的实验进行分析和比较,证明本文所提出的股票开盘价预测方法有明显的优越性。
  在今后的工作中,还会考虑到以下几个方面的改进:首先本文用到的数据是美股道琼斯指数和相关新闻数据,道琼斯指数是大盘指数,今后会考虑用各支股票的数据进行学习和训练并进行开盘价的预测:其次,本文的重点是对新闻特征进行建模,下一阶段尝试融入更多金融专业知识对股价做特征提取与计算,让NLP技术和金融市场更好地衔接起来。
转载注明来源:https://www.xzbu.com/8/view-15125500.htm