Geometric¶
在概率论和统计学中,几何分布是一种离散概率分布,由一个正形状参数参数化,用 probs 表示。在 n 次伯努利试验中,需要 k+1 次试验才能得到第一次成功的概率。
详细来说就是:前 k 次失败,第 k+1 次成功的概率,概率密度函数如下:
上面数学公式中:
\(p\):表示成功的概率。
\(X\):表示获得第一次成功之前进行了几次试验。
\(k\):表示实验次数,是一个正整数
参数¶
probs (float|Tensor) - 几何分布成功概率参数。数据类型为 float、Tensor。
代码示例¶
>>> import paddle
>>> from paddle.distribution import Geometric
>>> geom = Geometric(0.5)
>>> print(geom.mean)
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
1.)
>>> print(geom.variance)
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
2.)
>>> print(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)
>>> print(geom.pmf(2))
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
0.12500000)
log_pmf(k)¶
几何分布的对数概率质量函数。
参数
k (int) - 几何分布的随机变量。
数学公式:
上面数学公式中:
\(p\):试验成功的概率。
\(k\):第一次成功之前试验失败次数。
返回
Tensor - value 第一次成功之前失败 k 次的概率的对数。
代码示例
>>> import paddle
>>> from paddle.distribution import Geometric
>>> geom = Geometric(0.5)
>>> print(geom.log_pmf(2))
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
-2.07944131)
cdf(k)¶
几何分布的累积分布函数。
参数
k (int) - 几何分布的随机变量。
数学公式:
上面的数学公式中:
\(p\):试验成功的概率。
\(k\):几何分布的随机变量。
返回
Tensor: value 随机变量 X 小于或等于某个值 x 的概率。
代码示例
>>> import paddle
>>> from paddle.distribution import Geometric
>>> geom = Geometric(0.5)
>>> print(geom.cdf(4))
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
0.96875000)
entropy()¶
几何分布的信息熵。
数学公式:
上面数学公式中:
\(p\):试验成功的概率。
代码示例
>>> import paddle
>>> from paddle.distribution import Geometric
>>> geom = Geometric(0.5)
>>> print(geom.entropy())
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
1.38629425)
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)
>>> print(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
>>> paddle.seed(2023)
>>> geom = Geometric(0.5)
>>> print(geom.sample((2,2)))
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[0., 0.],
[1., 0.]])
rsample(shape)¶
重参数化采样,生成指定维度的样本。
参数
shape (tuple(int)) - 重参数化采样的样本维度。
返回
Tensor - 预先设计好维度的样本数据。
代码示例
>>> import paddle
>>> from paddle.distribution import Geometric
>>> paddle.seed(2023)
>>> geom = Geometric(0.5)
>>> print(geom.rsample((2,2)))
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[0., 0.],
[1., 0.]])