返回
深度解析GluonTS DeepAR的输入输出,开启时序预测新篇章
人工智能
2023-09-21 08:41:06
## 导语
GluonTS,一个专为时序预测而生的Python库,为我们带来了功能强大的神经网络模型DeepAR。DeepAR以其在大量相关时间序列上训练自回归递归网络模型的强大能力,在时序预测领域熠熠生辉。在本章中,我们将聚焦于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模型的训练过程,敬请期待!