PyTorch-Forecasting一个新的时间序列预测库

news2024/12/22 22:10:09

时间序列预测在金融、天气预报、销售预测和需求预测等各个领域发挥着至关重要的作用。PyTorch- forecasting是一个建立在PyTorch之上的开源Python包,专门用于简化和增强时间序列的工作。在本文中我们介绍PyTorch-Forecasting的特性和功能,并进行示例代码演示。

PyTorch-Forecasting的安装非常简单:

 pip install pytorch-forecasting

但是需要注意的是,他目前现在只支持Pytorch 1.7以上,但是2.0是否支持我没有测试。

PyTorch-Forecasting提供了几个方面的功能:

1、提供了一个高级接口,抽象了时间序列建模的复杂性,可以使用几行代码来定义预测任务,使得使用不同的模型和技术进行实验变得容易。

2、支持多个预测模型,包括自回归模型(AR, ARIMA),状态空间模型(SARIMAX),神经网络(LSTM, GRU)和集成方法(Prophet, N-Beats)。这种多样化的模型集确保了为您的时间序列数据选择最合适方法的灵活性。

3、提供各种数据预处理工具来处理常见的时间序列任务,包括:缺失值输入、缩放、特征提取和滚动窗口转换等。除了一些数据的预处理的工具外,还提供了一个名为 TimeSeriesDataSet 的Pytorch的DS,这样可以方便的处理时间序列数据。

4、通过统一的接口方便模评估:实现了QuantileLoss,SMAPE 等时间序列的损失函数和验证指标,支持Pytorch Lighting 这样可以直接使用早停和交叉验证等训练方法

使用方法也很简单:

 frompytorch_forecastingimportTimeSeriesDataSet, TemporalFusionTransformer
 
 # Load and preprocess the data
 dataset=TimeSeriesDataSet.from_csv('data.csv', target='target', time_idx='time', group_ids=['id'])
 dataset.prepare_training(split_into_train_val_test=[0.8, 0.1, 0.1])
 
 # Initialize and train the model
 model=TemporalFusionTransformer.from_dataset(dataset)
 trainer=pl.Trainer()
 trainer.fit(model, dataset.train_dataloader())
 
 # Generate predictions
 predictions=model.predict(dataset.test_dataloader())
 
 # Evaluate the model
 metric=dataset.target_normalizer.metrics['mse']
 print(f'Test MSE: {metric(predictions, dataset.test_dataloader())}')

如果需要分类编码,可以这样用:

 frompytorch_forecasting.dataimportGroupNormalizer
 
 # Load and preprocess the data with categorical variables
 dataset=TimeSeriesDataSet.from_pandas(data, target='target', time_idx='time', group_ids=['id'], 
                                         categorical_encoders={'cat_variable': GroupNormalizer()})
 dataset.prepare_training(...)
 
 # Initialize and train the model
 model=TemporalFusionTransformer.from_dataset(dataset)
 trainer.fit(model, dataset.train_dataloader())
 
 # Generate predictions
 predictions=model.predict(dataset.test_dataloader())
 
 # Evaluate the model
 print(f'Test MSE: {metric(predictions, dataset.test_dataloader())}')

PyTorch-Forecasting是一个非常好用的工具包,就算你不使用它所有的功能,也可以将他提供的一些功能当作巩工具来整合到自己的项目中,如果你对使用PyTorch处理时序数据感兴趣,也可以看看他的代码当作学习的参考,他的文档还是比较全面的,并且也提供了很多的示例。

有兴趣的看看官方的文档和代码示例:

https://avoid.overfit.cn/post/26c1ce20c45a46e181c6ee74eccfc0fa

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

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

相关文章

xhs小红薯【帖子】采集工具python爬虫抓取

一、xhs【帖子/笔记/视频】采集工具链接 (请复制链接至浏览器,进行数据采集) http://106.53.68.168:9920/xhs-keyword-spider 能爬取到的属性字段如图1 (点击右侧下拉按钮,可任选字段) 图1属性字段 二、爬取规则 …

计算机毕业论文选题推荐|软件工程|系列九

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)学生在校信息管…

哪些pdf编辑软件值得下载?办公常备软件

PDF(Portable Document Format)是一种广泛用于电子文件传输的文档格式。为了更好的编辑和管理PDF文档,许多PDF编辑软件逐渐发展出来。本文将介绍PDF编辑软件的功能和使用方法。 使用PDF编辑软件可以提高我们的工作效率和文档管理能力。下面介…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI)迭代提示词笔记(中文chatgpt版)...

Iterative Prompt Develelopment 迭代提示词开发 在本课中,您将反复分析和优化您的提示,以从产品说明书生成营销文案。 设置 import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fil…

漫画管理工具Kapowarr

