返回

深度解析GluonTS DeepAR的输入输出,开启时序预测新篇章

人工智能







## 导语

GluonTS,一个专为时序预测而生的Python库,为我们带来了功能强大的神经网络模型DeepARDeepAR以其在大量相关时间序列上训练自回归递归网络模型的强大能力,在时序预测领域熠熠生辉。在本章中,我们将聚焦于DeepAR模型的输入和输出,为你的时序预测之旅保驾护航。

## 输入准备:为DeepAR模型搭建基石

DeepAR模型的输入由两部分组成:

1. **目标变量 (y):**  这是你想要预测的时序数据。它可以是连续值(如销售额或气温)或离散值(如订单数或网站点击量)。

2. **相关变量 (x):**  这些是可能影响目标变量的其他时间序列。例如,如果你想预测销售额,相关变量可能包括天气、广告支出或经济指标。

**数据准备小贴士:** 

* 确保你的数据是干净的,没有缺失值或异常值。
* 将数据划分为训练集、验证集和测试集。
* 将数据标准化或归一化,使它们具有相同的尺度。

## 模型输入格式:为DeepAR模型提供合适的数据格式

在将数据喂给DeepAR模型之前,你需要将其转换为适当的格式。GluonTS提供了多种数据加载器,可以帮助你轻松完成此任务。

```python
import gluonts.dataset.common as dataset_common
import pandas as pd

# 加载数据
data = pd.read_csv('data.csv')

# 将数据转换为GluonTS兼容的格式
train_data = dataset_common.ListDataset([{"target": data["y"].values, "start": data["start"].values}])

预测输出解析:从DeepAR模型中获取有价值的信息

经过训练后,DeepAR模型将产生预测输出。这些输出包括:

  • 预测值: 这是模型对目标变量的预测。
  • 预测间隔: 这是预测值的置信区间。
  • 不确定性: 这是预测值的估计误差。

你可以使用这些输出来评估模型的性能并做出明智的决策。

# 获取预测值
predictions = model.predict(test_data)

# 获取预测间隔
intervals = predictions.get_intervals(confidence_level=0.95)

# 获取不确定性
uncertainties = predictions.get_sigma()

结语

GluonTS DeepAR模型的输入和输出是时序预测的基础。通过理解这些概念,你将能够构建出强大的模型来解决各种时序预测问题。在下一章中,我们将深入探讨DeepAR模型的训练过程,敬请期待!