gluonts.mx.model.tpp.deeptpp 包#

class gluonts.mx.model.tpp.deeptpp.DeepTPPEstimator(prediction_interval_length: float, context_interval_length: float, num_marks: int, time_distr_output: gluonts.mx.model.tpp.distribution.base.TPPDistributionOutput = gluonts.mx.model.tpp.distribution.weibull.WeibullOutput(), embedding_dim: int = 5, 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=False, init='xavier', learning_rate=0.001, num_batches_per_epoch=50, weight_decay=1e-08), num_hidden_dimensions: int = 10, num_parallel_samples: int = 100, num_training_instances: int = 100, freq: str = 'H', batch_size: int = 32)[source]#

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

DeepTPP 是一个基于 RNN 的多元点过程模型。

在每次事件 \((\tau_i, m_i)\) 发生后,我们将到达间隔时间 \(\tau_i\) 和标记 \(m_i\) 输入 RNN。RNN 的状态 \(h_i\) 表示历史嵌入。我们使用 \(h_i\) 参数化下一个到达间隔时间的分布 \(p(\tau_{i+1} | h_i)\) 和下一个标记的分布 \(p(m_{i+1} | h_i)\)。标记的分布始终是分类的,但到达间隔时间的分布可以选择不同的类型 - 详见 gluonts.model.tpp.distribution

该模型是对 [DDT+16][TWJ19][SBG20] 中描述方法的泛化。

参考文献

参数
  • prediction_interval_length – 估计器在预测时将预测的区间长度(在连续时间中)。

  • context_interval_length – 估计器将用于训练的区间长度(在连续时间中)。

  • num_marks – 标记(不同过程)的数量,即标记集的基数。

  • time_distr_output – 用于到达间隔时间分布的 TPPDistributionOutput。有关可能的选择,请参阅 gluonts.model.tpp.distribution

  • embedding_dim – 标记的向量嵌入维度(用作 GRU 的输入)。

  • trainer – 将用于训练估计器的 gluonts.mx.trainer.Trainer 对象。请注意,必须设置 Trainer(hybridize=False),因为 DeepTPPEstimator 目前不支持混合化 (hybridization)。

  • num_hidden_dimensions – GRU 网络中隐藏单元的数量。

  • num_parallel_samples – 学习到的 Predictor 返回的样本数量。

  • num_training_instances – 在训练期间从数据集中的每个条目中抽样的训练实例数量。

  • freq – 类似于离散时间模型的 freq,指定了到达间隔时间所使用的时间单位。

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

create_predictor(transformation: gluonts.transform._base.Transformation, trained_network: gluonts.mx.model.tpp.deeptpp._network.DeepTPPTrainingNetwork) gluonts.model.predictor.Predictor[source]#

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

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

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

返回

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

返回类型

Predictor

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

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

参数

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

返回

数据加载器,即数据批量上的可迭代对象。

返回类型

DataLoader

create_training_network() mxnet.gluon.block.HybridBlock[source]#

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

返回

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

返回类型

HybridBlock

create_transformation() gluonts.transform._base.Transformation[source]#

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

返回

在训练和推理时,将按条目应用于数据集的转换。

返回类型

Transformation

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

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

参数

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

返回

数据加载器,即数据批量上的可迭代对象。

返回类型

DataLoader

lead_time: int#
prediction_length: int#
class gluonts.mx.model.tpp.deeptpp.DeepTPPPredictionNetwork(prediction_interval_length: float, num_parallel_samples: int =100, *args, **kwargs)[source]#

基类: gluonts.mx.model.tpp.deeptpp._network.DeepTPPNetworkBase

hybrid_forward(F, past_target: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], past_valid_length: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]][source]#

从模型中绘制前向样本。在每一步,我们对事件间隔时间进行采样,并将其输入 RNN,以获得下一个事件间隔时间分布的参数。

参数
  • F – MXNet 后端。

  • past_target – 包含过去观测值的张量。形状:(batch_size, context_length, target_dim)。必须符合 self.context_interval_length

  • past_valid_lengthvalid_length 或 past_target 张量中有效条目的数量。形状:(batch_size,)

返回

  • sampled_target (Tensor) – 预测的事件间隔时间和标记。形状:(samples, batch_size, max_prediction_length, target_dim)。

  • sampled_valid_length (Tensor) – 每个样本时间轴上的有效条目数量。形状:(samples, batch_size)

class gluonts.mx.model.tpp.deeptpp.DeepTPPTrainingNetwork(num_marks: int, interval_length: float, time_distr_output: gluonts.mx.model.tpp.distribution.base.TPPDistributionOutput = gluonts.mx.model.tpp.distribution.weibull.WeibullOutput(), embedding_dim: int = 5, num_hidden_dimensions: int =10, output_scale: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, apply_log_to_rnn_inputs: bool =True, **kwargs)[source]#

基类: gluonts.mx.model.tpp.deeptpp._network.DeepTPPNetworkBase

hybrid_forward(F, target: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], valid_length: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], **kwargs) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

计算给定序列的负对数似然损失。

由于模型是在过去(或未来)或上下文(或预测)“间隔”上训练的,而不是固定长度的“序列”,因此每个观测值的数据点数量各不相同。为了解决这个问题,数据以“不规则”张量的形式提供给训练网络。每个序列中有效条目的数量在单独的变量 xxx_valid_length 中提供。

参数
  • F – MXNet 后端。

  • target – 包含观测值的张量。形状:(batch_size, past_max_sequence_length, target_dim)。

  • valid_lengthvalid_length 或 past_target 张量中有效条目的数量。形状:(batch_size,)

返回

损失张量。形状:(batch_size,)。

返回类型

Tensor