gluonts.mx.distribution.isqf 模块#
- class gluonts.mx.distribution.isqf.ISQF(spline_knots: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], spline_heights: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], beta_l: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], beta_r: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], qk_y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], qk_x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], num_qk: int, num_pieces: int, tol: float = 0.0001)[source]#
- 基类: - gluonts.mx.distribution.distribution.Distribution- 该类是论文 - Learning Quantile Functions without Quantile Crossing for Distribution-free Time Series Forecasting中 Incremental (Spline) Quantile Function 的分布类,作者包括 Park, Robinson, Aubet, Kan, Gasthaus, Wang。- 参数
- spline_knots – 参数化样条结点的 x 坐标 (y 坐标) 的张量。形状:(*batch_shape, (num_qk-1), num_pieces) 
- spline_heights – 参数化样条结点的 x 坐标 (y 坐标) 的张量。形状:(*batch_shape, (num_qk-1), num_pieces) 
- qk_x – 包含分位数结点递增 x 坐标 (y 坐标) 的张量。形状:(*batch_shape, num_qk) 
- qk_y – 包含分位数结点递增 x 坐标 (y 坐标) 的张量。形状:(*batch_shape, num_qk) 
- beta_l – 包含左 (右) 尾部非负可学习参数的张量。形状:(*batch_shape,) 
- beta_r – 包含左 (右) 尾部非负可学习参数的张量。形状:(*batch_shape,) 
 
 - 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(z: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 计算分位数水平 alpha_tilde,使得 q(alpha_tilde) = z。:param z: 形状为 (*batch_shape,) 的张量。 - 返回
- 形状为 (*batch_shape,) 的张量。 
- 返回类型
- alpha_tilde 
 
 - cdf_spline(z: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 对于观测值 z 和在 [qk_x[k], qk_x[k+1]] 中定义的样条函数,计算分位数水平 alpha_tilde,使得 alpha_tilde。 - = q^{-1}(z) 如果 z 在 qk_x[k] 和 qk_x[k+1] 之间 = qk_x[k] 如果 z < qk_x[k] = qk_x[k+1] 如果 z > qk_x[k+1] :param z: 观测值,形状 = (*batch_shape,) - 返回
- 对应的分位数水平,形状 = (*batch_shape, num_qk-1) 
- 返回类型
- alpha_tilde 
 
 - cdf_tail(z: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], left_tail: bool = True) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 计算分位数水平 alpha_tilde,使得 alpha_tilde。 - = q^{-1}(z) 如果 z 在尾部区域 = qk_x_l 或 qk_x_r 如果 z 在非尾部区域 
 - crps(z: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]#
- 计算 CRPS 的解析形式。:param z: 要评估的观测值。形状 = (*batch_shape,) - 返回
- 包含 CRPS 的张量,形状与 z 相同。 
- 返回类型
- 张量 
 
 - crps_spline(z: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 计算样条函数的 CRPS 解析形式。:param z: 要评估的观测值。形状 = (*batch_shape,) - 返回
- 包含 CRPS 的张量,形状与 z 相同。 
- 返回类型
- 张量 
 
 - crps_tail(z: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], left_tail: bool = True) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 计算左/右尾部的 CRPS 解析形式。 - 参数
- z – 要评估的观测值。形状 = (*batch_shape,) 
- left_tail – 如果为 True,则计算左尾部的 CRPS;否则,计算右尾部的 CRPS。 
 
- 返回
- 包含 CRPS 的张量,形状与 z 相同。 
- 返回类型
- 张量 
 
 - 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(z: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]#
- 根据分布计算 x 处的损失。 - 默认情况下,此方法返回 log_prob 的负值。但是,对于某些分布,对数密度不易计算,因此会计算其他损失函数。 - 参数
- x – 形状为 (*batch_shape, *event_shape) 的张量。 
- 返回
- 形状为 batch_shape 的张量,包含 x 中每个事件的损失值。 
- 返回类型
- 张量 
 
 - static parametrize_qk(F, quantile_knots: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]][source]#
- 参数化 num_qk 分位数结点的 x 或 y 坐标的函数。 - 参数
- quantile_knots – 分位数结点的 x 或 y 坐标。形状:(*batch_shape, num_qk) 
- 返回
 
 - static parametrize_spline(F, spline_knots: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], qk: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], qk_plus: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], num_pieces: int, tol: float = 0.0001) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol, mxnet.symbol.symbol.Symbol]][source]#
- 参数化样条结点的 x 或 y 坐标的函数。:param spline_knots: 参数化样条结点位置的变量。:param qk: 分位数结点 (qk) 的 x 或 y 坐标, - 索引为 1, ..., num_qk-1,形状:(*batch_shape, num_qk-1) 
 - static parametrize_tail(F, beta: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], qk_x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], qk_y: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]][source]#
- 参数化尾部参数的函数。 - 注意,指数尾部由以下公式给出:q(alpha) = a_l log(alpha) + b_l (左尾部) = a_r log(1-alpha) + b_r (右尾部) - 其中 a_l=1/beta_l, b_l=-a_l*log(qk_x_l)+q(qk_x_l),a_r=1/beta_r, b_r=a_r*log(1-qk_x_r)+q(qk_x_r) 
 - quantile(input_alpha: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]#
- 计算给定水平的分位数。 - 参数
- level – 用于计算分位数的水准值。level 应该是一个介于 0 和 1 之间的水准值的一维张量。 
- 返回
- 与传递的水准值对应的分位数。返回形状为 - (num_levels, …DISTRIBUTION_SHAPE…), - 其中 DISTRIBUTION_SHAPE 是底层分布的形状。 
- 返回类型
- 分位数 
 
 - quantile_internal(alpha: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], axis: Optional[int] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 在分位数水平 input_alpha 处评估分位数函数。:param alpha: 如果 axis=None,形状为 (*batch_shape,) 的张量,否则包含一个 - 在指定位置的额外轴。 - 参数
- axis – 包含要计算的不同分位数水平的轴的索引。详细信息请阅读下面的描述。 
- 返回
- 分位数张量,形状与 alpha 相同。 
- 返回类型
- 张量 
 
 - quantile_spline(alpha: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], axis: Optional[int] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 在包含在 alpha 中的分位数水平处评估样条函数。 
 - quantile_tail(alpha: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], axis: Optional[int] = None, left_tail: bool = True) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 在包含在 alpha 中的分位数水平处评估尾部函数。:param alpha: 输入分位数水平。:param axis: 沿其扩展的轴。 - 关于 input_alpha 形状和 axis 的详细信息,请参考 quantile_internal 中的描述。 - 参数
- left_tail – 如果为 True,则计算左尾部的分位数;否则,计算右尾部的分位数。 
- 返回
- 分位数张量,形状与 alpha 相同。 
- 返回类型
- 张量 
 
 
- class gluonts.mx.distribution.isqf.ISQFOutput(num_pieces: int, qk_x: List[float], tol: float = 0.0001)[source]#
- 基类: - gluonts.mx.distribution.distribution_output.DistributionOutput- Incremental (Spline) Quantile Function 的 DistributionOutput 类。 - 参数
- num_pieces – 每个样条的样条段数量。当 num_pieces = 1 时,ISQF 退化为 IQF。 
- alpha – 包含分位数结点的 x 坐标的张量。 
- tol – 用于数值安全保障的容差。 
 
 - distr_cls#
 - 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.isqf.ISQF[source]#
- 输出分布类的函数。distr_args: 分布参数。loc: 数据均值的偏移。scale: 数据比例。 
 - classmethod domain_map(F, *args: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], tol: float = 0.0001) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]][source]#
- 域映射函数。此函数的输入由 self.args_dim 指定。knots, heights - 参数化样条结点的 x-/y-坐标,形状 = (*batch_shape, (num_qk-1)*num_pieces)。q: 参数化分位数结点的 y 坐标,形状 = (*batch_shape, num_qk)。beta_l, beta_r: 参数化左/右尾部,形状 = (*batch_shape, 1)。 
 - property event_shape: Tuple#
- 此对象构造的分布所考虑的每个单独事件的形状。 
 
- class gluonts.mx.distribution.isqf.TransformedISQF(base_distribution: gluonts.mx.distribution.isqf.ISQF, transforms: List[gluonts.mx.distribution.bijection.Bijection])[source]#
- 基类: - gluonts.mx.distribution.transformed_distribution.TransformedDistribution,- gluonts.mx.distribution.isqf.ISQF- arg_names: Tuple#