gluonts.mx.model.n_beats package#

class gluonts.mx.model.n_beats.NBEATSEnsembleEstimator(freq: str, prediction_length: int, meta_context_length: Optional[List[int]] = None, meta_loss_function: Optional[List[str]] = None, meta_bagging_size: int = 10, trainer: gluonts.mx.trainer._base.Trainer = gluonts.mx.trainer._base.Trainer(add_default_callbacks=True, callbacks=None, clip_gradient=10.0, ctx=None, epochs=100, hybridize=True, init='xavier', learning_rate=0.001, num_batches_per_epoch=50, weight_decay=1e-08), num_stacks: int = 30, widths: Optional[List[int]] = None, num_blocks: Optional[List[int]] = None, num_block_layers: Optional[List[int]] = None, expansion_coefficient_lengths: Optional[List[int]] = None, sharing: Optional[List[bool]] = None, stack_types: Optional[List[str]] = None, aggregation_method: str = 'median', **kwargs)[source]#

基类: gluonts.model.estimator.Estimator

一个 N-BEATS 集成估计器(近似),如论文所述:https://arxiv.org/abs/1905.10437

三个元参数 ‘meta_context_length’、‘meta_loss_function’ 和 ‘meta_bagging_size’ 共同定义了子模型的组合方式。集成模型使用的模型总数是

|meta_context_length| x |meta_loss_function| x meta_bagging_size

此实现与论文相比值得注意的区别:* 参数 L_H 未实现;我们使用 GluonTS 中的默认方法“InstanceSplitter”采样训练序列。

参数
  • freq – 数据的时间粒度

  • prediction_length (int) – 预测长度。也称为“预测范围”(horizon)。

  • meta_context_length – 用于训练模型的不同“context_length”(也称为“回顾期”)。“context_length”是用于预测的时间单元数。默认和推荐值:[multiplier * prediction_length for multiplier in range(2, 7)]

  • meta_loss_function – 用于训练模型的不同“loss_function”(也称为指标)。与 GluonTS 中的其他模型不同,此网络不使用分布。以下之一:“sMAPE”、“MASE”或“MAPE”。默认和推荐值:[“sMAPE”, “MASE”, “MAPE”]

  • meta_bagging_size – 共享“context_length”和“loss_function”参数组合的模型数量。每个模型都会获得不同的随机初始化。默认和推荐值:10

  • trainer – 要使用的 Trainer 对象(默认值:Trainer())

  • num_stacks – 网络应包含的堆栈数量。泛型模式的默认和推荐值:30 可解释模式的推荐值:2

  • num_blocks – 每个堆栈的块数量。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[1] 可解释模式的推荐值:[3]

  • block_layers – 每个块中带有 ReLu 激活的全连接层数量。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[4] 可解释模式的推荐值:[4]

  • widths – 块中带有 ReLu 激活的全连接层宽度。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[512] 可解释模式的推荐值:[256, 2048]

  • sharing – 权重是否与每个堆栈中的其他块共享。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[False] 可解释模式的推荐值:[True]

  • expansion_coefficient_lengths – 如果类型是“G”(泛型),则为展开系数的长度。如果类型是“T”(趋势),则对应于多项式的次数。如果类型是“S”(季节性),则不使用。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认值:[32] 可解释模式的推荐值:[3]

  • stack_types – 以下值之一:“G”(泛型)、“S”(季节性)或“T”(趋势)。长度为 1 或 ‘num_stacks’ 的字符串列表。泛型模式的默认和推荐值:[“G”] 可解释模式的推荐值:[“T”,”S”]

  • aggregation_method – 用于聚合模型个体预测的方法。可以是 ‘median’(中位数)、‘mean’(均值)或 ‘none’(不进行聚合)。默认为 ‘median’。

  • **kwargs – 传递给个体估计器的参数。

