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

news/2025/1/11 5:53:18/

时间序列预测在金融、天气预报、销售预测和需求预测等各个领域发挥着至关重要的作用。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 datadataset=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 modelmodel=TemporalFusionTransformer.from_dataset(dataset)trainer=pl.Trainer()trainer.fit(model, dataset.train_dataloader())# Generate predictionspredictions=model.predict(dataset.test_dataloader())# Evaluate the modelmetric=dataset.target_normalizer.metrics['mse']print(f'Test MSE: {metric(predictions, dataset.test_dataloader())}')

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

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

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

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

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


http://www.ppmy.cn/news/87441.html

相关文章

2023电工杯数学建模A题B题

占个位置吧,开始在本帖实时更新电工杯数学建模赛题思路代码,文章末尾获取! A题思路分析 问题一:1典型住户电采暖负荷用电行为分析 (1)在满足温控区间约束条件下,分析典型房间温变过程微分方程…

凌恩生物文献分享 | 癌症领域新曙光——肿瘤内微生物

上一期我们给大家介绍了肿瘤胞内菌在癌症转移中发挥的作用。2022年12月,蔡尚老师团队在Cell子刊-Trends in Cell Biology上又发表了一篇总结肿瘤内菌群在癌症转移中最新发现的综述,其中讨论了癌症治疗遇到的新挑战。 研究亮点 1)癌症转移是…

MyBatis环境搭建配置、增删改查操作、分页、事务操作、动态SQL、缓存机制、注解开发

MyBatis 文章目录 MyBatisXML语言简介用途各部分注解声明元素属性注释CDATA转义字符 搭建环境读取实体类创建实体与映射关系的文件 配置MyBatis创建工具类接口实现 Mybatis工作流程增删改查指定映射规则指定构造方法字段名称带下划线处理条件查询插入数据复杂查询和事务一对多查…

JavaWeb《后端内容:5. 项目实战:书城系统(下篇)》

目录 1. Cookie了解 Cookie在浏览器和服务器之间的传递 1. 创建Cookie对象 在客户端保存Cookie 2. 设置Cookie的有效时长 3. Cookie的应用 2. kaptcha 3. 注册功能实装 3.1 注册的初步实现 3.2 正则表达式了解 3.3 注册页面的表单验证 3.4 判断用户名是否已经被注册…

springboot国际化多语言配置

文章目录 概要springboot项目为例1 新建路径/文件2 新建两个配置类 搞一个控制器测试总结 概要 项目中有时候会用到多语言的业务场景; 一般来说都是通过后端实现的,将先有内容替换为适用的环境语言; springboot项目为例 1 新建路径/文件 新建路径static/i18n新建文件: mess…

Cadence+SPB16.2入门教程(上)

第1章焊盘制作 1.1用Pad Designer制作焊盘 Allegro中制作焊盘的工作叫Pad Designer,所有SMD焊盘、通孔焊盘以及过孔都用该工具来制作。 打开程序->Cadence SPB 16.2->PCB Editer utilities->Pad Designer,弹出焊盘制作的界面,如图1.1所示。 在Units下拉框中选择…

miniconda安装+pycharm安装

miniconda安装pycharm安装 1.miniconda安装2.pycharm安装3.pycharm环境配置 1.miniconda安装 miniconda下载路径:https://docs.conda.io/en/latest/miniconda.html 打开后选择对应的电脑系统及python版本下载 下载完成后双击运行 选择安装路径,记住安装…

Python自动化对每个文件夹及其子文件夹的Excel表加个表头(Excel不同名且有xls文件)...

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 惟将旧物表深情,钿合金钗寄将去。 大家好,我是皮皮。 一、前言 上一篇文章,我们抛出了一个问题,这篇文章…