20+时序模型,GluonTS:一个专门为时间序列建模而设计的工具包

欢迎关注 ,专注 Python、数据分析、数据挖掘、好玩工具!

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

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

今天,我们介绍的这款工具为 Gluon Time Series (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模型

在这里插入图片描述

参考链接:

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

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


技术交流

欢迎转载、收藏、有所收获点赞支持一下!

在这里插入图片描述

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

长按关注

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: bp神经网络是一种广泛应用于时间序列模型的机器学习算法。在python中,我们可以使用第三方如Keras、TensorFlow或Pytorch来实现bp神经网络的时间序列模型。 首先,我们需要加载相关的数据集。假设我们要建立一个用于预测股票价格的模型,我们可以使用pandas加载股票数据,并使用其他如numpy和matplotlib进行数据处理和可视化。 接下来,我们需要对数据进行预处理。这包括数据清洗、特征提取和数据划分。我们可以使用pandas和numpy来进行这些操作。清洗数据可以包括去除无效数据、缺失值处理等。特征提取可以针对不同的时间序列问题进行,如统计特征、时序特征等。 然后,我们可以构建bp神经网络模型。可以使用Keras或其他来定义网络结构和参数。通常,bp神经网络包含多个层,如输入层、隐藏层和输出层。我们可以选择适当的激活函数、损失函数和优化算法来训练模型。 接下来,我们可以使用训练数据来训练模型。可以使用提供的API来编译和训练模型。在训练过程中,我们可以通过设置适当的超参数进行调优,如学习率、批次大小、迭代次数等。 训练完成后,我们可以使用测试数据来评估模型的性能。可以使用提供的评估指标来评估模型的准确性、精确性和召回率等。 最后,我们可以使用已经训练好的模型来进行预测。可以使用提供的API来进行预测。预测的结果可以进一步与真实值进行对比和可视化。 总的来说,使用python实现bp神经网络的时间序列模型涉及数据预处理、模型构建、训练和预测等步骤。通过调整参数和优化训练,我们可以构建一个较为准确的时间序列预测模型。 ### 回答2: BP神经网络是一种广泛应用于时间序列预测和建模的人工神经网络模型,其优势在于能够自动学习输入数据中的模式和规律。Python作为一种流行的编程语言,提供了许多强大的和工具,可以方便地实现BP神经网络时间序列模型。 在Python中,我们可以使用第三方TensorFlow或PyTorch来构建BP神经网络模型。这些提供了丰富的功能和接口,可以快速构建模型、定义网络结构和训练网络。 首先,我们需要准备时间序列数据作为模型的输入。可以使用Pandas读取和处理数据,并将其转换为神经网络可以接受的形式。 接下来,我们可以使用TensorFlow或PyTorch来创建BP神经网络模型。通过定义网络的层数、每层的神经元数量以及激活函数等参数,我们可以构建一个具有适应性和泛化能力的网络结构。 然后,我们需要使用训练数据来训练神经网络模型。通过在模型中输入训练数据,并使用反向传播算法来更新网络参数,我们可以逐步优化模型的预测能力。 在训练过程中,我们可以使用一些性能指标来评估模型的准确率和误差。常见的指标包括均方根误差(RMSE)和平均绝对百分比误差(MAPE)等,以评估模型时间序列数据上的拟合程度。 最后,我们可以使用训练好的模型进行预测。通过将新的输入数据输入到模型中,我们可以得到模型对未来时间点的预测结果。 总之,Python提供了丰富的工具和来实现BP神经网络时间序列模型。通过合理选择和参数,并进行训练和优化,我们可以构建一个准确、高效的时间序列预测模型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值