伯努利分布(Bernoulli distribution)

本文介绍了伯努利分布及其在人工智能领域的应用,并通过实例详细解释了二项分布的概念及如何使用Python进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

伯努利分布 是一种离散分布,有两种可能的结果。1表示成功,出现的概率为p(其中0<p<1)。0表示失败,出现的概率为q=1-p。这种分布在人工智能里很有用,比如你问机器今天某飞机是否起飞了,它的回复就是Yes或No,非常明确,这个分布在分类算法里使用比较多,因此在这里先学习 一下。


概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布。
离散概率分布也称为概率质量函数(probability mass function)。离散概率分布的例子有伯努利分布(Bernoulli distribution)、二项分布(binomial distribution)、泊松分布(Poisson distribution)和几何分布(geometric distribution)等。
连续概率分布也称为概率密度函数(probability density function),它们是具有连续取值(例如一条实线上的值)的函数。正态分布(normal distribution)、指数分布(exponential distribution)和β分布(beta distribution)等都属于连续概率分布。


二项分布的例子:抛掷10次硬币,恰好两次正面朝上的概率是多少?
假设在该试验中正面朝上的概率为0.3,这意味着平均来说,我们可以期待有3次是硬币正面朝上的。我定义掷硬币的所有可能结果为k = np.arange(0,11):你可能观测到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用stats.binom.pmf计算每次观测的概率质量函数。它返回一个含有11个元素的列表(list),这些元素表示与每个观测相关联的概率值。

对于这样的问题,可以使用python来解决,这样理解起来更容易得多了,代码如下:

#python 3.5.3  蔡军生    
#http://edu.csdn.net/course/detail/2592    
#  
from scipy.stats import binom
import matplotlib.pyplot as plt
import numpy as np

n = 10
p = 0.3
k = np.arange(0, 21)
binomial = binom.pmf(k, n, p)
print(binomial)

plt.plot(k, binomial, 'o-')
plt.title('Binomial: n = %i, p=%0.2f' % (n, p),fontsize = 15)
plt.xlabel('Number of successes')
plt.ylabel('Probability of sucesses', fontsize = 15)
plt.show()

运行这个程序之后,就可以输出这样的结果了,是否一目了然的感觉?


1. C++标准模板库从入门到精通 

2.跟老菜鸟学C++

3. 跟老菜鸟学python

4. 在VC2015里学会使用tinyxml库

5. 在Windows下SVN的版本管理与实战 

 http://edu.csdn.net/course/detail/2579

6.Visual Studio 2015开发C++程序的基本使用 

http://edu.csdn.net/course/detail/2570

7.在VC2015里使用protobuf协议

8.在VC2015里学会使用MySQL数据库



### R语言中实现伯努利分布 #### 1. 伯努利分布的基础概念 伯努利分布是一种简单的离散概率分布,用于描述仅有两种可能结果的随机实验。这两种结果通常被定义为成功(记作1)和失败(记作0),其对应的概率分别为 \( p \) 和 \( 1-p \)[^1]。 #### 2. 使用R语言生成伯努利分布的数据 在R语言中,可以利用 `rbinom` 函数生成服从伯努利分布的随机数。该函数的主要参数如下: - `n`: 随机样本的数量。 - `size`: 单次试验的结果数量,在伯努利分布中始终设置为1。 - `prob`: 成功的概率 \( p \)。 以下是生成一组服从伯努利分布数据的代码示例: ```r set.seed(123) # 设置随机种子以便结果可重复 bernoulli_data <- rbinom(n = 10, size = 1, prob = 0.7) print(bernoulli_data) ``` 上述代码会生成10个服从伯努利分布的随机数,其中成功的概率为0.7。 #### 3. 绘制伯努利分布的累积分布函数 (CDF) 为了更好地理解伯努利分布的行为,可以通过绘图展示其累积分布函数(CDF)。以下是一个绘制CDB图形的例子: ```r x_values <- c(0, 1) # 定义X轴上的值 p_value <- 0.7 # 设定成功的概率 cdf_values <- pbinom(x_values, size = 1, prob = p_value) # 创建条形图表示CDF barplot(cdf_values, names.arg = x_values, ylab = "Cumulative Probability", main = "Bernoulli Distribution CDF with p=0.7") ``` 这段代码展示了当成功概率为0.7时,伯努利分布的累计概率情况[^2]。 #### 4. 可视化分位数函数(QF) 除了CDF之外,还可以通过分位数函数来分析伯努利分布特性。下面是如何使用 `qbinom` 函数并将其可视化的一个例子: ```r probs <- seq(0, 1, by = 0.1) # 定义一系列概率值 quantile_values <- qbinom(probs, size = 1, prob = 0.7) # 利用 plot() 进行可视化 plot(probs, quantile_values, type="b", xlab = "Probability", ylab = "Quantile Value", main = "Bernoulli Quantile Function Visualization") ``` 此脚本将显示不同概率水平下的对应分位数值[^3]。 #### 总结 综上所述,R语言提供了丰富的工具支持对伯努利分布的研究与应用开发工作。无论是生成随机样例还是制作统计图表都变得简单易行。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值