PyTorch-Forecasting一个新的时间序列预测库使用详解

 更新时间:2023年05月28日 15:52:49   作者:deephub  
这篇文章主要为大家介绍了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处理时序数据感兴趣,也可以看看他的代码当作学习的参考,他的文档还是比较全面的,并且也提供了很多的示例。

以上就是PyTorch-Forecasting一个新的时间序列预测库的详细内容,更多关于PyTorch-Forecasting时间序列预测的资料请关注脚本之家其它相关文章!

相关文章

  • python如何通过正则匹配指定字符开头与结束提取中间内容

    python如何通过正则匹配指定字符开头与结束提取中间内容

    这篇文章主要介绍了python通过正则匹配指定字符开头与结束提取中间内容的操作方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • keras 如何保存最佳的训练模型

    keras 如何保存最佳的训练模型

    这篇文章主要介绍了keras 如何保存最佳的训练模型,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python 实现在文件中的每一行添加一个逗号

    Python 实现在文件中的每一行添加一个逗号

    下面小编就为大家分享一篇Python 实现在文件中的每一行添加一个逗号,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python字符串和其常用函数合集

    Python字符串和其常用函数合集

    这篇文章主要给大介绍Python字符串和分享其常用函数合集,字符串、首字母大写定义、所有字母大写、所有字母小写等函数,具有一定的参考价值,需要的朋友可以参考一下
    2022-03-03
  • Python基于SMTP协议实现发送邮件功能详解

    Python基于SMTP协议实现发送邮件功能详解

    这篇文章主要介绍了Python基于SMTP协议实现发送邮件功能,结合实例形式分析了Python使用SMTP协议实现邮件发送的相关操作技巧,并总结分析了Python发送纯文本邮件、邮件附件、图片邮件等相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • Pandas实现转换产生新列的项目实践

    Pandas实现转换产生新列的项目实践

    本文主要介绍了Pandas实现转换产生新列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • 用python实现各种数据结构

    用python实现各种数据结构

    这篇文章主要分享的是用python实现各种数据结构,快速排序、选择排序、插入排序、归并排序、堆排序heapq模块等相关资料,感兴趣的小伙伴可以参考一下
    2021-12-12
  • Python 给某个文件名添加时间戳的方法

    Python 给某个文件名添加时间戳的方法

    今天小编就为大家分享一篇Python 给某个文件名添加时间戳的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • django的autoreload机制实现

    django的autoreload机制实现

    这篇文章主要介绍了django的autoreload机制实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 聊聊python在linux下与windows下导入模块的区别说明

    聊聊python在linux下与windows下导入模块的区别说明

    这篇文章主要介绍了聊聊python在linux下与windows下导入模块的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论