【Python时序预测系列】基于GRU模型实现多变量时间序列预测(案例+源码)

这是我的第363篇原创文章。

一、引言

单站点多变量单步预测问题----基于GRU实现多变量时间序列预测股票价格。

二、实现过程

2.1 读取数据集

df=pd.read_csv("data.csv", parse_dates=["Date"], index_col=[0])
print(df.shape)
print(df.head())
fea_num = len(df.columns)

df:

图片

2.2 划分数据集

# 拆分数据集为训练集和测试集
test_split=round(len(df)*0.20)
df_for_training=df[:-test_split]
df_for_testing=df[-test_split:]# 绘制训练集和测试集的折线图
plt.figure(figsize=(10, 6))
plt.plot(train_data, label='Training Data')
plt.plot(test_data, label='Testing Data')
plt.xlabel('Year')
plt.ylabel('Passenger Count')
plt.title('International Airline Passengers - Training and Testing Data')
plt.legend()
plt.show()

共5203条数据,8:2划分:训练集4162,测试集1041。

训练集和测试集:

图片

2.3 归一化

# 将数据归一化到 0~1 范围
scaler = MinMaxScaler(feature_range=(0,1))
df_for_training_scaled = scaler.fit_transform(df_for_training)
df_for_testing_scaled=scaler.transform(df_for_testing)

2.4 构造LSTM数据集(时序-->监督学习)

def createXY(dataset,n_past):passwindow_size = 3
trainX,trainY=createXY(df_for_training_scaled,window_size)
testX,testY=createXY(df_for_testing_scaled,window_size)# 将数据集转换为 LSTM 模型所需的形状(样本数,时间步长,特征数)
trainX = np.reshape(trainX, (trainX.shape[0], window_size, 5))
testX = np.reshape(testX, (testX.shape[0], window_size, 5))print("trainX Shape-- ",trainX.shape)
print("trainY Shape-- ",trainY.shape)
print("testX Shape-- ",testX.shape)
print("testY Shape-- ",testY.shape)

滑动窗口设置为3:

图片

2.5 建立模拟合模型

my_model = tf.keras.Sequential([GRU(80, return_sequences=True),Dropout(0.2),GRU(100),Dropout(0.2),Dense(1)
])my_model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
my_model.fit(trainX, trainY)

2.6 进行预测

prediction_test=my_model.predict(testX)
prediction_train=my_model.predict(trainX)

2.7 预测效果展示

plt.plot(df_for_training.index[window_size:,], original_train, color = 'red', label = '真实值')
plt.plot(df_for_training.index[window_size:,], pred_train, color = 'blue', label = '预测值')
plt.title('Stock Price Prediction')
plt.xlabel('Time')
plt.xticks(rotation=45)
plt.ylabel('Stock Price')
plt.legend()
plt.show()

训练集真实值与预测值:

图片

plt.plot(df_for_testing.index[window_size:,], original_test, color = 'red', label = '真实值')
plt.plot(df_for_testing.index[window_size:,], pred_test, color = 'blue', label = '预测值')
plt.title('Stock Price Prediction')
plt.xlabel('Time')
plt.xticks(rotation=45)
plt.ylabel('Stock Price')
plt.legend()
plt.show()

测试集真实值与预测值:

图片

2.8 评估指标

图片

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/441062.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OJ在线评测系统 微服务 OpenFeign调整后端下 nacos注册中心配置 不给前端调用的代码 全局引入负载均衡器

OpenFeign内部调用二 4.修改各业务服务的调用代码为feignClient 开启nacos注册 把Client变成bean 该服务仅内部调用,不是给前端的 将某个服务标记为“内部调用”的目的主要有以下几个方面: 安全性: 内部API通常不对外部用户公开,这样可以防止…

【目标检测】木制地板缺陷破损数据集338张6类VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3383 标注数量(xml文件个数):3383 标注数量(txt文件个数):3383 标注…

python爬虫案例——处理验证码登录网站(12)

文章目录 前言1、任务目标2、网页分析3、代码编写4、第三方验证码识别平台(超级鹰)前言 我们在爬取某些网站数据时,可能会遇到必须登陆才能获取网页内容的情况,而大部分网站登录都需要输入验证码才能登录成功,所以接下来我将会通过实际案例来讲解如何实现验证码登录网站 1…

前后端分离开发YApid

开头先声明以下,这篇主要用于概念的介绍…… 在当今的互联网应用开发中,前后端分离逐渐成为主流的开发模式。相比于传统的前后端混合开发,这种新模式在灵活性、可维护性和团队协作等方面具有显著优势。 前后端混合开发 在前后端混合开发模式…

气膜淤泥加工厂:创新土壤修复的绿色方案—轻空间

随着城市化进程的加快,土壤污染问题日益严重,淤泥处理成为环保领域亟待解决的重要课题。气膜淤泥加工厂应运而生,提供了一种高效、环保的解决方案,为土壤修复和环境保护注入了新的活力。 高效处理,保障环境安全 气膜淤…

