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

简介: 时间序列预测在金融、天气预报、销售预测和需求预测等各个领域发挥着至关重要的作用。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

目录
相关文章
|
4月前
|
机器学习/深度学习 数据采集 PyTorch
使用 PyTorch 创建的多步时间序列预测的 Encoder-Decoder 模型
本文提供了一个用于解决 Kaggle 时间序列预测任务的 encoder-decoder 模型,并介绍了获得前 10% 结果所涉及的步骤。
71 0
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
|
4月前
|
数据可视化 计算机视觉 异构计算
确保您已经安装了必要的库,包括`torch`、`torchvision`、`segmentation_models_pytorch`、`PIL`(用于图像处理)和`matplotlib`(用于结果可视化)。您可以使用pip来安装这些库:
确保您已经安装了必要的库,包括`torch`、`torchvision`、`segmentation_models_pytorch`、`PIL`(用于图像处理)和`matplotlib`(用于结果可视化)。您可以使用pip来安装这些库:
|
6月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch在NLP任务中的应用:文本分类、序列生成等
【4月更文挑战第18天】PyTorch在NLP中应用于文本分类和序列生成,支持RNN、CNN、Transformer等模型构建。其动态计算图、丰富API及强大社区使其在NLP研究中备受欢迎。预训练模型和多模态学习的发展将进一步拓宽PyTorch在NLP的应用前景。
|
6月前
|
机器学习/深度学习 算法 PyTorch
在Python中使用LSTM和PyTorch进行时间序列预测
在Python中使用LSTM和PyTorch进行时间序列预测
|
6月前
|
机器学习/深度学习 PyTorch TensorFlow
PyTorch使用一维卷积对时间序列数据分类
PyTorch使用一维卷积对时间序列数据分类
296 0
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch torch.nn库以及nn与nn.functional有什么区别?
Pytorch torch.nn库以及nn与nn.functional有什么区别?
103 0
|
数据采集 XML 数据挖掘
计算机视觉PyTorch - 数据处理(库数据和训练自己的数据)
计算机视觉PyTorch - 数据处理(库数据和训练自己的数据)
122 1
|
机器学习/深度学习 人工智能 算法
让模型训练速度提升2到4倍,「彩票假设」作者的这个全新PyTorch库火了
让模型训练速度提升2到4倍,「彩票假设」作者的这个全新PyTorch库火了
154 0
让模型训练速度提升2到4倍,「彩票假设」作者的这个全新PyTorch库火了
|
缓存 并行计算 PyTorch
终于可用可组合函数转换库!PyTorch 1.11发布,弥补JAX短板,支持Python 3.10
终于可用可组合函数转换库!PyTorch 1.11发布,弥补JAX短板,支持Python 3.10
407 0
终于可用可组合函数转换库!PyTorch 1.11发布,弥补JAX短板,支持Python 3.10

热门文章

最新文章