gluonts.mx.block.quantile_output 模块#

class gluonts.mx.block.quantile_output.IncrementalDenseLayerProjection(num_outputs: int, **kwargs)[source]#

基类: mxnet.gluon.block.HybridBlock

一个输出非递减值的全连接层。

参数

num_outputs – 层的输出数量。

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

重写此方法以构建此 Block 的符号图。

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

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

class gluonts.mx.block.quantile_output.IncrementalQuantileOutput(quantiles: List[float], quantile_weights: Optional[List[float]] = None)[source]#

基类: gluonts.mx.block.quantile_output.QuantileOutput

使用分位数损失和投影层将分位数输出连接到网络的输出层。

QuantileOutput 不同,此类强制执行分位数之间的正确顺序关系:这是通过对分位数之间的增量进行参数化而不是直接对分位数进行参数化来实现的。

参数
  • quantiles – 用于计算损失的分位数列表。

  • quantile_weights – 分位数的权重。

get_loss() mxnet.gluon.block.HybridBlock[source]#
返回值

构建分位数损失对象。

返回类型

nn.HybridBlock

get_quantile_proj(**kwargs) mxnet.gluon.block.HybridBlock[source]#
返回值

构建投影参数对象。

返回类型

nn.HybridBlock

class gluonts.mx.block.quantile_output.QuantileLoss(quantiles: List[float], quantile_weights: Optional[List[float]] = None, weight: Optional[float] = None, batch_axis: int = 0, **kwargs)[source]#

基类: mxnet.gluon.loss.Loss

static compute_quantile_loss(F, y_true: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], y_pred_p: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], p: float) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#

计算给定分位数的损失。

参数
  • F – 在 MXNet 中可以引用 Symbol API 或 NDArray API 的模块。

  • y_true – 用于计算损失的真实值。

  • y_pred_p – 预测的目标分位数,与 y_true 形状相同。

  • p – 用于计算损失的分位数误差。

返回值

分位数损失,形状: (N1 x N2 x … x Nk x 1)

返回类型

张量

hybrid_forward(F, y_true: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], y_pred: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], sample_weight=None)[source]#

计算分位数损失的加权和。

参数
  • F – 在 MXNet 中可以引用 Symbol API 或 NDArray API 的模块。

  • y_true – 真实值,形状 (N1 x N2 x … x Nk)

  • y_pred – 预测目标,形状 (N1 x N2 x … x Nk x num_quantiles)

  • sample_weight – 样本权重

返回值

分位数损失的加权和,形状 N1 x N1 x … Nk

返回类型

张量

class gluonts.mx.block.quantile_output.QuantileOutput(quantiles: List[float], quantile_weights: Optional[List[float]] = None)[source]#

基类: object

使用分位数损失和投影层将分位数输出连接到网络的输出层。

参数
  • quantiles – 用于计算损失的分位数列表。

  • quantile_weights – 分位数的权重。

get_loss() mxnet.gluon.block.HybridBlock[source]#
返回值

构建分位数损失对象。

返回类型

nn.HybridBlock

get_quantile_proj(**kwargs) mxnet.gluon.block.HybridBlock[source]#
property quantiles: List[float]#
gluonts.mx.block.quantile_output.crps_weights_pwl(quantile_levels: List[float]) List[float][source]#

在线性插值假设下,计算使平均分位数损失等于 CRPS 的分位数损失权重。

假设分位数水平按递增顺序排序。

在线性插值假设下

\[CRPS = sum_{i=0}^{n-1} 0.5 * (q_{i+1}-q_{i}) * (z_{i+1}+z_{i})\]

其中 \(z_i\) 是第 i 个分位数预测 \(q_i\)。

由于伸缩和特性,内部项相互抵消,我们得到

\[CRPS = sum_{i=1}^n w_i z_i\]

其中 \(i = 1, ..., n-1\) 时,权重 \(w_i = (q_{i+1}-q_{i-1})/2\);\(w_0 = (q_1-q_0)/2\);\(w_n = (w_n - w_{n-1})/2\)。

gluonts.mx.block.quantile_output.uniform_weights(objects: list) List[float][source]#

>>> uniform_weights(["a", "b", "c", "d"])
[0.25, 0.25, 0.25, 0.25]
参数

返回对象列表的均匀权重。

返回值

objects – 需要加权的对象。

返回类型

权重列表。