Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性

原文链接:http://tecdat.cn/?p=26562


该项目包括:

  • 自 2000 年 1 月以来的股票价格数据。我们使用的是 Microsoft 股票。
  • 将时间序列数据转换为分类问题。
  • 使用 TensorFlow 的 LSTM 模型
  • 由 MSE 衡量的预测准确性


GPU 设置(如果可用)


gpus = tf.config.experimental.li


读取数据集


有几种方法可以获取股市数据。以下数据集是使用 R BatchGetSymbols 生成的。

#加载数据集
# ref.date是数组的第一列 
datang = read_csv('stopriceo.csv', header=0)

pd.pivot_table(datong)

我们的股票时间序列


我们为这个项目选择了微软(股票代码 MSFT)。

plt.rrms\['fgre.dpi'\] = 300
plt.plot(dfte\['MSFT'\])

时间序列显然不是平稳的,这是大多数预测模型所假设的属性。我们可以对时间序列应用变换,直到它达到平稳状态。Dickey-Fuller 检验使我们能够确定我们的时间序列是否具有季节性。

在这里,我们将应用对数转换来解决股票市场的指数行为。

其他有助于预测模型的转换:

  • 移动平均线
  • 差分化
df1 = datt\['MSFT'\]
# 我们对数据集进行了对数转换
df1 = np.log(df1)

# 替代方案:我们可以对时间序列进行差分,从而去除季节性和平均值的变化。

# 创建一个差分序列


#dfdiff = diffe(df1,1)


预处理


在这里,我们对时间序列数据应用标准预处理。

在时间序列中,我们没有标签,但我们有时间序列的未来值,因此输出可以是 x(t),给定 x(t-1) 作为输入。这是将数据集构建为监督问题的一种实用(且直观)的方法。

scaer = ixSer(fatue_ange = (0,1))
scer.i_rrm(np.array(df1).rehape(-1,1))

LSTM 模型


我们在这里实现了一个堆叠的 LSTM 模型。

LSTM 网络是一种递归神经网络,能够学习序列预测问题中的序列依赖性。LSTM 模型主要用于语音识别、自然语言处理的上下文中。最近,它们也被应用于时间序列数据的分析。

from tensorflow.keras.models import Sequential 
model.add(LSTM(50, retsueces = True
#LSTM
model.add(Dropout(0.1))

history

plt.plot(history.history


点击标题查阅往期内容


Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据


01

02

03

04

表现


import math 
from sklearn.metrics import mean\_squared\_error

plt.rcParams\['figure.dpi'\] = 300
plt.rcParams\['savefig.dpi'\] = 300
#移位预测
lokback = ie_step
trinPrectPot = numpy.empty_like(df1)
traireditPlot\[:,:\] = np.nan
in_y = scaler.nesetsfrm(df1)
plt.plot

plt.plot(iv_y)


未来 30 天的预测


我们现在可以递归地应用该模型,通过估计第二天的 (t+1) 价格,然后再次将其作为输入来推断 t+2 天的价格,依此类推。这个预测当然会有更大的误差,因为每个预测的日子都会带来很大的不确定性。然而,这个预测确实会告诉我们模型是否从过去的数据中学到了任何东西。

# 预测未来30天的情况 
len(tesdata) # 1211
# 我认为在test_data中,最后一天是5月22日,例如
# 对于5月23日,我需要100个前一天的数据 
x\_input = test\_data\[(len

while(i<ftue_teps):
    if(len(tep\_put)>ie\_sep):
        x_input = np.array(tepinut\[1:\])
        x\_input = x\_input.reshap

plt.plot(dy\_ew, scaler.inverse\_transf

plt.plot(df3\[1000:\])

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
机器学习/深度学习 存储 自然语言处理
从理论到实践:如何使用长短期记忆网络(LSTM)改善自然语言处理任务
【10月更文挑战第7天】随着深度学习技术的发展,循环神经网络(RNNs)及其变体,特别是长短期记忆网络(LSTMs),已经成为处理序列数据的强大工具。在自然语言处理(NLP)领域,LSTM因其能够捕捉文本中的长期依赖关系而变得尤为重要。本文将介绍LSTM的基本原理,并通过具体的代码示例来展示如何在实际的NLP任务中应用LSTM。
130 4
|
4月前
|
自然语言处理 C# 开发者
Uno Platform多语言开发秘籍大公开:轻松驾驭全球用户,一键切换语言,让你的应用成为跨文化交流的桥梁!
【8月更文挑战第31天】Uno Platform 是一个强大的开源框架,允许使用 C# 和 XAML 构建跨平台的原生移动、Web 和桌面应用程序。本文详细介绍如何通过 Uno Platform 创建多语言应用,包括准备工作、设置多语言资源、XAML 中引用资源、C# 中加载资源以及处理语言更改。通过简单的步骤和示例代码,帮助开发者轻松实现应用的国际化。
42 1
|
4月前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
180 2
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
7.1 NLP经典神经网络 RNN LSTM
该文章介绍了自然语言处理中的情感分析任务,探讨了如何使用深度神经网络,特别是循环神经网络(RNN)和长短时记忆网络(LSTM),来处理和分析文本数据中的复杂情感倾向。
|
5月前
|
机器学习/深度学习 数据采集 自然语言处理
Python实现循环神经网络SimpleRNN、LSTM进行淘宝商品评论情感分析(含爬虫程序)
Python实现循环神经网络SimpleRNN、LSTM进行淘宝商品评论情感分析(含爬虫程序)
106 0
Python实现循环神经网络SimpleRNN、LSTM进行淘宝商品评论情感分析(含爬虫程序)
|
5月前
|
机器学习/深度学习 数据采集 数据挖掘
Python实现循环神经网络RNN-LSTM回归模型项目实战(股票价格预测)
Python实现循环神经网络RNN-LSTM回归模型项目实战(股票价格预测)
251 0
|
2月前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
2月前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
4月前
|
存储 索引 Python
Python中序列类型 (Sequence Types)
【8月更文挑战第2天】
69 4
|
存储 算法 BI
【100天精通python】Day6:python基础_基本数据结构,常用序列类型和运算符
【100天精通python】Day6:python基础_基本数据结构,常用序列类型和运算符
136 0