gluonts.mx.distribution.empirical_distribution 模块#

class gluonts.mx.distribution.empirical_distribution.EmpiricalDistribution(samples: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], event_dim: int)[source]#

表示经验分布的类。

目标可以是向量/张量值,即 event_shape 可以大于或等于 1。但是,请注意,在计算方差和 CRPS 损失时,假设每个维度是独立的。

此外,在计算 CDF 和分位数时,假设样本沿样本维度是不同的,如果样本是从连续分布中提取的,这几乎总是正确的。

参数

samples – 包含样本的张量,形状为 (num_samples, *batch_shape, *event_shape)
  • event_dim – 事件维度的数量,即 event_shape 元组的长度。对于标量上的分布,此值为 0;对于向量,此值为 1;对于矩阵,此值为 2,依此类推。

  • property F#

arg_names: Tuple#
property batch_shape: Tuple#
分布所考虑的事件集的布局。

从分布中调用 sample() 会生成形状为 batch_shape + event_shape 的张量,而对这样的样本计算 log_prob(或更一般的 loss)会生成形状为 batch_shape 的张量。

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

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

返回在 x 处评估的累积分布函数的值。

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

根据经验分布计算 obs连续排序概率评分 (CRPS)。

obs 的最后一个维度指定了目标的“事件维度”(单变量情况下为 1)。对于多变量目标,CRSP 评分针对每个维度单独计算,然后返回它们的总和。

x – 形状为 (*batch_shape, *event_shape) 的真实值张量

samples – 包含样本的张量,形状为 (num_samples, *batch_shape, *event_shape)

返回值

形状为 (*batch_shape, 1) 的 CRPS 评分。

返回类型

张量

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 的张量。

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

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

根据分布计算在 x 处的损失。

默认情况下,此方法返回 log_prob 的负值。但是,对于某些分布,对数密度不容易计算,因此会计算其他损失函数。

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

samples – 包含样本的张量,形状为 (num_samples, *batch_shape, *event_shape)

形状为 batch_shape 的张量,包含 x 中每个事件的损失值。

形状为 (*batch_shape, 1) 的 CRPS 评分。

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

张量

property event_dim: int#

包含分布均值的张量。

quantile(level: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

计算给定级别的分位数。

level – 用于计算分位数的级别值。level 应该是一个包含介于 0 到 1 之间级别值的一维张量。

samples – 包含样本的张量,形状为 (num_samples, *batch_shape, *event_shape)

与传入级别相对应的分位数。返回的形状是

形状为 (*batch_shape, 1) 的 CRPS 评分。

(num_levels, …DISTRIBUTION_SHAPE…)

其中 DISTRIBUTION_SHAPE 是底层分布的形状。

分位数

张量

quantile_losses(obs: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], quantiles: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], levels: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

计算所有指定分位数的分位数损失。

obs – 真实观测值。形状:(batch_size, seq_len, *event_shape)

samples – 包含样本的张量,形状为 (num_samples, *batch_shape, *event_shape)
  • quantiles – 分位数。形状:(batch_size, seq_len, *event_shape, num_quantiles)

  • levels – 分位数级别。形状:(batch_size, seq_len, *event_shape, num_quantiles)

  • 分位数损失的形状为:(batch_size, seq_len, *event_shape, num_quantiles)

形状为 (*batch_shape, 1) 的 CRPS 评分。

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

张量

property event_dim: int#

从分布中抽取样本。

如果指定了 num_samples,则输出的第一个维度将是 num_samples。

num_samples – 要抽取的样本数量。

samples – 包含样本的张量,形状为 (num_samples, *batch_shape, *event_shape)
  • dtype – 样本的数据类型。

  • 包含样本的张量。如果 num_samples = None,其形状为 (*batch_shape, *eval_shape);否则形状为 (num_samples, *batch_shape, *eval_shape)

形状为 (*batch_shape, 1) 的 CRPS 评分。

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

张量

property event_dim: int#

包含分布标准差的张量。

class gluonts.mx.distribution.empirical_distribution.EmpiricalDistributionOutput(num_samples: int, distr_output: gluonts.mx.distribution.distribution_output.DistributionOutput)[source]#

这允许我们用任何参数分布封装 EmpiricalDistribution,并通过最小化 EmpiricalDistribution 样本上的 CRPS 损失来学习参数。

请参阅 test.distribution.test_mx_distribution_inference 中的推理测试 test_empirical_distribution,该测试检查 CRPS 损失是否正确实现。

args_dim: Dict[str, int]#

distr_cls: type#

distribution(distr_args, loc: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, scale: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None) gluonts.mx.distribution.distribution.Distribution[source]#
给定构造函数参数集合,以及可选的比例张量,构造相关的分布。
distr_args – 底层分布类型的构造函数参数。

loc – 可选张量,形状与结果分布的 batch_shape+event_shape 相同。

samples – 包含样本的张量,形状为 (num_samples, *batch_shape, *event_shape)
  • scale – 可选张量,形状与结果分布的 batch_shape+event_shape 相同。

  • domain_map(F, *args, **kwargs)[source]#

  • 将参数转换为正确的形状和域。

域取决于分布的类型,而正确的形状是通过重塑尾随轴获得的,使得返回的张量定义具有正确 event_shape 的分布。

property event_shape: Tuple#

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

get_args_proj(prefix: Optional[str] = None) gluonts.mx.distribution.distribution_output.ArgProj[source]#

上一页
gluonts.mx.distribution.distribution_output 模块

Copyright © 2022, Amazon