GluonTS 项目介绍
GluonTS 是一个用于概率时间序列建模的 Python 软件包,其着重于基于深度学习的模型,支持 PyTorch 和 MXNet 两大深度学习框架。GluonTS 的目标是帮助用户通过先进的深度学习方法来处理时间序列数据,进行预测及分析。
安装
GluonTS 支持 Python 3.7 及以上版本,用户可以通过 pip
简单安装。根据需要,用户可以选择安装支持 PyTorch 或 MXNet 的版本:
# 安装支持 PyTorch 的版本
pip install "gluonts[torch]"
# 安装支持 MXNet 的版本
pip install "gluonts[mxnet]"
详细的安装说明可以参考 文档。
简单实例
为了演示 GluonTS 的使用,我们可以训练一个 DeepAR 模型并对航空乘客数据集进行预测。这个数据集包含了1949年至1960年每月乘客人数的单个时间序列。我们可以使用前九年数据进行训练,并预测之后三年的数据。以下是一个简单的代码示例:
import pandas as pd
import matplotlib.pyplot as plt
from gluonts.dataset.pandas import PandasDataset
from gluonts.dataset.split import split
from gluonts.torch import DeepAREstimator
# 从CSV文件加载数据到 PandasDataset
df = pd.read_csv(
"https://raw.githubusercontent.com/AileenNielsen/"
"TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv",
index_col=0,
parse_dates=True,
)
dataset = PandasDataset(df, target="#Passengers")
# 将数据分为训练和测试
training_data, test_gen = split(dataset, offset=-36)
test_data = test_gen.generate_instances(prediction_length=12, windows=3)
# 训练模型并进行预测
model = DeepAREstimator(
prediction_length=12, freq="M", trainer_kwargs={"max_epochs": 5}
).train(training_data)
forecasts = list(model.predict(test_data.input))
# 绘制预测结果
plt.plot(df["1954":], color="black")
for forecast in forecasts:
forecast.plot()
plt.legend(["True values"], loc="upper left", fontsize="xx-large")
plt.show()
预测结果以概率分布的形式显示,阴影区域代表 50% 和 90% 的预测区间。
贡献与引用
GluonTS 是一个开源项目,欢迎有兴趣的开发者参与贡献。有关贡献的更多信息,请查阅 贡献指南。
如果您在学术出版物中使用 GluonTS,我们鼓励您引用以下论文:
@article{gluonts_jmlr,
author = {Alexander Alexandrov and Konstantinos Benidis and Michael Bohlke-Schneider
and Valentin Flunkert and Jan Gasthaus and Tim Januschowski and Danielle C. Maddix
and Syama Rangapuram and David Salinas and Jasper Schulz and Lorenzo Stella and
Ali Caner Türkmen and Yuyang Wang},
title = {{GluonTS: Probabilistic and Neural Time Series Modeling in Python}},
journal = {Journal of Machine Learning Research},
year = {2020},
volume = {21},
number = {116},
pages = {1-6},
url = {http://jmlr.org/papers/v21/19-820.html}
}
相关链接
教程与研讨会
GluonTS 提供了丰富的教程和研讨会资源,帮助用户深入理解和应用这款工具: