LSTM时序预测 | Python实现LSTM长短期记忆神经网络时间序列预测

news2024/10/11 14:34:53

本文内容:Python实现LSTM长短期记忆神经网络时间序列预测,使用的数据集为AirPassengers

目录

数据集简介

1.步骤一

2.步骤二

3.步骤三

4.步骤四

数据集简介

AirPassengers 数据集的来源可以追溯到经典的统计和时间序列分析文献。原始数据集由 Box, Jenkins 和 Reinsel 在他们的书籍《Time Series Analysis: Forecasting and Control》中引入,这本书在时间序列分析领域非常著名

1.训练结果

2.步骤一

安装darts库:

pip install darts

3.步骤二

部分代码如下:


import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np
import pandas as pd
import shutil
from sklearn.preprocessing import MinMaxScaler
from tqdm import tqdm_notebook as tqdm
import matplotlib.pyplot as plt

from darts import TimeSeries
from darts.dataprocessing.transformers import Scaler
from darts.models import RNNModel, ExponentialSmoothing, BlockRNNModel
from darts.metrics import mape, mae, mse, rmse
from darts.utils.statistics import check_seasonality, plot_acf
from darts.datasets import AirPassengersDataset, SunspotsDataset
from darts.utils.timeseries_generation import datetime_attribute_timeseries

import warnings

warnings.filterwarnings("ignore")
import logging

logging.disable(logging.CRITICAL)

####################数据准备##########################
# Read data:
series = AirPassengersDataset().load()  #原始数据集由 Box, Jenkins 和 Reinsel 在他们的书籍《Time Series Analysis: Forecasting and Control》中引入

# Create training and validation sets:
train, val = series.split_after(pd.Timestamp("19590101")) ##可以填写具体的日期,也可以填写比例

# Normalize the time series (note: we avoid fitting the transformer on the validation set)
transformer = Scaler()
train_transformed = transformer.fit_transform(train)
val_transformed = transformer.transform(val)
series_transformed = transformer.transform(series)

# create month and year covariate series
year_series = datetime_attribute_timeseries(
    pd.date_range(start=series.start_time(), freq=series.freq_str, periods=1000),
    attribute="year",
    one_hot=False,
)
year_series = Scaler().fit_transform(year_series)
month_series = datetime_attribute_timeseries(
    year_series, attribute="month", one_hot=True
)
covariates = year_series.stack(month_series)
cov_train, cov_val = covariates.split_after(pd.Timestamp("19590101"))

####################构建模型##########################
my_model = RNNModel(
    model="LSTM",
    hidden_dim=20,
    dropout=0,
    batch_size=16,
    n_epochs=300,
    optimizer_kwargs={"lr": 1e-3},
    model_name="Air_RNN",
    log_tensorboard=True,
    random_state=42,
    training_length=20,
    input_chunk_length=14,
    force_reset=True,
    save_checkpoints=True,
)


my_model.fit(
    train_transformed,
    future_covariates=covariates,
    val_series=val_transformed,
    val_future_covariates=covariates,
    verbose=True,
)

完整代码下载地址:下载地址

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows下MYSQL8.0如何恢复root权限

