GluonTS – 概率时间序列建模概率时间序列建模(Probabilistic Time Series
Modeling)
最近在研究时间序列预测模型的的研究。关于时间序列的更多介绍,知乎已经有大佬进行详细系统的分类介绍了。有兴趣的可最近在研究时间序列预测模型的的研究。关于时间序列的更多介绍,知乎已经有大佬进行详细系统的分类介绍了。有兴趣的可
以直接去这里看一下。以直接去这里看一下。
这里是关于GluonTS官方API中Quick Start Tutorial部分的源码学习,通过阅读教程案例进行相关的翻译和一些自己的心得总
结,如有错误,欢迎指正。官方API案例地址
1. 快速开始向导快速开始向导
GluonTS工具箱包含用于使用MXNet构建时间序列模型的组件和工具。 当前包含的模型是预测模型,但组件还支持其他时间
序列用例,例如分类或异常检测。
该工具包并非旨在作为企业或最终用户的预测解决方案,而是针对想要调整算法或构建和试验自己模型的科学家和工程师。
内容包括:内容包括:
用于构建新模型的组件(释然函数,特征处理的pipelines,日期特征,等)
数据加载和处理
多种预设模型
绘图和评估指标
人工数据集和真实数据集
导入相关库:
# Third-party imports
%matplotlib inline
import mxnet as mx
from mxnet import gluon
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import json
2. 数据集数据集datasets
GluonTS自带了许多公开的数据集,可以直接导入
from gluonts.dataset.repository.datasets import get_dataset, dataset_recipes
from gluonts.dataset.util import to_pandas
要下载其中一个内置数据集,只需使用上述名称之一调用get_dataset。 GluonTS可以重新使用保存的数据集,因此无需再次
下载:只需设置regenerate = False。
dataset = get_dataset("m4_hourly", regenerate=True)
通常,GluonTS提供的数据集是由三个主要成员组成的对象:
dataset.train 是用于训练的数据条目的可迭代集合。 每个条目对应一个时间序列
dataset.test 是用于推理的数据条目的可迭代集合。 测试数据集是火车数据集的扩展版本,在每个时间序列的末尾包含一个在训
练期间未看到的窗口。 该窗口的长度等于建议的预测长度。
dataset.metadata 包含数据集的元数据,例如时间序列的频率,建议的预测范围,相关特征等。
# 绘制训练集数据图像
entry = next(iter(dataset.train))
train_series = to_pandas(entry)
train_series.plot()
plt.grid(which="both")
plt.legend(["train series"], loc="upper left")
plt.show()
# 绘制测试集数据图像
entry = next(iter(dataset.test))
test_series = to_pandas(entry)
test_series.plot()
plt.axvline(train_series.index[-1], color='r') # end of train dataset
plt.grid(which="both")
plt.legend(["test series", "end of train series"], loc="upper left")
plt.show()
print(f"Length of forecasting window in test dataset: {len(test_series) - len(train_series)}")
print(f"Recommended prediction horizon: {dataset.metadata.prediction_length}")
print(f"Frequency of the time series: {dataset.metadata.freq}")
评论0