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 的预测器。
- 返回类型
- 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]#
创建并返回训练和推理所需的转换。
- 返回
在训练和推理时,将按条目应用于数据集的转换。
- 返回类型
- 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_length – valid_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_length – valid_length 或 past_target 张量中有效条目的数量。形状:(batch_size,)
- 返回
损失张量。形状:(batch_size,)。
- 返回类型
Tensor