之前老苏写过不少漫画相关的软件,Mango、Kavita、Komga等等,但和今天要介绍的 Kapowarr 不太一样,如果你之前用过 Radarr、Sonarr 等 *arr 系列软件,应该是很容易上手的 什么是 Kapowarr ? Kapowarr(以前的…

基于Android studio二手车交易系统app

客户端: 用户注册:通过输入用户名,密码,所在地,联系地址以及电话和电子邮件等信息进行用户信息的注册。 二手车查看:用户注册登录系统后,可以查看二手车的基本信息,通过二手车的品牌…

【使用教程】NIMC2000控制器EtherCAT通讯下SDO位置清零

NIMC2000控制器是一种高性能的运动控制器,可通过EtherCAT通讯进行控制。在使用过程中,有时需要将位置清零,这可以通过SDO命令实现。 首先,需要确保NIMC2000控制器已经通过EtherCAT连接到了主机。然后,使用SDO命令将位…

AI技术:智慧交通时代的道路识别(文末送书四本)

前言: Hello大家好,我是Dream。 自动驾驶是当前最热门的技术之一,而道路识别则是自动驾驶系统中的重要一环。它需要自动驾驶车辆能够识别和解读道路标志、路面标线、交通信号灯等道路条件,及时准确地做出驾驶决策。接下来Dream将带…

医药行业除钾钠,物料液体钾钠分离,特殊溶剂钾的提取

Tulsimer T-42是特级强酸型离子交换树脂,氢 H/钠 Na阳离子交换树脂, 是一款有较的交换容量 ,并同时拥有物理及化学稳定品质。可应用于汽电共生发电厂冷凝水处理及超纯水系统中的混床, 去除水中的阳离子。 Tulsimer T-42其无裂纹特性和均匀的粒度&#x…

【源码分析】【netty】FastThreadLocal 为什么快?

写在前面 接下来几篇文章,我们来聊一聊 netty 相关的。这里作者想先从 FastThreadLocal 开始说,而不是可能大家更熟悉的 reactor 啊,责任链设计啊,ByteBuf 啊,池化啊等等。不过虽然说 FastThreadLocal 熟知程度不如其…

剑指offer 2--数组中重复的元素

数组中重复的数字_牛客题霸_牛客网 (nowcoder.com) 【排序法】思路和代码: 对数组进行排序。遍历排序后的数组,如果当前元素与下一个元素相等,则找到了重复数字,返回该数字。如果遍历完数组都没有找到重复数字,则返回-…

ChatGPT应用组队学习来了!

Datawhale学习 联合主办:Datawhale、百度文心 Datawhale联合百度文心,五月为大家带来AIGC应用专题:大模型从入门到应用,学习大纲如下(文末整理了这次学习的所有资料): 参与学习 ▶ 活动时间&am…

量子力学专题:线性谐振子

任何体系在平衡位置附近的小振动,例如 分子振动、晶格振动、原子核表面振动以及辐射场的振动等往往都可以分解成 若干彼此独立的一维简谐振动简谐振动往往还作为复杂运动的初步近似 见理论力学专题(小振动) 双原子分子,两原子间的…

kubernetes02

pod pod生命周期 pod的状态 1.挂起pending:API server创建了pod资源对象已存入etcd中,但它尚未被调度完成,或者仍处于从仓库下载镜像的过程中 2.运行中running:pod已经被调度到某节点,并且所有容器都已经被kubelet创建完成 3.成功complet:…

物业设备管理系统

物业服务质量难以保证,工单处理慢,巡检记录不规范;物业设备设施管理混乱,维修保养成本高,风险隐患多;物业数据分散,难以统计分析,无法提供决策支持;每天需要检查和保养的…

Hadoop学习---8、Hadoop数据压缩

1、Hadoop数据压缩 1.1 概述 1、压缩的好处和坏处 (1)优点:减少磁盘IO、减少磁盘储存空间 (2)缺点:增加CPU开销 2、压缩原则 (1)运算密集型的Job,少用压缩 &#xff08…

亚马逊云科技赋能中国出海企业创新及开拓海外业务

向全球价值链上游奋进 中国企业增强国际竞争力的关键,是努力朝全球价值链上游奋进,发力技术出海。中国的出海新机遇,背后曾是疫情在全球按下数字互联和数字化升级的快进键,跨境电商、在线社交、移动支付、数字服务等数字经济迎来…

【技巧】如何保护Word文档不被改动?

工作上,很多小伙伴需要将Word文档发给对方看,但又不想在传看时,被对方改动上面的内容。这种情况,我们可以通过以下两种方法,让Word文档不能改动。 首先,我们可以把Word文档设置限制编辑,被限制后…

FPGA采集CameraLink相机Full模式解码输出,附带工程源码和技术支持

目录 1、前言2、CameraLink协议基础3、目前我已有的CameraLink收发工程4、设计方案输入CameraLink相机视频缓存视频输出软件配置 5、vivado工程详解6、上板调试验证7、福利:工程代码的获取 1、前言 FPGA实现CameraLink视频编解码目前有两种方案: 一是使…

美团面试:接口被恶意狂刷,怎么办?

如果Java接口被恶意狂刷,我们一般可以采取以下措施: 用TimeStamp (兵不厌诈) 比如给客户端提供一个timestamp参数,值是13位的毫秒级时间戳,可以在第12位或者13位做一个校验位,通过一定的算法给…