当前位置: 首页 > news >正文

[开源] 基于GRU的时间序列预测模型python代码

基于GRU的时间序列预测模型python代码分享给大家,记得点赞哦

#!/usr/bin/env python
# coding: utf-8import time
time_start = time.time() import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import math
from keras.models import Sequential
from keras.layers import Dense, Activation, Dropout, GRU
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error 
from sklearn.metrics import r2_score 
from keras import optimizers
from pylab import *
import tensorflow as tfmpl.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False# 调用GPU加速
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:tf.config.experimental.set_memory_growth(gpu, True)def creat_dataset(dataset, look_back=10):dataX, dataY = [], []for i in range(len(dataset)-look_back-1):a = dataset[i: (i+look_back)]dataX.append(a)dataY.append(dataset[i+look_back])return np.array(dataX), np.array(dataY)dataframe = pd.read_csv('天气.csv',header=0, parse_dates=[0],index_col=0, usecols=[0, 1])#header=0第0行为表头,index_col=0第一列为索引,usecols=[0, 1]选取第一列和第二列
dataset = dataframe.values
dataframe.head(10)plt.figure(figsize=(10, 4),dpi=150)
dataframe.plot()
plt.ylabel('AQI')
plt.xlabel('time/day')
font = {'serif': 'Times New Roman','size': 20}
plt.rc('font', **font)
plt.show()scaler = MinMaxScaler(feature_range=(0, 1))
dataset = scaler.fit_transform(dataset.reshape(-1, 1))train_size = int(len(dataset)*0.8)
test_size = len(dataset)-train_size
train, test = dataset[0: train_size], dataset[train_size: len(dataset)]look_back = 10
trainX, trainY = creat_dataset(train, look_back)
testX, testY = creat_dataset(test, look_back)model = Sequential()
model.add(GRU(input_dim=1, units=50, return_sequences=True))
model.add(GRU(input_dim=50, units=100, return_sequences=True))
model.add(GRU(input_dim=100, units=200, return_sequences=True))
model.add(GRU(300, return_sequences=False))
model.add(Dropout(0.2))model.add(Dense(100))
model.add(Dense(units=1))model.add(Activation('relu'))
start = time.time()
model.compile(loss='mean_squared_error', optimizer='Adam')
model.summary()
len(model.layers)history = model.fit(trainX, trainY, batch_size=64, epochs=100, validation_split=None, verbose=2)
print('compilatiom time:', time.time()-start)#get_ipython().run_line_magic('matplotlib', 'notebook')
fig1 = plt.figure(figsize=(10, 3),dpi=150)
plt.plot(history.history['loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.show()trainPredict = model.predict(trainX)
testPredict = model.predict(testX)trainPredict = scaler.inverse_transform(trainPredict)
trainY = scaler.inverse_transform(trainY)
testPredict = scaler.inverse_transform(testPredict)
testY = scaler.inverse_transform(testY)testScore = math.sqrt(mean_squared_error(testY, testPredict[:, 0]))
print('Train Sccore %.4f RMSE' %(testScore))
testScore = mean_absolute_error(testY, testPredict[:, 0])
print('Train Sccore %.4f MAE' %(testScore))
testScore = r2_score(testY, testPredict[:, 0])
print('Train Sccore %.4f R2' %(testScore))trainPredictPlot = np.empty_like(dataset)
trainPredictPlot[:] = np.nan
trainPredictPlot = np.reshape(trainPredictPlot, (dataset.shape[0], 1))
trainPredictPlot[look_back: len(trainPredict)+look_back, :] = trainPredicttestPredictPlot = np.empty_like(dataset)
testPredictPlot[:] = np.nan
testPredictPlot = np.reshape(testPredictPlot, (dataset.shape[0], 1))
testPredictPlot[len(trainPredict)+(look_back*2)+1: len(dataset)-1, :] = testPredictdataset = scaler.inverse_transform(dataset)#get_ipython().run_line_magic('matplotlib', 'notebook')
plt.figure(figsize=(10, 4),dpi=150)
plt.title(' Prediction',size=15)
plt.plot(dataset, color='red', linewidth=1.5, linestyle="-",label='Actual')
plt.plot(testPredictPlot,  color='blue',linewidth=2,linestyle="--", label='Prediction')
plt.legend()
plt.ylabel('AQI',size=15)
plt.xlabel('time/day',size=15)
plt.show()time_end = time.time()  
time_sum = time_end - time_start  
print(time_sum)

更多时间序列预测代码获取:时间序列预测算法全集合--深度学习

相关文章:

[开源] 基于GRU的时间序列预测模型python代码

基于GRU的时间序列预测模型python代码分享给大家,记得点赞哦 #!/usr/bin/env python # coding: utf-8import time time_start time.time() import numpy as np import matplotlib.pyplot as plt import pandas as pd import math from keras.models import Sequent…...

SQL SERVER 备份

目录 1.备份概念 1.1 为何备份? 1.2 SQL Server 备份模式 2.SQL Server 数据库备份 2.1 借助SSMS备份数据库 2.2 借助 T-SQL 备份数据库 2.3 创建加密备份 2.4 备份文件和文件组 权限 步骤 2.5 备份事务日志 3.维护计划 3.1 完整备份 3.2 差异备份...

提示词专场:从调整提示改善与LLMs的沟通,到利用LLMs优化提示效果

编者按:欢迎阅读“科研上新”栏目!“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里,你可以快速浏览研究院的亮点资讯,保持对前沿领域的敏锐嗅觉,同时也能找到先进实用的开源工具。 提示词的好坏决…...

测开面经(pytest测试案例,接口断言,多并发断言)

pytest对用户登录接口进行自动化脚本设计 a. 创建一个名为"test_login.py"的测试文件,编写以下测试脚本 import pytest import requests# 测试用例1:验证登录成功的情况 # 第一个测试用例验证登录成功的情况,发送有效的用户名和密…...

Golang 开发实战day09 - package Scope

🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴‍♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 教程09 - package Sc…...

24考研-东南大学916经验贴

文章目录 一、个人情况二、初试备考经验1.政治 67,客观382.英语 60,客观大概40左右3.数学 136,客观应该满分4.专业课 数据结构计网 114小分不清楚 三、复试备考经验笔试:C面试复试流程 附一下成绩单: 一、个人情况 本…...

【AI面试】YOLO 如何通过 k-means 得到 anchor boxes的?Yolo、SSD 和 faster rcnn 的正负样本定义

如果你的项目中有目标检测相关的内容,那么本篇内容就一定要好好看看。不会的看到了理解下,会的看看是不是和自己理解的一样。 一、YOLO 如何通过 k-means 得到 anchor boxes的? YOLOv2 和 YOLOv3是目标检测领域中非常流行的算法,它们都使用了anchor boxes来提高检测的准确…...

MySQL高级篇(B-Tree、Btree)

目录 1、Btree(B-Tree) 1.1、B-Trees的特点 二叉树缺点:顺序插入时,会形成一个链表,查询性能大大降低。大数据量情况下,层级较深,检索速度慢。红黑树:大数据量情况下,层…...

Zookeeper脑裂解决方案

Zookeeper脑裂原因: 主要原因是Zookeeper集群和Zookeeper client判断超时并不能做到完全同步,也就是说可能一前一后,如果是集群先于client发现,那就会出现上面的情况。同时,在发现并切换后通知各个客户端也有先后快慢…...

常用日常脚本

日常脚本 1:主机初始化脚本 通用脚本: curl -s http://内网ip:3333/soft/shell/init/init_vm.sh |sh 以下是单一功能脚本 2:定时检测dns,并修改为固定dns curl -s http://内网ip:3333/soft/shell/init/deploy_dns_product.sh | s…...

Longan Pi 3H 开发板体验

Longan Pi 3H 开发板体验 开箱内容 打开包装,你可以看到以下物品 一个Longan Pi 3H盒子Longan Pi 3H开发板 产品基本介绍 Longan Pi 3H 是基于 Longan Module 3H 核心板的 ARM Linux 开发板,以 H618 (Quad core ARM Cortex-A531.5Ghz , 64-bit) 为主控…...

SpringCloud Alibaba Sentinel 创建流控规则

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十四篇,即介绍 SpringCloud Alibaba Sentinel 创建流控规则。 二、基本介绍 我们在 senti…...

Mysql底层原理五:如何设计、用好索引

1.索引的代价 空间上的代价 时间上的代价 每次对表中的数据进⾏增、删、改操作时,都需要去修改各个B树索引。⽽且我们讲过,B树每层节点都是按照索引列的值从⼩到⼤的顺序排序⽽组成了双 向链表。不论是叶⼦节点中的记录,还是内节点中的记录&a…...

python学习杂记

做为一个接近40岁的人,开始学习python会有什么结果?反正很迷茫,思维方式也开始下降了,希望可以学得好吧 早期做的是前端开发,java也有所接触,但是都学得不精,后来转做项目管理,把技…...

C# Socket发送、接收结构体

Socket发送:Socket的使用 一、Socket发送结构体 结构体如下: [StructLayout(LayoutKind.Sequential, Pack 1)] public struct OutPoint_ST {public int LeftheartX;public int LeftHeartY;public float WidthHeart;public int RightHeartX;public in…...

ics-05-攻防世界

题目 点了半天只有设备维护中心能进去 御剑扫一下 找到一个css 没什么用 再点击云平台设备维护中心url发生了变化 设备维护中心http://61.147.171.105:65103/index.php?pageindex试一下php伪协议 php://filter/readconvert.base64-encode/resourceindex.php base64解一下…...

Web API(三)之事件流事件委托其他事件

Web API(三)之事件流&事件委托&其他事件 事件流捕获和冒泡事件捕获事件冒泡阻止冒泡解绑事件两种注册事件的区别事件委托其他事件页面加载事件元素滚动事件页面滚动事件-获取位置页面滚动事件-滚动到指定的坐标页面尺寸事件元素尺寸与位置元素尺寸与位置-尺寸...

SSL证书的作用是什么?

SSL证书让网站和用户之间安全传输信息,就像给网络对话加了一把密码锁。它主要做四件事: 1. 证明身份: - 像警察局一样,有个叫“证书颁发机构”的家伙负责检查网站是不是真的。网站要向它证明自己是谁(比如,…...

皮具5G智能制造工厂数字孪生可视化平台,推进企业数字化转型

皮具5G智能制造工厂数字孪生可视化平台,推进企业数字化转型。随着信息技术的快速发展,数字化转型已成为企业提升竞争力、实现可持续发展的关键路径。皮具行业,作为一个传统的手工制造业,正面临着巨大的市场变革和技术挑战。如何在…...

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之Port模块配置详解(MCAL配置)

Port模块配置详解 前言一、如何添加Port模块?1.1 导入Port模块二、Port模块详细配置说明2.1 Port模块问题解决2.2 Port模块配置步骤2.2.1 数据手册查找Port对应的Group2.2.2 配置Port为CAN功能2.2.3 选择芯片型号总结前言 我们还差一个Port模块进行配置io的复用功能选择。就是…...

使用vue3+ts构建企业级文件传输管理系统:状态管理、性能优化与用户体验的深度实践

使用vue3+ts构建企业级文件传输管理系统:状态管理、性能优化与用户体验的深度实践 在现代企业应用中,文件传输是核心功能之一。一个高效的传输管理系统不仅需要处理大量文件,还需提供直观的状态反馈、灵活的操作选项和流畅的用户体验。今天,我将分享一个基于Vue 3和TypeSc…...

【芯片后仿(Post-Silicon Simulation)完全指南:从入门到流片前的最后一道防线】

一、什么是后仿?为什么要做后仿?后仿,全称Post Netlist Simulation(Post-Sim)或Gate Level Simulation(GLS),是指在RTL代码综合成门级网表后,通过反标SDF(Sta…...

告别API依赖!实测具备“看屏幕”能力的Agent,实在Agent如何重构企业自动化天花板?

在2026年这个被业界公认为“智能体元年”的当下,企业数字化转型已从简单的“系统上线”演进到“全量自动化”的深水区。然而,传统API接口的局限性与老旧系统的数据孤岛,始终是横亘在降本增效路上的大山。本文由「企服AI产品测评局」带来深度实…...

提升前端效率:用快马实践vibe coding快速生成沉浸式番茄钟应用

最近在尝试提升前端开发效率时,发现了一种很有意思的开发方式——vibe coding。简单来说,就是通过描述想要的界面氛围和交互感觉,快速生成对应的功能代码。这种方式特别适合需要快速验证想法或者搭建基础框架的场景。 今天就用InsCode(快马)…...

从Pico到Pico W:无线加持下,树莓派微控制器如何重塑物联网原型设计

1. 从有线到无线的跨越:Pico W带来的物联网革命 记得我第一次用树莓派Pico做智能温湿度计项目时,被传感器布线折腾得够呛。为了把数据传到服务器,不得不在面包板上插满杜邦线,最后成品活像只炸毛的刺猬。直到Pico W出现&#xff…...

hello-uniapp状态管理新选择:Pinia在UniApp中的实践指南

hello-uniapp状态管理新选择:Pinia在UniApp中的实践指南 【免费下载链接】hello-uniapp uni-app框架演示示例 项目地址: https://gitcode.com/gh_mirrors/he/hello-uniapp 在UniApp开发中,状态管理一直是开发者关注的重点。hello-uniapp作为uni-a…...

DeepSeekubernetes-1.35.3/kubernetes-1.35.3/test/utils/ktesting/examples/logging/example_test.go 源码分析

我来分析 Kubernetes 测试工具 ktesting 中的日志示例文件 example_test.go。这个文件展示了如何在 Kubernetes 测试中使用结构化日志。 文件概述 这是 Kubernetes v1.35.3 中 test/utils/ktesting 包的示例文件,展示了如何使用 ktesting 框架进行带有结构化日志的测…...

Redis Sentinel 高可用方案在WMS仓储管理系统的应用

Redis Sentinel 高可用方案在WMS仓储管理系统的应用 一、仓储场景的特殊挑战 在WMS(Warehouse Management System)系统中,Redis承载着高频且关键的业务数据:业务模块Redis用途可用性要求库存实时缓存SKU库存量、库位占用状态99.99…...

2025_NIPS_G1: Teaching LLMs to Reason on Graphs with Reinforcement Learning

文章核心总结与创新点 核心内容 本文针对大型语言模型(LLMs)在图推理任务中表现有限的问题,提出了一种基于强化学习(RL)的方法G1。通过在大规模合成图论任务数据集Erdős上训练,G1显著提升了LLMs的图推理能力,且在未见过的任务、领域和图编码方案中表现出强泛化性,同…...

HDD与SSD终极对决:性能、成本与应用场景全解析

1. HDD与SSD:从构造看本质差异 第一次拆开电脑主机时,看到那个嗡嗡作响的金属盒子(HDD)和旁边安静的电路板(SSD),我就意识到它们是完全不同的物种。HDD就像老式留声机,数据存储在高速…...