误操作把root权限清掉导致数据库无法登录(确实很难受),在网上找了很多方法,发现没有很行之有效的方法,在多方尝试终于找到了适合敏感宝宝体质的方法。 C:\Users\Administrator>mysql -u root -P3307 ERROR 1045 (2…

下标记数(一)

第1题 0~5出现次数(程序填空) 统计出一串0~5数字构成的数列中,6种数字各自出现的次数。 输入格式 第一行1个正整数:N,范围在[1,100]。第二行N个由0~5组成的数列。 输出格式 一行6个整数,分别是0~5出现的…

免杀对抗—javaASMMSF源码特征修改汇编调用CS内联C

前言 今天讲最后的两个语言java和汇编,那么基本所有语言就讲了一个遍了。java在后门免杀这一块呢其实是有点鸡肋的,其它语言编译成的是exe,而java编译成的是jar包,而jar包又得有java环境才能运行,不像exe是个电脑都行…

股市大涨,为什么交易所系统奔溃

最近股市大涨,创造了开盘 35分钟成交量、单日成交量等等突破性历史记录。伴随而来的多家交易所系统奔溃的消息。今天,聊一下,当股市大涨时,交易所系统为何会崩溃。 首先,让我们以股市的角度切入。股市的每一次大涨&am…

YOLOV5改进系列(3)——ECA注意力机制

一、ECA注意力机制介绍、 论文地址:ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks | IEEE Conference Publication | IEEE Xplore 1. ECA的本质: ECA是一种通道注意力机制的实现形式,基于SE(Squ…

代码签名证书:守护软件安全与信任的第一道防线

提起软件代码签名证书,可能对大多数人来说比较陌生,但是对于软件开发者来说是一款在软件发布前必不可少的工具。之所以这样说的原因在于,代码签名证书可以有效保障用户和软件开发者的权益。 代码签名证书是数字证书的一种,是专为…

什么是快充协议、支持多协议的USB Type-C受电端取电芯片

随着快充技术的不断发展,传统的慢充模式已经满足不了消费者对充电效率的要求。有了快充技术的支持很大程度的缩短了我们的充电时间,给我们的生活带来了很多便利。 什么是快充协议 快充协议是快充技术的核心,现如今市面上已经有很多种快充协议…

Find My扫描笔|苹果Find My技术与扫描笔结合,智能防丢,全球定位

扫描笔通过扫描技术,直接将图像,表格或者印刷字体等扫描到笔里存储或者直接传送到电脑,进行存储阅读或者编辑修改等操作。其很方便携带,便于移动办公;其主要是用于扫描办公文件,文字、身份证,名…

步步精科技诚邀您参加2024慕尼黑华南电子展

尊敬的客户: 我们诚挚地邀请您参加即将于2024年10月14日至10月16日在深圳国际会展中心 (宝安新馆)举办的慕尼黑华南电子展(electronica South China)。本届将聚焦人工智能、数据中心、新型储能、无线通信、硬件安全、新能源汽车、第三代半导…

7.存储过程中的事务管理(7/10)

1.引言 在现代信息技术快速发展的今天,数据库已经成为存储和管理数据的核心工具。无论是企业级应用、电子商务平台还是个人项目,数据库都扮演着不可或缺的角色。在这些应用中,数据的完整性、一致性和可靠性是至关重要的。这就引出了数据库事…

自动驾驶系列—从速度感知到车身控制:轮速计在自动驾驶中的应用

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

ViVado HLS 2018.3基本开发流程

1.双击打开软件 2.点击Create New Project 3.输入项目名称和位置 4.Next->Next->Next 5.根据所选的器件创建解决方案 6.添加文件 点击"Source"添加.c/cpp或者.h文件,在TestBench里面添加要测试的文件.c/cpp并且可以包含main函数. led.h #ifndef _SHIFT_LED_H…

IDEA搭建JDK1.8源码调试环境

大家好 下载源码 安装好 JDK 后,源码目录下面有 src.zip 文件,这个文件就是 JDK 的源码 搭建调试环境 新建 Maven 工程,包含以下文件 source:源码文件夹(手动新建)test:单元测试文件夹&…

[C++][第三方库][Websocket]详细讲解

目录 1.Websocket 协议1.介绍2.原理简介 2.Websocketpp1.介绍2.安装 3.常用接口4.使用 1.Websocket 协议 1.介绍 WebSocket是从HTML5开始支持的一种网页端和服务端保持长连接的消息推送机制产生原因: 传统的web程序都是属于"一问一答"的形式 即客户端给…

【王道视频笔记】红黑树的定义和性质

文章目录 关于黑高的结论红黑树的插入 平衡二叉树 AVL:插入/删除 很容易破坏“平衡”特性,需要频繁调整树的形态。如:插入操作导致不平衡,则需要先计算平衡因子,找到最小不平衡子树(时间开销大),再进行 LL/RR/LR/RL 调整 红黑树 R…

极狐GitLab X 某轨道交通控制系统龙头企业,助力业务研发敏捷化

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 60天专业…

Linux常用应急溯源命令

常用命令 1、账号相关命令 1、查询特权用户特权用户(uid 为0):awk -F: $30{print $1} etc/passwd 2、查询可以远程登录的帐号信息:awk /\$1|\$6/{print $1} etc/shadow 2、程序相关命令 1、查看当前开放端口netstat -tnlp 2、查看当前系统上运行的所…

华为中级认证HCIP知识点总结,建议收藏

01 OSPF知识点 OSPF基本配置,OSPF 5种报文,7种邻居状态,4种网络类型,4种特殊区域,7类LSA,4种link type,标识一条LSA的3个要素,OSPF邻居域邻接关系,单区域,多区…

生成对抗网络GAN——学习笔记

经过大量阅读资料和博客,对GAN的认识和学习做一个记录。个人粗浅的认识,不管是什么模型都离不开最基础的神经网络。主要借鉴的博客内容如下 新型的神经网络模型,从CNN到BERT都有介绍。_最新的神经网络模型-CSDN博客 生成对抗网络——GAN&am…

Open WebUI | 自托管的类 ChatGPT 网站

Open WebUI 是一个扩展性强、功能丰富且用户友好的自托管 WebUI,支持 ChatGPT 网页端的大部分功能,支持各类模型服务,包括 Ollama 和 OpenAI 的 API。该项目在 GitHub 上已有 38k 星,非常受欢迎。 功能介绍 本篇介绍该项目的功能…