gluonts.mx.model.tpp.distribution.weibull 模块#

class gluonts.mx.model.tpp.distribution.weibull.Weibull(rate: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], shape: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol])[source]#

基类: gluonts.mx.model.tpp.distribution.base.TPPDistribution

威布尔分布。

我们使用速率参数 \(b > 0\) 和形状参数 \(k > 0\) 对威布尔分布进行参数化。PDF 为 \(p(x) = b * k * x^{(k - 1)} * \exp(-b * x^k)\)。另一种常用的参数化(例如维基百科)使用尺度参数 \(\lambda > 0\) 和形状参数 \(k > 0\),其中 \(\lambda = b^{-1/k}\)

arg_names: Tuple#
property batch_shape: Tuple#

分布所考虑的事件集合的布局。

从分布中调用 sample() 会产生形状为 batch_shape + event_shape 的张量,并且在该样本上计算 log_prob(更一般地说是 loss)会产生形状为 batch_shape 的张量。

此属性通常仅在 mx.ndarray 模式下可用,此时可以访问分布参数的形状。

property event_dim: int#

事件维度数量,即 event_shape 元组的长度。

对于标量分布,此值为 0;对于向量分布为 1;对于矩阵分布为 2,依此类推。

property event_shape: Tuple#

分布所考虑的每个独立事件的形状。

例如,标量分布的 event_shape = (),向量分布的 event_shape = (d, )(其中 d 是向量的长度),矩阵分布的 event_shape = (d1, d2),依此类推。

从分布中调用 sample() 会产生形状为 batch_shape + event_shape 的张量。

此属性通常仅在 mx.ndarray 模式下可用,此时可以访问分布参数的形状。

is_reparametrizable = True#
log_intensity(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

强度(也称为风险)函数的对数。

强度定义为 \(\lambda(x) = p(x) / S(x)\)

威布尔分布的强度为 \(\lambda(x) = b * k * x^{k - 1}\)

log_prob(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

计算分布在 x 处的对数密度。

参数

x – 形状为 (*batch_shape, *event_shape) 的张量。

返回值

形状为 batch_shape 的张量,包含 x 中每个事件的分布对数密度。

返回值类型

Tensor

log_survival(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

生存函数的对数。

\(\log S(x) = \log(1 - CDF(x))\).

威布尔分布的生存函数为 \(S(x) = \exp(-b * x^k)\)

property mean: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]#

包含分布均值的张量。

sample(num_samples=None, dtype=<class 'numpy.float32'>, lower_bound: typing.Optional[typing.Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

从分布中抽取样本。

我们通过 \(u \sim Uniform(0, 1), x = S^{-1}(u)\) 生成样本,其中 \(S^{-1}\) 是生存函数 \(S(x) = 1 - CDF(x)\) 的逆。

参数
  • num_samples – 要生成的样本数量。

  • dtype – 生成样本的数据类型。

  • lower_bound – 如果为 None,则照常生成样本。如果提供了 lower_bound,则所有生成的样本都将大于指定值。也就是说,我们从 p(x | x > lower_bound) 中采样。形状: (*batch_size)

返回值

采样的事件间隔时间。形状: (num_samples, *batch_size)

返回值类型

x

class gluonts.mx.model.tpp.distribution.weibull.WeibullOutput[source]#

基类: gluonts.mx.model.tpp.distribution.base.TPPDistributionOutput

args_dim: Dict[str, int] = {'rate': 1, 'shape': 1}#
distr_cls#

别名: gluonts.mx.model.tpp.distribution.weibull.Weibull

classmethod domain_map(F, rate, shape)[source]#

将原始张量映射为构建威布尔分布的有效参数。

参数
  • F – MXNet 后端。

  • rate – 威布尔分布的速率(尺度倒数)参数。形状 (*batch_shape, 1)

  • shape – 威布尔分布的形状参数。形状 (*batch_shape, 1)

返回值

两个形状为 (*batch_shape) 的挤压张量。两个张量均为严格正值。

返回值类型

Tuple[Tensor, Tensor]

property event_shape: Tuple#

此对象构建的分布所考虑的每个独立事件的形状。