什么是 HTTP 请求中的 options 请求?

在 Chrome 开发者工具中的 Network 面板看到的 HTTP 方法 OPTIONS,其实是 HTTP 协议的一部分,用于客户端和服务器之间进行“预检”或“协商”。OPTIONS 请求的作用是让客户端能够获取关于服务器支持的 HTTP 方法和其他跨域资源共享 (CORS) 相关的信息&am…

2-112基于matlab的协同干扰功率分配模型

基于matlab的协同干扰功率分配模型,带操作界面的功率分配GUI,可以实现对已有功率的分配优化,可以手动输入参数值。4个干扰山区分二批总干扰功率,每个扇区包括威胁总系数、综合压制概率、目标函数增量等。程序已调通,可…

Linux:进程调度算法和进程地址空间

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 进程调度算法 1.1 进程队列数据结构 1.2 优先级 ​编辑 1.3 活动队列 ​编辑 1.4 过期队列 1.5 active指针和expired指针 1.6 进程连接 二 进程地址空间 2.1 …

HCIP--以太网交换安全(二)

端口安全 一、端口安全概述 1.1、端口安全概述:端口安全是一种网络设备防护措施,通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理: 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…

Day8:返回倒数第k个节点

题目: 实现一种算法,找出单向链表中倒数第k个节点。返回该结点的值。 示例: 输入:1->2->3->4->5和k2 输出:4 说明: 给定的k保证是有效的。 public int kthToLast(ListNode head,int k){…

【STM32-HAL库】AHT10温湿度传感器使用(STM32F407ZGT6配置i2c)(附带工程下载连接)

一、温湿度传感器: 温湿度传感器是一种能够检测环境中的温度和湿度,并将其转化为电信号输出的装置。它在智能家居、工业自动化、气象监测、农业等领域有着广泛的应用。 原理: 温湿度传感器通常基于不同的物理原理,以下是一些常见…

前端vue-配置基地址并发送请求

1.首先,在HBuilder的终端下载安装luch-request 2.创建一个目录utils,以及下面的http.js文件,导入安装包,在new一下request,配置接口的基地址 3.在测试文件目录里面进行测试,看看请求能否发送成功&#xff…

Activity

文章目录 1.启停活动页面1.Activity启动和结束2.Activity生命周期3. Activity启动模式 2.在活动之间传递信息1.显示Intent和隐式Intent显示Intent隐式Intent 2.向下一个Activity发送数据3.向上一个Activity返回数据 3.为活动补充附加信息1.利用资源文件配置字符串2.利用元数据传…

零基础入门AI大模型应用开发,你需要一个系统的学习路径!

前言 随着人工智能技术的迅猛发展,特别是在大型语言模型(LLMs)领域的突破,AI大模型已经成为当今科技领域的热门话题。不论是对于希望转型进入AI行业的职场人士,还是对未来充满憧憬的学生,掌握AI大模型的应…

在java中使用redis

Redis Java使⽤ 引入依赖 Java 操作redis的客⼾端有很多.其中最知名的是jedis. 创建maven项⽬,把jedis的依赖拷⻉到pom.xml中 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency><groupId>redis.clients</groupId><…

基于SpringBoot的音乐网站系统

本地测试环境&#xff1a;eclipse或idea&#xff0c;数据库MySQL5.7&#xff0c; jdk1.8 使用技术&#xff1a;SpringBootMyBatis 主要功能&#xff1a;分类管理、音乐管理、系统管理等

ASR的King:我又回来了,更小,且更快——openai/whisper-large-v3-turbo

Whisper 是用于自动语音识别&#xff08;ASR&#xff09;和语音翻译的最先进模型&#xff0c;由来自 OpenAI 的 Alec Radford 等人在论文《通过大规模弱监督实现鲁棒语音识别》中提出。 Whisper 在超过 500 万小时的标注数据上进行了训练&#xff0c;证明了其在零点场景下对许多…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07目录1. Evaluation of Large Language Models for Summarization Tasks in the Medical Domain: A Narrative Review摘要研究…

【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers

【大语言模型-论文精读】谷歌-BERT&#xff1a;用于语言理解的预训练深度双向Transformers 目录 文章目录 【大语言模型-论文精读】谷歌-BERT&#xff1a;用于语言理解的预训练深度双向Transformers目录0. 引言1. 简介2 相关工作2.1 基于特征的无监督方法2.2 无监督微调方法2.3…

基于深度学习的多焦点图像融合系统【数据集+深度学习模型+源码+PyQt5界面】

深度学习多焦点聚焦图像融合 文章目录 研究背景代码下载链接一、效果演示1.1 界面设计1.2 图像融合演示11.3 图像融合演示21.4 图像融合演示3 二、技术原理2.1 引言2.2 融合策略2.3 深度特征的提取2.4 融合策略2.4.1 利用深度特征计算模糊度2.4.2 去噪与平滑2.4.3 图像融合 三、…