gluonts.mx.model.tpp 包#
- class gluonts.mx.model.tpp.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
目前不支持混合化。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.PointProcessGluonPredictor(input_names: typing.List[str], prediction_net: mxnet.gluon.block.Block, batch_size: int, prediction_interval_length: float, freq: str, ctx: mxnet.context.Context, input_transform: gluonts.transform._base.Transformation, dtype: typing.Type = <class 'numpy.float32'>, forecast_generator: gluonts.model.forecast_generator.ForecastGenerator = <gluonts.mx.model.tpp.predictor.PointProcessForecastGenerator object>, **kwargs)[source]#
基类:
gluonts.mx.model.predictor.GluonPredictor
标记时间点过程模型的预测器对象。
TPP 预测在几个方面与标准离散时间模型不同。首先,至少目前,只有实现 PointProcessSampleForecast 的样本预测可用。与 TPP 估计器对象类似,预测器使用
prediction_interval_length
而不是prediction_length
。预测器还考虑了预测网络输出一个包含样本本身及其 valid_length 的 2 元组张量这一事实。
- 参数
prediction_interval_length – 预测间隔的长度
- as_symbol_block_predictor(batch: Optional[Dict[str, Any]] = None, dataset: Optional[gluonts.dataset.Dataset] = None) gluonts.mx.model.predictor.SymbolBlockPredictor [source]#
返回当前
GluonPredictor
的一个变体,该变体由 Gluon SymbolBlock 支持。如果当前预测器已经是SymbolBlockPredictor
,则仅返回自身。batch 或 dataset 必须设置一个。
- 参数
batch – 底层网络调用 hybridize() 后用于必需前向传递的数据批次。
dataset – 如果未设置 batch,则从中提取批次的数据集。
- 返回
从当前预测器派生出的、由 SymbolBlock 支持的预测器。
- 返回类型
- hybridize(batch: Dict[str, Any]) None [source]#
对底层预测网络进行混合化(hybridization)。
- 参数
batch – 调用 hybridize() 后用于必需前向传递的数据批次。
- predict(dataset: gluonts.dataset.Dataset, num_samples: Optional[int] = None, num_workers: Optional[int] = None, num_prefetch: Optional[int] = None, **kwargs) Iterator[gluonts.model.forecast.Forecast] [source]#
计算所提供数据集中时间序列的预测。此方法未在此抽象类中实现;请使用其子类之一。:param dataset: 包含要预测的时间序列的数据集。
- 返回
预测的迭代器,顺序与提供的数据集迭代器相同。
- 返回类型
Iterator[Forecast]
- class gluonts.mx.model.tpp.PointProcessSampleForecast(samples: Union[mxnet.ndarray.ndarray.NDArray, numpy.ndarray], valid_length: Union[mxnet.ndarray.ndarray.NDArray, numpy.ndarray], start_date: pandas._libs.tslibs.timestamps.Timestamp, freq: str, prediction_interval_length: float, item_id: Optional[str] = None, info: Optional[Dict] = None)[source]#
基类:
gluonts.model.forecast.Forecast
用于时间点过程推理的样本预测对象。与标准预测对象不同,它不实现固定长度样本。每个样本具有可变长度,保存在单独的
valid_length
属性中。重要的是,PointProcessSampleForecast 未实现离散时间预测中可用的一些方法(例如
quantile
或plot
)。- 参数
samples – 样本的多维数组,形状为 (number_of_samples, max_pred_length, target_dim)。target_dim 等于 2,其中第一维包含到达间隔时间,第二维包含分类标记。
valid_length – 一个整数数组,表示
samples
中每个样本的有效长度。即,valid_length[0] == 2
表示samples[0, ...]
中只有前两个条目是有效的“点”。start_date (pandas._libs.tslibs.period.Period) – 样本的起始时间戳
freq – 到达间隔时间的时间单位
prediction_interval_length (float) – 抽取样本所对应的预测间隔的长度。
item_id (Optional[str]) – 项目 ID,如果可用。
info (Optional[Dict]) – 可选的附加信息字典。
- property freq#
- property index: pandas.core.indexes.period.PeriodIndex#
- mean = None#
- plot(**kwargs)[source]#
使用
matplotlib
绘制中位数预测和预测区间。默认绘制 0.5 和 0.9 预测区间。可以通过设置 intervals 选择其他区间。
这会绘制到当前的 axes 对象(通过
plt.gca()
),如果提供了ax
,则绘制到ax
。类似地,如果没有显式设置color
,则颜色使用 matplotlib 的内部颜色循环。可以设置
name
作为中位数预测的label
。除非将show_label
设置为True
,否则不标注区间。
- prediction_interval_length: float#
- prediction_length: int = None#