时间序列数据是以时间为索引的数据点的集合,它存在于各个领域和行业,零售行业的商品销售时间序列,来自监控设备、应用程序或云资源的指标,或者物联网传感器生成的测量时间序列等等,都是时间序列数据的例子。

与时间序列有关的最常见机器学习任务,包括_预测、平滑处理、侦测(例如界外值、异常点或变化点侦测)以及分类等。

今天,我们介绍的这款工具为 Gluon Time Series (GluonTS),它是一个专门为概率时间序列建模而设计的工具包,GluonTS 简化了时间序列模型的开发和实验,用于预测或异常检测等常见任务。

文章目录

  • 技术提升
  • GluonTS特点
  • 安装
  • 入门
  • GluonTS模型

GluonTS特点

借助 GluonTS,用户可以利用包含有用抽象的预构建块来构建时间序列模型。GluonTS 还利用这些构建块构建了流行模型的参考实现,这些参考实现既可以作为模型探索的出发点,也可以用于模型的比较。

此外,GluonTS 中包含了多种工具,让研究人员不再需要重复实施数据处理、回测、模型比较和评估的方法。

安装

pip install gluonts 
# as gluonts relies on mxnet 
# install MXnet using
pip pip install mxnet

入门

我们已经看到使用 TensorFlow 和 PyTorch 进行时间序列预测,但它们带有大量代码并且需要对框架非常熟练。 GluonTS 提供用于运行时间序列预测的简单且即时的代码,这里是运行 GluonTS 以使用 DeepAR 预测 Twitter 数量的示例代码。

from gluonts.dataset import common
from gluonts.model import deepar
from gluonts.trainer import Trainer
import pandas as pd

#读取数据
url = "https://raw.githubusercontent.com/numenta/NAB/master/data/realTweets/Twitter_volume_AMZN.csv"
df = pd.read_csv(url, header=0, index_col=0)
data = common.ListDataset([{
    "start": df.index[0],
    "target": df.value[:"2015-04-05 00:00:00"]
}], freq="5min")
                          
#初始化deepAR模型
trainer = Trainer(epochs=10)
estimator = deepar.DeepAREstimator(
    freq="5min", prediction_length=12, trainer=trainer)
predictor = estimator.train(training_data=data)

# 得到预测结果
prediction = next(predictor.predict(data))
print(prediction.mean)
prediction.plot(output_file='graph.png')

下面是 AMZN 股票代码的推文量预测的案例

时间序列数据训练深度学习模型案例 基于时间序列模型_人工智能

GluonTS模型

时间序列数据训练深度学习模型案例 基于时间序列模型_python_02

参考链接:

https://analyticsindiamag.com/gluonts-pytorchts-for-time-series-forecasting/

https://github.com/awslabs/gluon-ts