其他分享
首页 > 其他分享> > 如何预测股票分析--长短期记忆网络(LSTM)

如何预测股票分析--长短期记忆网络(LSTM)

作者:互联网

上一篇中,我们回顾了先知的方法,但是在这个案例中表现也不是特别突出,今天介绍的是著名的l s t m算法,在时间序列中解决了传统r n n算法梯度消失问题的的它这一次还会有令人杰出的表现吗?

 

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

LSTM 算法广泛应用于序列预测问题中,并被证明是一种非常有效的方法。它们之所表现如此出色,是因为LSTM能够存储重要的既往信息,并忽略不重要的信息。

LSTM有三个门:

要更详细地了解LSTM及其体系结构,可以阅读下面的文章:

现在,让我们将LSTM实现为一个黑盒,并检查它在特定数据上的性能。

实现

#importing required libraries 导入必要的库函数

from sklearn.preprocessing import MinMaxScaler

from keras.models import Sequential

from keras.layers import Dense, Dropout, LSTM

 

#creating dataframe 搭建p d的数据框架,利用循环填充框架的内容

data = df.sort_index(ascending=True, axis=0)

new_data = pd.DataFrame(index=range(0,len(df)),columns=['Date', 'Close'])

for i in range(0,len(data)):

    new_data['Date'][i] = data['Date'][i]

    new_data['Close'][i] = data['Close'][i]

 

#setting index 设定数据的索引,刨除date列

new_data.index = new_data.Date

new_data.drop('Date', axis=1, inplace=True)

 

#creating train and test sets 划分训练集测试集

dataset = new_data.values

 

train = dataset[0:987,:]

valid = dataset[987:,:]

 

#converting dataset into x_train and y_train 将两个数据集归一化处理

scaler = MinMaxScaler(feature_range=(0, 1))

#总数据集归一化

scaled_data = scaler.fit_transform(dataset)

 #确定正式训练集测试集,大小是在刚刚划分的数据集合中,按60:1的比例划分,这里的划分不能算是k折交叉验证,知道的朋友麻烦留言解答一下,感谢

标签:长短期,60,train,记忆,test,new,LSTM,data
来源: https://www.cnblogs.com/xingnie/p/12232237.html