Geometric¶
在概率论和统计学中,几何分布是一种离散概率分布,由一个正形状参数参数化,用 probs 表示。在 n 次伯努利试验中,需要 k 次试验才能得到第一次成功的概率。
详细来说就是:前 k-1 次失败,第 k 次成功的概率,概率密度函数如下:
上面数学公式中:
\(p\):表示成功的概率。
\(X\):表示进行了多少次试验才获得第一次成功。
\(k\):表示实验次数,是一个正整数
参数¶
probs (float|Tensor) - 几何分布成功概率参数。数据类型为 float、Tensor。
代码示例¶
import paddle
from paddle.distribution import Geometric
geom = Geometric(0.5)
geom.mean
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# 2.)
geom.variance
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# 2.)
geom.stddev
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# 1.41421354)
属性¶
stddev¶
几何分布的标准差。
数学公式:
上面数学公式中:
\(p\):试验成功的概率。
方法¶
pmf(k)¶
几何分布的概率质量函数。
参数
k (int) - 几何分布的随机变量。
数学公式:
上面数学公式中:
\(p\):试验成功的概率。
\(k\):几何分布的随机变量。
返回
Tensor - value 第一次成功所需试验次数 k 的概率。
代码示例
import paddle
from paddle.distribution import Geometric
geom = Geometric(0.5)
geom.pmf(2)
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# 0.25000000)
log_pmf(k)¶
几何分布的对数概率质量函数。
参数
k (int) - 几何分布的随机变量。
数学公式:
上面数学公式中:
\(p\):试验成功的概率。
\(k\):几何分布的实验次数。
返回
Tensor - value 第一次成功所需的试验次数 k 的概率的对数。
代码示例
import paddle
from paddle.distribution import Geometric
geom = Geometric(0.5)
geom.log_pmf(2)
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# -1.38629436)
cdf(k)¶
几何分布的累积分布函数。
参数
k (int) - 几何分布的随机变量。
数学公式:
上面的数学公式中:
\(p\):试验成功的概率。
\(k\):几何分布的随机变量。
返回
Tensor: value 随机变量 X 小于或等于某个值 x 的概率。
代码示例
import paddle
from paddle.distribution import Geometric
geom = Geometric(0.5)
geom.cdf(4)
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# 0.93750000)
entropy()¶
几何分布的信息熵。
数学公式:
上面数学公式中:
\(p\):试验成功的概率。
代码示例
import paddle
from paddle.distribution import Geometric
geom = Geometric(0.5)
geom.entropy()
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# 1.38629436)
kl_divergence(other)¶
两个 Geometric 分布之间的 KL 散度。
参数
other (Geometric) - Geometric 的实例。
数学公式:
上面的数学公式中:
\(P\):Geometric 几何分布实例。
\(Q\):Geometric 几何分布实例。
\(p\):Geometric_p 分布试验成功的概率。
\(q\):Geometric_q 分布试验成功的概率。
返回
Tensor: 两个几何分布之间的 KL 散度。
代码示例
import paddle
from paddle.distribution import Geometric
geom_p = Geometric(0.5)
geom_q = Geometric(0.1)
geom_p.kl_divergence(geom_q)
# Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
# 0.51082563)
sample(shape)¶
随机采样,生成指定维度的样本。
参数
shape (tuple(int)) - 采样的样本维度。
返回
Tensor - 预先设计好维度的样本数据。
代码示例
import paddle
from paddle.distribution import Geometric
geom = Geometric(0.5)
geom.sample((2,2))
# Tensor(shape=[2, 2, 1], dtype=float32, place=Place(cpu), stop_gradient=True,
# [[[4.28128004],
# [0.53546447]],
# [[0.88012987],
# [0.54070371]]])
rsample(shape)¶
重参数化采样,生成指定维度的样本。
参数
shape (tuple(int)) - 重参数化采样的样本维度。
返回
Tensor - 预先设计好维度的样本数据。
代码示例
import paddle
from paddle.distribution import Geometric
geom = Geometric(0.5)
geom.rsample((2,2))
# Tensor(shape=[2, 2, 1], dtype=float32, place=Place(cpu), stop_gradient=True,
# [[[2.90974379],
# [1.28049409]],
# [[4.60141420],
# [2.98836184]]])