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

简介: 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:\])

相关文章
|
6月前
|
机器学习/深度学习 自然语言处理 PyTorch
21_RNN与LSTM:序列建模的经典方法
在自然语言处理领域,处理序列数据是一个核心挑战。传统的机器学习方法难以捕捉序列中的时序依赖关系,而循环神经网络(Recurrent Neural Network,RNN)及其变种长短期记忆网络(Long Short-Term Memory,LSTM)通过其独特的循环结构,为序列建模提供了强大的解决方案。本教程将深入探讨RNN和LSTM的原理、实现方法和最新应用,帮助读者全面掌握这一NLP核心技术。
576 0
|
10月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于MATLAB2022a/2024b开发,结合粒子群优化(PSO)算法与双向长短期记忆网络(BiLSTM),用于优化序列预测任务中的模型参数。核心代码包含详细中文注释及操作视频,涵盖遗传算法优化过程、BiLSTM网络构建、训练及预测分析。通过PSO优化BiLSTM的超参数(如学习率、隐藏层神经元数等),显著提升模型捕捉长期依赖关系和上下文信息的能力,适用于气象、交通流量等场景。附有运行效果图预览,展示适应度值、RMSE变化及预测结果对比,验证方法有效性。
|
10月前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于Matlab 2022a/2024b实现,结合灰狼优化(GWO)算法与双向长短期记忆网络(BiLSTM),用于序列预测任务。核心代码包含数据预处理、种群初始化、适应度计算及参数优化等步骤,完整版附带中文注释与操作视频。BiLSTM通过前向与后向处理捕捉序列上下文信息,GWO优化其参数以提升预测性能。效果图展示训练过程与预测结果,适用于气象、交通等领域。LSTM结构含输入门、遗忘门与输出门,解决传统RNN梯度问题,而BiLSTM进一步增强上下文理解能力。
|
10月前
|
机器学习/深度学习 算法 数据挖掘
基于WOA鲸鱼优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于MATLAB 2022a/2024b实现,采用WOA优化的BiLSTM算法进行序列预测。核心代码包含完整中文注释与操作视频,展示从参数优化到模型训练、预测的全流程。BiLSTM通过前向与后向LSTM结合,有效捕捉序列前后文信息,解决传统RNN梯度消失问题。WOA优化超参数(如学习率、隐藏层神经元数),提升模型性能,避免局部最优解。附有运行效果图预览,最终输出预测值与实际值对比,RMSE评估精度。适合研究时序数据分析与深度学习优化的开发者参考。
|
10月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本内容包含基于BiLSTM与遗传算法(GA)的算法介绍及实现。算法通过MATLAB2022a/2024b运行,核心为优化BiLSTM超参数(如学习率、神经元数量),提升预测性能。LSTM解决传统RNN梯度问题,捕捉长期依赖;BiLSTM双向处理序列,融合前文后文信息,适合全局信息任务。附完整代码(含注释)、操作视频及无水印运行效果预览,适用于股票预测等场景,精度优于单向LSTM。
|
11月前
|
数据可视化 数据挖掘 数据安全/隐私保护
Python实现时间序列动量策略:波动率标准化让量化交易收益更平稳
时间序列动量策略(TSMOM)是一种基于资产价格趋势的量化交易方法,通过建立多头或空头头寸捕捉市场惯性。然而,传统TSMOM策略因风险敞口不稳定而面临收益波动问题。波动率调整技术通过动态调节头寸规模,维持恒定风险水平,优化了策略表现。本文系统分析了波动率调整TSMOM的原理、实施步骤及优势,强调其在现代量化投资中的重要地位,并探讨关键参数设定与实际应用考量,为投资者提供更平稳的风险管理体验。
585 4
Python实现时间序列动量策略:波动率标准化让量化交易收益更平稳
|
运维 监控 算法
时间序列异常检测:MSET-SPRT组合方法的原理和Python代码实现
MSET-SPRT是一种结合多元状态估计技术(MSET)与序贯概率比检验(SPRT)的混合框架,专为高维度、强关联数据流的异常检测设计。MSET通过历史数据建模估计系统预期状态,SPRT基于统计推断判定偏差显著性,二者协同实现精准高效的异常识别。本文以Python为例,展示其在模拟数据中的应用,证明其在工业监控、设备健康管理及网络安全等领域的可靠性与有效性。
1259 13
时间序列异常检测:MSET-SPRT组合方法的原理和Python代码实现
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
1195 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
在现代数据分析中,高维时间序列数据的处理和预测极具挑战性。基于矩阵分解的长期事件(MFLEs)分析技术应运而生,通过降维和时间序列特性结合,有效应对大规模数据。MFLE利用矩阵分解提取潜在特征,降低计算复杂度,过滤噪声,并发现主要模式。相比传统方法如ARIMA和深度学习模型如LSTM,MFLE在多变量处理、计算效率和可解释性上更具优势。通过合理应用MFLE,可在物联网、金融等领域获得良好分析效果。
449 0
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
|
数据可视化 算法 数据挖掘
Python时间序列分析工具Aeon使用指南
**Aeon** 是一个遵循 scikit-learn API 风格的开源 Python 库,专注于时间序列处理。它提供了分类、回归、聚类、预测建模和数据预处理等功能模块,支持多种算法和自定义距离度量。Aeon 活跃开发并持续更新至2024年,与 pandas 1.4.0 版本兼容,内置可视化工具,适合数据探索和基础分析任务。尽管在高级功能和性能优化方面有提升空间,但其简洁的 API 和完整的基础功能使其成为时间序列分析的有效工具。
472 37
Python时间序列分析工具Aeon使用指南

热门文章

最新文章

推荐镜像

更多