gluonts.mx.distribution.piecewise_linear 模块#

class gluonts.mx.distribution.piecewise_linear.FixedKnotsArgProj(knot_spacings: mxnet.ndarray.ndarray.NDArray, **kwargs)[source]#

基类: gluonts.mx.distribution.distribution_output.ArgProj

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

覆盖以构造此 Block 的符号图。

参数
  • x (SymbolNDArray) – 第一个输入张量。

  • ****args** (Symbol 列表NDArray 列表) – 附加输入张量。

class gluonts.mx.distribution.piecewise_linear.FixedKnotsPiecewiseLinearOutput(quantile_levels: Union[List[float], numpy.ndarray])[source]#

基类: gluonts.mx.distribution.piecewise_linear.PiecewiseLinearOutput

PiecewiseLinearOutput 的一个简单扩展,它“固定”了分位数函数表示中的节点位置。也就是说,不是用分段数进行初始化,而是在初始化时直接提供分位数。

参数

**quantile_levels** –

分位数函数定义域(即区间 [0,1])内的点, piecewise linear 近似法的节点将固定在此处,按升序提供。

有关分段线性分位数函数的更多信息,请参阅 gluonts.distribution.PiecewiseLinear

distr_cls#

别名 gluonts.mx.distribution.piecewise_linear.PiecewiseLinear

classmethod domain_map(F, gamma, slopes, knot_spacings)[source]#

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

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

get_args_proj(prefix: Optional[str] = None) gluonts.mx.distribution.distribution_output.ArgProj[source]#
class gluonts.mx.distribution.piecewise_linear.PiecewiseLinear(gamma: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], slopes: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], knot_spacings: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol])[source]#

基类: gluonts.mx.distribution.distribution.Distribution

分段线性分布。

此类表示与分布关联的分位数函数(即逆 CDF),作为在 [0, 1] 区间内定义的连续、非递减、分段线性函数

\[q(x; \gamma, b, d) = \gamma + \sum_{l=0}^L b_l (x_l - d_l)_+\]

其中输入 \(x \in [0,1]\),参数为

  • \(\gamma\): 0 处的截距

  • \(b\): 连续分段的斜率差

  • \(d\): 节点位置

参数
  • **gamma** – 包含 0 处截距的张量

  • **slopes** – 包含每个线性分段斜率的张量。所有系数必须为正。形状: (*gamma.shape, num_pieces)

  • **knot_spacings** – 包含样条节点之间间距的张量。所有系数必须为正,并且在最后一个轴上总和为一。形状: (*gamma.shape, num_pieces)

  • **F** –

property F#
arg_names: Tuple#
property args: List#
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]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

计算分位数水平 \(\alpha\),使得 \(q(\alpha) = x\)

参数

**x** – 形状为 gamma.shape 的张量

返回

形状为 gamma.shape 的张量

返回类型

张量

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

以解析形式计算 CRPS。

参数

**x** – 要评估的观测值。形状等于 gamma.shape。

返回

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

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

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

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

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

参数

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

返回

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

返回类型

张量

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 之间水平值的一维张量。

返回

与传递的水平相对应的分位数。返回形状为

(num_levels, …DISTRIBUTION_SHAPE…),

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

返回类型

分位数

quantile_internal(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], axis: Optional[int] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

评估在包含于 x 中的分位数水平上的分位数函数。

参数
  • **x** – 如果 axis=None,则形状为 *gamma.shape 的张量,否则在指定位置包含一个附加轴。

  • **axis** – 包含要计算的不同分位数水平的轴的索引。

返回

分位数张量,形状与 x 相同。

返回类型

张量

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

从分布中抽取样本。

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

参数
  • **num_samples** – 要抽取的样本数量。

  • **dtype** – 样本的数据类型。

返回

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

返回类型

张量

class gluonts.mx.distribution.piecewise_linear.PiecewiseLinearOutput(num_pieces: int)[source]#

基类: gluonts.mx.distribution.distribution_output.DistributionOutput

distr_cls#

别名 gluonts.mx.distribution.piecewise_linear.PiecewiseLinear

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.piecewise_linear.PiecewiseLinear[source]#

给定构造函数参数集合以及可选的尺度张量,构造关联的分布。

参数
  • **distr_args** – 底层分布类型的构造函数参数。

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

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

classmethod domain_map(F, gamma, slopes, knot_spacings)[source]#

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

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

property event_shape: Tuple#

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

class gluonts.mx.distribution.piecewise_linear.TransformedPiecewiseLinear(base_distribution: gluonts.mx.distribution.piecewise_linear.PiecewiseLinear, transforms: List[gluonts.mx.distribution.bijection.Bijection])[source]#

基类: gluonts.mx.distribution.transformed_distribution.TransformedDistribution, gluonts.mx.distribution.piecewise_linear.PiecewiseLinear

arg_names: Tuple#
crps(y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

根据分布计算 x 的连续排序概率评分 (CRPS)。

参数

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

返回

形状为 batch_shape 的张量,根据分布,包含 x 中每个事件的 CRPS 评分。

返回类型

张量