gluonts.mx.distribution.piecewise_linear 模块#
- class gluonts.mx.distribution.piecewise_linear.FixedKnotsArgProj(knot_spacings: mxnet.ndarray.ndarray.NDArray, **kwargs)[source]#
- 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
。
- 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
- 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#