Table Of Contents
Table Of Contents

gluonts.distribution.piecewise_linear module

class gluonts.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], F=None)[source]

Bases: gluonts.distribution.distribution.Distribution

Piecewise linear distribution.

This class represents the quantile function (i.e., the inverse CDF) associated with the a distribution, as a continuous, non-decreasing, piecewise linear function defined in the [0, 1] interval:

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

where the input \(x \in [0,1]\) and the parameters are

  • \(\gamma\): intercept at 0
  • \(b\): differences of the slopes in consecutive pieces
  • \(d\): knot positions
Parameters:
  • gamma – Tensor containing the intercepts at zero
  • slopes – Tensor containing the slopes of each linear piece. All coefficients must be positive. Shape: (*gamma.shape, num_pieces)
  • knot_spacings – Tensor containing the spacings between knots in the splines. All coefficients must be positive and sum to one on the last axis. Shape: (*gamma.shape, num_pieces)
  • F
batch_shape

Layout of the set of events contemplated by the distribution.

Invoking sample() from a distribution yields a tensor of shape batch_shape + event_shape, and computing log_prob (or loss more in general) on such sample will yield a tensor of shape batch_shape.

This property is available in general only in mx.ndarray mode, when the shape of the distribution arguments can be accessed.

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

Computes the quantile level \(\alpha\) such that \(q(\alpha) = x\).

Parameters:x – Tensor of shape gamma.shape
Returns:Tensor of shape gamma.shape
Return type:Tensor
crps(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Compute CRPS in analytical form.

Parameters:x – Observation to evaluate. Shape equals to gamma.shape.
Returns:Tensor containing the CRPS.
Return type:Tensor
event_dim

Number of event dimensions, i.e., length of the event_shape tuple.

This is 0 for distributions over scalars, 1 over vectors, 2 over matrices, and so on.

event_shape

Shape of each individual event contemplated by the distribution.

For example, distributions over scalars have event_shape = (), over vectors have event_shape = (d, ) where d is the length of the vectors, over matrices have event_shape = (d1, d2), and so on.

Invoking sample() from a distribution yields a tensor of shape batch_shape + event_shape.

This property is available in general only in mx.ndarray mode, when the shape of the distribution arguments can be accessed.

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

Compute the loss at x according to the distribution.

By default, this method returns the negative of log_prob. For some distributions, however, the log-density is not easily computable and therefore other loss functions are computed.

Parameters:x – Tensor of shape (*batch_shape, *event_shape).
Returns:Tensor of shape batch_shape containing the value of the loss for each event in x.
Return type:Tensor
quantile(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], axis: Optional[int] = None) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Evaluates the quantile function at the quantile levels contained in x.

Parameters:
  • x – Tensor of shape *gamma.shape if axis=None, or containing an additional axis on the specified position, otherwise.
  • axis – Index of the axis containing the different quantile levels which are to be computed.
Returns:

Quantiles tensor, of the same shape as x.

Return type:

Tensor

sample(num_samples: Optional[int] = None) → Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]

Draw samples from the distribution.

If num_samples is given the first dimension of the output will be num_samples.

Returns:A tensor containing samples. This has shape (*batch_shape, *eval_shape) if num_samples = None and (num_samples, *batch_shape, *eval_shape) otherwise.
Return type:Tensor
class gluonts.distribution.piecewise_linear.PiecewiseLinearOutput(num_pieces: int)[source]

Bases: gluonts.distribution.distribution_output.DistributionOutput

distr_cls

alias of PiecewiseLinear

distribution(distr_args, scale: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol, None] = None, **kwargs) → gluonts.distribution.piecewise_linear.PiecewiseLinear[source]

Construct the associated distribution, given the collection of constructor arguments and, optionally, a scale tensor.

Parameters:
  • distr_args – Constructor arguments for the underlying Distribution type.
  • scale – Optional tensor, of the same shape as the batch_shape+event_shape of the resulting distribution.
classmethod domain_map(F, gamma, slopes, knot_spacings)[source]

Converts arguments to the right shape and domain. The domain depends on the type of distribution, while the correct shape is obtained by reshaping the trailing axis in such a way that the returned tensors define a distribution of the right event_shape.

event_shape

Shape of each individual event contemplated by the distributions that this object constructs.

class gluonts.distribution.piecewise_linear.TransformedPiecewiseLinear(base_distribution: gluonts.distribution.piecewise_linear.PiecewiseLinear, *transforms)[source]

Bases: gluonts.distribution.transformed_distribution.TransformedDistribution, gluonts.distribution.piecewise_linear.PiecewiseLinear

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

Compute the continuous rank probability score (CRPS) of x according to the distribution.

Parameters:x – Tensor of shape (*batch_shape, *event_shape).
Returns:Tensor of shape batch_shape containing the CRPS score, according to the distribution, for each event in x.
Return type:Tensor