使用 Python NumPy 实现伯努利分布

Vaibhhav Khetarpal 2023年1月30日 2022年7月18日
  1. 伯努利分布
  2. 二项分布
  3. 在 Python 中借助 NumPy 实现伯努利分布
使用 Python NumPy 实现伯努利分布

作为统计学中一个非常重要的主题,伯努利分布是数据科学、机器学习和其他相关领域的重要方面,因为它有助于处理数据。本教程将演示伯努利分布以及如何借助 NumPy 库在 Python 中实现它。

当我们谈论伯努利分布时,总是会想到二项分布这个词。这些术语相似,但在某些工作方式上有所不同。

这两个分布派上用场,可以在不同时间使问题变得更容易。如下文所述,理解并有效区分这些术语非常重要。

伯努利分布

简单来说,当一次试验中只有两种可能的结果时,这个给定的数据适合实施伯努利分布。

伯努利分布的直接实现可以在 SciPy 库的帮助下完成。但是,也可以间接利用 NumPy 库来实现此分发。

为了更清楚地解释它,让我们将伯努利分布指定为 D(b)

二项分布

二项分布的概念可以定义为处理一组或一组伯努利试验的东西。通常可以定义该组或集合的数量。

简而言之,二项分布处理单个事件的多次试验,而伯努利分布处理单个事件的单个试验。

对于上述将伯努利分布分配为 D(b),二项分布将分配为 D(n,b)。该作业反映了这些术语之间的关系。

在 Python 中借助 NumPy 实现伯努利分布

在谈论伯努利分布时,你一定想知道二项分布的意义是什么。嗯,有很大的意义。

NumPy 库直接使用函数 NumPy.random.binomial() 来实现二项分布。NumPy.random.binomial() 函数的语法如下所示。

random.binomial(n, p, size=None)

定义此函数的参数是为了让用户更清楚地了解。

  • n:这是试验次数。它可以作为浮点数或整数输入,但最终会被截断为 int 值。
  • p:这是成功的概率;它总是大于 0 或小于 1。它是一个浮点值。
  • size:这有助于提供输出的形状。如果设置为 None,它只提供一个值。

在这种情况下,当我们将伯努利试验的集合数设为 1 时,我们可以在二项分布中间接实现伯努利分布。

以下代码使用 NumPy.random.binomial 函数在 Python 中实现伯努利分布。

我们举一个硬币(只有两种可能性,正面和反面)被抛出 4 次的例子。当我们将 n 作为 1 时,它符合伯努利分布而不是二项分布,这就是我们将在代码中进行的方式。

import numpy as dragon
n = 1
p = 0.5
x = dragon.random.binomial(n, p, size=4)
print(x)

上面的代码提供了以下输出:

[1 0 0 1]

在这里,我们展示了抛一枚硬币测试 4 次的结果。需要注意的是,由于它是随机试验,重新运行程序可能会生成一组不同的输出。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn