paddlets.models.forecasting.dl.distributions.likelihood

class Likelihood(mode: str = 'distribution')[源代码]

基类:ABC

概率分布预测模型抽象类

参数

mode (str) – 默认值为’distribution’表示概率分布回归,设为’quantiles’表示分位数回归。

abstract property num_params: int

返回每个预测点服从的概率分布的参数数量。

返回

参数数量。

返回类型

int

abstract loss(model_output: Tensor, target: Tensor) Tensor[源代码]

由分布参数与实际目标值计算负对数似然损失。

计算负对数似然损失的基础方法,如有更佳方案,可以在子类中复写。

参数
  • model_output (paddle.Tensor) – 模型输出

  • target (paddle.Tensor) – 样本真实值。

返回

通过分布参数与真实值计算损失。

返回类型

paddle.Tensor

class GaussianLikelihood[源代码]

基类:Likelihood

单变量高斯分布。

output_to_params(model_output: Tensor) Tensor[源代码]

使用`softplus`重新调整`sigma`参数为正实数。

参数

model_output (paddle.Tensor) – 模型输出

返回

高斯分布参数(均值与标准差)。

返回类型

paddle.Tensor

params_to_distr(distr_params: Tensor) Distribution[源代码]

由均值与方差建立高斯分布实例。

参数

distr_params (paddle.Tensor) – 由均值与方差构成的Tensor

返回

paddle定义的高斯分布类实例。

返回类型

Distribution

get_mean(distr_params: Tensor) Tensor[源代码]

返回分布均值。

参数

distr_params – 由均值与方差构成的Tensor.

返回

高斯分布的均值。

返回类型

paddle.Tensor

property num_params: int

高斯分布参数量为2。

返回

高斯分布的参数量。

返回类型

int

sample(model_output: Tensor, num_samples: int = 1) Tensor[源代码]

由模型输出到采样预测过程:

1> 模型输出重新调整为分布参数;

2> 由分布参数建立分布类;

3> 由分布进行采样。

参数
  • model_output (paddle.Tensor) – 模型输出

  • num_samples (int) – 采样数量。

返回

概率分布的样本。

返回类型

paddle.Tensor

loss(model_output: Tensor, target: Tensor) Tensor[源代码]

由分布参数与实际目标值计算负对数似然损失。

计算负对数似然损失的基础方法,如有更佳方案,可以在子类中复写。

参数
  • model_output (paddle.Tensor) – 模型输出

  • target (paddle.Tensor) – 样本真实值。

返回

通过分布参数与真实值计算损失。

返回类型

paddle.Tensor

class QuantileRegression(quantiles: Optional[List[float]] = [0.1, 0.5, 0.9])[源代码]

基类:Likelihood

分位数回归。

property num_params: int

对于分位数回归,参数数量为`quantiles`的个数。

返回

分位数个度。

返回类型

int

loss(model_output: Tensor, target: Tensor) Tensor[源代码]

计算分位数损失。

参数
  • model_output (paddle.Tensor) – 模型输出,数据维度为(B, L, D)。

  • target – 样本真实值,数据维度为(B, L, D, Q)

返回

通过分布参数与真实值计算损失。

返回类型

paddle.Tensor