关于人工智能:PyTorchForecasting一个新的时间序列预测库

57次阅读

共计 2061 个字符,预计需要花费 6 分钟才能阅读完成。

工夫序列预测在金融、天气预报、销售预测和需求预测等各个领域施展着至关重要的作用。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

正文完
 0