Poisson

class paddle.distribution. Poisson ( rate ) [源代码]

在概率论和统计学中,Poisson 是一种最基本的离散型概率分布,定义在非负整数集上,用来描述单位时间内随机事件发生次数的概率分布。

其概率质量函数(pmf)为:

\[pmf(x; \lambda) = \frac{e^{-\lambda} \cdot \lambda^x}{x!}\]

其中,\(\lambda\) 表示事件平均发生率。

参数

  • rate (int|float|Tensor) - 即上述公式中 \(\lambda\) 参数,大于零,表示事件平均发生率,即单位时间内的事件发生次数。如果输入数据类型不是 int 或 float rate 的数据类型会被转换成数据类型为 paddle 全局默认数据类型的 1-D Tensor

代码示例

>>> import paddle
>>> from paddle.distribution import Poisson
>>> paddle.set_device('cpu')
>>> paddle.seed(100)
>>> rv = Poisson(paddle.to_tensor(30.0))

>>> print(rv.sample([3]))
Tensor(shape=[3, 1], dtype=float32, place=Place(cpu), stop_gradient=True,
[[35.],
 [35.],
 [30.]])

>>> print(rv.mean)
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
30.)

>>> print(rv.entropy())
Tensor(shape=[1], dtype=float32, place=Place(cpu), stop_gradient=True,
[3.11671066])

>>> rv1 = Poisson(paddle.to_tensor([[30.,40.],[8.,5.]]))
>>> rv2 = Poisson(paddle.to_tensor([[1000.,40.],[7.,10.]]))
>>> print(rv1.kl_divergence(rv2))
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[864.80285645, 0.          ],
 [0.06825157  , 1.53426421  ]])

属性

mean

Poisson 分布的均值

返回

Tensor,均值

variance

Poisson 分布的方差

返回

Tensor,方差

方法

prob(value)

计算 value 的概率。

参数

  • value (Tensor) - 待计算值。

返回

Tensor,value 的概率。数据类型与 rate 相同。

log_prob(value)

计算 value 的对数概率。

参数

  • value (Tensor) - 待计算值。

返回

Tensor,value 的对数概率。数据类型与 rate 相同。

sample()

从 Poisson 分布中生成满足特定形状的样本数据。最终生成样本形状为 shape+batch_shape

参数

  • shape (Sequence[int],可选):采样次数。

返回

Tensor,样本数据。其维度为 \(\text{sample shape} + \text{batch shape}\)

entropy()

计算 Poisson 分布的信息熵。

\[\mathcal{H}(X) = - \sum_{x \in \Omega} p(x) \log{p(x)}\]

返回

类别分布的信息熵,数据类型与 rate 相同。

kl_divergence(other)

相对于另一个类别分布的 KL 散度,两个分布需要有相同的 \(\text{batch shape}\)

参数

  • other (Poisson) - 输入的另一个类别分布。

返回

相对于另一个类别分布的 KL 散度,数据类型与 rate 相同。