关键词

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

PyTorch-Forecasting详细攻略

PyTorch-Forecasting是一个基于PyTorch的时间序列预测库,它为用户提供了在真实场景中应用时间序列预测的便利。下面是使用PyTorch-Forecasting的详细攻略。

PyTorch-Forecasting安装

使用pip进行安装:

pip install pytorch-forecasting

数据准备

PyTorch-Forecasting使用Pandas数据框架来加载数据。首先需要准备整洁格式的数据集,并分类为训练集和测试集。可以使用以下示例代码准备数据集:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 将日期格式转化为datetime格式
data['date'] = pd.to_datetime(data['date'], format='%Y-%m-%d')

# 对数据进行分组与整理
grouped_data = data.groupby('group')
x = []
y = []

for name, group in grouped_data:
    train_df = group.loc[group['date'] <= '2022-01-01']
    test_df = group.loc[group['date'] > '2022-01-01']

    x_train = train_df.drop(['value'], axis=1)
    y_train = train_df['value']

    x_test = test_df.drop(['value'], axis=1)
    y_test = test_df['value']

    x.append((x_train, x_test))
    y.append((y_train, y_test))

创建时间序列模型

PyTorch-Forecasting提供了多种时间序列模型可供选择。以下是一个利用LSTM网络进行时间序列预测的示例代码:

from pytorch_forecasting.models import BaseModel
from pytorch_forecasting.models.lstm import LSTM

class LSTMPredictor(BaseModel):
    def __init__(self, input_size, output_size, hidden_size, dropout):
        super().__init__(loss=nn.functional.mse_loss)
        self.LSTM = LSTM(input_size=input_size, hidden_size=hidden_size, dropout=dropout, output_size=output_size)

    def forward(self, x):
        return self.LSTM(x)

# 初始化模型
model = LSTMPredictor(input_size=10, output_size=1, hidden_size=64, dropout=0.1)

训练模型

以下是一个使用PyTorch-Forecasting训练模型的示例代码:

from pytorch_forecasting import TimeSeriesDataSet, DeepAR

# 定义训练和测试数据集
data = TimeSeriesDataSet(x, y, time_varying_known_reals=['date'])
train_loader = data.to_dataloader(train=True, batch_size=64, num_workers=0)
val_loader = data.to_dataloader(train=False, batch_size=64, num_workers=0)

# 初始化模型
model = DeepAR.from_dataset(
    data,
    learning_rate=0.01,
    log_interval=10,
    log_val_interval=1,
    weight_decay=1e-2,
)

# 训练模型
trainer = pl.Trainer()
trainer.fit(model, train_loader=train_loader, val_loader=val_loader)

预测

以下是一个使用PyTorch-Forecasting进行预测的示例代码:

# 预测数据集
predict_data = data.extract_last_prediction()

# 预测
predictions = np.vstack(model.predict(predict_data).numpy())

以上就是PyTorch-Forecasting的详细攻略。在实际应用中,可以根据自己的需求和数据类型选择适合自己的模型,并按照上述流程进行数据准备、模型创建、训练和预测处理。

本文链接:http://task.lmcjl.com/news/17282.html

展开阅读全文