当前位置:   article > 正文

量化研究分享:使用LSTM模型预测股价_lstm股价预测

lstm股价预测

hello,我是毛豆。

上次毛豆以涨停双响炮为例,介绍了如何通过python对股票进行分钟级别的监控:

量化研究分享:如何用python抓涨停双响炮

后面收到小伙伴的私信,说最近人工智能很火,问毛豆有没有可能用人工智能来炒股呢?

其实,用AI模型炒股这件事情早已广泛存在,大量的量化机构都在研究和使用,这里面主要涉及到机器学习、深度学习技术,想要深入研究并不是一件容易的事情。为了满足大家的好奇心,今天毛豆就以时序分析中常用的LSTM模型为例,来和大家分享一下机器学习技术是如何应用于股价预测的。

一、LSTM模型

首先说一下为什么要使用LSTM模型来预测股价。一方面,股价预测是高度非线性的,这就要求模型能够处理非线性问题;另一方面,股价具有时间序列的特性,适合使用循环神经网络。因此相比于众多ML和DL模型,LSTM在这个问题上有着天然的优势。

然后介绍一下今天的主角,LSTM模型。LSTM的全称是Long Short Term Memory,是循环神经网络(RNN)的一种,顾名思义,它具有记忆长短期信息的能力。长期困扰传统神经网络结构的一个基本问题是解释“信息”和“上下文”相互依赖的输入序列,在这个问题上RNN能起到一定的作用,但是当输入序列过长时RNN的权重矩阵要循环相乘,所以会产生梯度消失和梯度爆炸的问题,因此RNN不能解决长期依赖问题,这时候LSTM就可以派上用场了。

LSTM模型的1个神经元包含了1个细胞状态(cell)和3个门(gate)机制,三个门分别是输入门、遗忘门和输出门。其中输入门决定将哪些新信息添加到细胞状态,遗忘门负责单元状态的权重和激活函数,输出门决定输出什么,它决定了后面隐藏状态的值。LSTM的核心是细胞状态,它贯穿整个细胞却只有很少的分支,这样能保证信息不变的流过整个RNN。下面是 LSTM 神经元的典型内部工作图:

其中C(t-1)为上一时刻的细胞状态值,C(t)为这一时刻的细胞状态值;h(t-1)为上一时刻的输出,h(t)为这一时刻的输出。参数更新方法主要是反向传播和链式求导,具体公式在这里不做阐述。由于存储单元中编码的值不会重复更新,因此在使用反向传播训练时梯度不会消失,从而使LSTM能够克服梯度消失问题。

总的来说,信息按照一套规则进入LSTM网络,只有经过LSTM验证的信息才会被保留,否则它将被遗忘门删除。这种单元状态是保持网络和输入的长期记忆和上下文的原因。

LSTM模型就介绍到这里,接下来介绍如何通过LSTM模型实现股价预测。

二、通过LSTM模型实现股价预测

0. 环境准备

导入数据分析常用的包:

  1. #基础数据分析包
  2. import os
  3. import pandas as pd
  4. import numpy as np
  5. import pickle
  6. import jqdatasdk
  7. from jqdatasdk import *
  8. import mpl_finance as mpf
  9. from matplotlib.dates import date2num
  10. import matplotlib.pyplot as plt
  11. import matplotlib.ticker as ticker
 

导入深度学习keras框架。多年前毛豆做深度学习模型的时候,keras还是独立的包,其后端(底层框架)是可以选择tensorflow或Theano的,但现在keras已经集成到tensorflow中了,因此直接用tf.keras就好了:


                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/454771
推荐阅读
相关标签
  

闽ICP备14008679号