Poisson

class paddle.distribution. Poisson ( rate ) [source]

The Poisson distribution with occurrence rate parameter: rate.

In probability theory and statistics, the Poisson distribution is the most basic discrete probability distribution defined on the nonnegative integer set, which is used to describe the probability distribution of the number of random events occurring per unit time.

The probability mass function (pmf) is

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

In the above equation:

  • \(rate = \lambda\): is the mean occurrence rate.

Parameters

rate (int|float|Tensor) – The mean occurrence rate of Poisson distribution which should be greater than 0, meaning the expected occurrence times of an event in a fixed time interval. If the input data type is int or float, the data type of rate will be converted to a 1-D Tensor with paddle global default dtype.

Examples

>>> 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  ]])
property mean

Mean of poisson distribution.

Returns

mean value.

Return type

Tensor

property variance

Variance of poisson distribution.

Returns

variance value.

Return type

Tensor

sample ( shape=() )

sample

Generate poisson samples of the specified shape. The final shape would be shape+batch_shape .

Parameters

shape (Sequence[int], optional) – Prepended shape of the generated samples.

Returns

Sampled data with shape sample_shape + batch_shape.

Return type

Tensor

entropy ( )

entropy

Shannon entropy in nats.

The entropy is

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

In the above equation:

  • \(\Omega\): is the support of the distribution.

Returns

Shannon entropy of poisson distribution. The data type is the same as rate.

Return type

Tensor

log_prob ( value )

log_prob

Log probability density/mass function.

Parameters

value (Tensor) – The input tensor.

Returns

log probability. The data type is the same as rate.

Return type

Tensor

prob ( value )

prob

Probability density/mass function.

Parameters

value (Tensor) – The input tensor.

Returns

probability. The data type is the same as rate.

Return type

Tensor

kl_divergence ( other ) [source]

kl_divergence

The KL-divergence between two poisson distributions with the same batch_shape.

The probability density function (pdf) is

\[KL\_divergence\lambda_1, \lambda_2) = \sum_x p_1(x) \log{\frac{p_1(x)}{p_2(x)}}\]
\[p_1(x) = \frac{e^{-\lambda_1} \cdot \lambda_1^x}{x!}\]
\[p_2(x) = \frac{e^{-\lambda_2} \cdot \lambda_2^x}{x!}\]
Parameters

other (Poisson) – instance of Poisson.

Returns

Tensor, kl-divergence between two poisson distributions. The data type is the same as rate.

property batch_shape

Returns batch shape of distribution

Returns

batch shape

Return type

Sequence[int]

property event_shape

Returns event shape of distribution

Returns

event shape

Return type

Sequence[int]

probs ( value )

probs

Probability density/mass function.

Note

This method will be deprecated in the future, please use prob instead.

rsample ( shape=() )

rsample

reparameterized sample