classmethod from_hyperparameters(**hyperparameters) gluonts.mx.model.n_beats._ensemble.NBEATSEnsembleEstimator#
lead_time: int#
prediction_length: int#
train(training_data: gluonts.dataset.Dataset, validation_data: Optional[gluonts.dataset.Dataset] = None) gluonts.mx.model.n_beats._ensemble.NBEATSEnsemblePredictor#

在给定数据上训练估计器。

参数
  • training_data – 用于训练模型的数据集。

  • validation_data – 训练期间用于验证模型的数据集。

返回值

包含训练好的模型的预测器。

返回类型

Predictor

train_from(predictor: gluonts.model.predictor.Predictor, training_data: gluonts.dataset.Dataset, validation_data: Optional[gluonts.dataset.Dataset] = None) gluonts.mx.model.n_beats._ensemble.NBEATSEnsemblePredictor#
class gluonts.mx.model.n_beats.NBEATSEnsemblePredictor(prediction_length: int, predictors: List[gluonts.mx.model.predictor.RepresentableBlockPredictor], aggregation_method: Optional[str] = 'median')[source]#

基类: gluonts.model.predictor.Predictor

一个 N-BEATS 集成预测器。调用 ‘.predict’ 将会得到

|predictors|x|dataset|

预测结果,如果 aggregation_method 是 ‘none’,否则会得到

|dataset|
参数
  • prediction_length – 预测范围。

  • predictors – 集成模型包含的 ‘RepresentableBlockPredictor’ 列表。

  • aggregation_method – 用于聚合模型个体预测的方法。可以是 ‘median’(中位数)、‘mean’(均值)或 ‘none’(不进行聚合)。默认为 ‘median’。

classmethod deserialize(path: pathlib.Path, ctx: Optional[mxnet.context.Context] = None, **kwargs) gluonts.mx.model.n_beats._ensemble.NBEATSEnsemblePredictor#

从给定路径加载序列化的 NBEATSEnsemblePredictor。

参数
  • path – 序列化文件预测器的路径。

  • ctx – 与预测器一起使用的可选 mxnet 上下文参数。如果未传递任何内容,将使用可用的 GPU,否则使用 CPU。

hybridize(batch: Dict[str, Any]) None#
predict(dataset: gluonts.dataset.Dataset, num_samples: Optional[int] = 1, **kwargs) Iterator[gluonts.model.forecast.Forecast]#

计算提供的 datasets 中时间序列的预测结果。此方法未在此抽象类中实现;请使用其中一个子类。:param dataset: 包含要预测的时间序列的数据集。

返回值

按数据集迭代器提供的相同顺序,对预测结果进行迭代。

返回类型

Iterator[Forecast]

serialize(path: pathlib.Path) None#
set_aggregation_method(aggregation_method: str)#
class gluonts.mx.model.n_beats.NBEATSEstimator(freq: str, prediction_length: int, context_length: Optional[int] = None, trainer: gluonts.mx.trainer._base.Trainer = gluonts.mx.trainer._base.Trainer(add_default_callbacks=True, callbacks=None, clip_gradient=10.0, ctx=None, epochs=100, hybridize=True, init='xavier', learning_rate=0.001, num_batches_per_epoch=50, weight_decay=1e-08), num_stacks: int = 30, widths: Optional[List[int]] = None, num_blocks: Optional[List[int]] = None, num_block_layers: Optional[List[int]] = None, expansion_coefficient_lengths: Optional[List[int]] = None, sharing: Optional[List[bool]] = None, stack_types: Optional[List[str]] = None, loss_function: Optional[str] = 'MAPE', train_sampler: Optional[gluonts.transform.sampler.InstanceSampler] = None, validation_sampler: Optional[gluonts.transform.sampler.InstanceSampler] = None, batch_size: int = 32, scale: bool = False, **kwargs)[source]#

基类: gluonts.mx.model.estimator.GluonEstimator

一个基于单个 (!) NBEATS 网络(近似)的估计器,如论文所述:https://arxiv.org/abs/1905.10437。实际的 NBEATS 模型是 NBEATS 网络的集成,由“NBEATSEnsembleEstimator”实现。

此实现与论文相比值得注意的区别:* 参数 L_H 未实现;我们使用 GluonTS 中的默认方法“InstanceSplitter”采样训练序列。

参数
  • freq – 数据的时间粒度

  • prediction_length (int) – 预测长度。也称为“预测范围”(horizon)。

  • context_length – 用于预测的时间单元数。也称为“回顾期”。默认值为 2 * prediction_length。

  • trainer – 要使用的 Trainer 对象(默认值:Trainer())

  • num_stacks – 网络应包含的堆栈数量。泛型模式的默认和推荐值:30 可解释模式的推荐值:2

  • num_blocks – 每个堆栈的块数量。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[1] 可解释模式的推荐值:[3]

  • block_layers – 每个块中带有 ReLu 激活的全连接层数量。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[4] 可解释模式的推荐值:[4]

  • widths – 块中带有 ReLu 激活的全连接层宽度。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[512] 可解释模式的推荐值:[256, 2048]

  • sharing – 权重是否与每个堆栈中的其他块共享。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认和推荐值:[False] 可解释模式的推荐值:[True]

  • expansion_coefficient_lengths – 如果类型是“G”(泛型),则为展开系数的长度。如果类型是“T”(趋势),则对应于多项式的次数。如果类型是“S”(季节性),则不使用。长度为 1 或 ‘num_stacks’ 的整数列表。泛型模式的默认值:[32] 可解释模式的推荐值:[3]

  • stack_types – 以下值之一:“G”(泛型)、“S”(季节性)或“T”(趋势)。长度为 1 或 ‘num_stacks’ 的字符串列表。泛型模式的默认和推荐值:[“G”] 可解释模式的推荐值:[“T”,”S”]

  • loss_function – 用于训练网络的损失函数(也称为指标)。与 GluonTS 中的其他模型不同,此网络不使用分布。以下之一:“sMAPE”、“MASE”或“MAPE”。默认值为“MAPE”。

  • train_sampler – 控制训练期间窗口的采样。

  • validation_sampler – 控制验证期间窗口的采样。

  • batch_size – 训练和预测中使用的批量大小。

  • scale – 如果为 True,则按均值缩放输入观测值

  • kwargs – 传递给 ‘GluonEstimator’ 的参数。

create_predictor(transformation: gluonts.transform._base.Transformation, trained_network: mxnet.gluon.block.HybridBlock) gluonts.model.predictor.Predictor#

创建并返回一个预测器对象。

参数
  • transformation – 应用于进入模型前的数据的转换。

  • module – 一个训练好的 HybridBlock 对象。

返回值

一个包装用于推理的 HybridBlock 的预测器。

返回类型

Predictor

create_training_data_loader(data: gluonts.dataset.Dataset, **kwargs) Iterable[Dict[str, Any]]#

创建用于训练的数据加载器。

参数

data – 用于创建数据加载器的数据集。

返回值

数据加载器,即数据批次的迭代器。

返回类型

DataLoader

create_training_network() mxnet.gluon.block.HybridBlock#

创建并返回用于训练(即计算损失)的网络。

返回值

根据输入数据计算损失的网络。

返回类型

HybridBlock

create_transformation() gluonts.transform._base.Transformation#

创建并返回训练和推理所需的转换。

返回值

在训练和推理时逐条应用于数据集的转换。

返回类型

Transformation

create_validation_data_loader(data: gluonts.dataset.Dataset, **kwargs) Iterable[Dict[str, Any]]#

创建用于验证的数据加载器。

参数

data – 用于创建数据加载器的数据集。

返回值

数据加载器,即数据批次的迭代器。

返回类型

DataLoader

lead_time: int#
prediction_length: int#