Beta分布(Beta Distribution)

article/2025/10/15 16:42:52

定义:

beta分布可以看作一个概率的概率分布,当你不知道一个东西的具体概率是多少时,它可以给出了所有概率出现的可能性大小。

举一个简单的例子,熟悉棒球运动的都知道有一个指标就是棒球击球率(batting average),就是用一个运动员击中的球数除以击球的总数,我们一般认为0.266是正常水平的击球率,而如果击球率高达0.3就被认为是非常优秀的。现在有一个棒球运动员,我们希望能够预测他在这一赛季中的棒球击球率是多少。你可能就会直接计算棒球击球率,用击中的数除以击球数,但是如果这个棒球运动员只打了一次,而且还命中了,那么他就击球率就是100%了,这显然是不合理的,因为根据棒球的历史信息,我们知道这个击球率应该是0.215到0.36之间才对啊。对于这个问题一个最好的方法就是用beta分布,这表示在我们没有看到这个运动员打球之前,我们就有了一个大概的范围。beta分布的定义域是(0,1)这就跟概率的范围是一样的。接下来我们将这些先验信息转换为beta分布的参数,我们知道一个击球率应该是平均0.27左右,而他的范围是0.21到0.35,那么根据这个信息,我们可以取α=81,β=219(击中了81次,未击中219次)

之所以取这两个参数是因为:

  • beta分布的均值是从图中可以看到这个分布主要落在了(0.2,0.35)间,这是从经验中得出的合理的范围。
  • 在这个例子里,我们的x轴就表示各个击球率的取值,x对应的y值就是这个击球率所对应的概率。也就是说beta分布可以看作一个概率的概率分布。

         

 公式: 

# IMPORTS
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
import matplotlib.style as style
from IPython.core.display import HTML# PLOTTING CONFIG
%matplotlib inline
style.use('fivethirtyeight')
plt.rcParams["figure.figsize"] = (14, 7)plt.figure(dpi=100)# PDF
plt.plot(np.linspace(0, 1, 100), stats.beta.pdf(np.linspace(0, 1, 100),a=2,b=2) )
print (stats.beta.pdf(np.linspace(0, 1, 100),a=2,b=2))
plt.fill_between(np.linspace(0, 1, 100),stats.beta.pdf(np.linspace(0, 1, 100),a=2,b=2),alpha=.15)# CDF
plt.plot(np.linspace(0, 1, 100), stats.beta.cdf(np.linspace(0, 1, 100),a=2,b=2),)# LEGEND
plt.text(x=0.1, y=.7, s="pdf (normed)", rotation=52, alpha=.75, weight="bold", color="#008fd5")
plt.text(x=0.45, y=.5, s="cdf", rotation=40, alpha=.75, weight="bold", color="#fc4f30")# TICKS
plt.tick_params(axis = 'both', which = 'major', labelsize = 18)
plt.axhline(y = 0, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER
plt.text(x = -.125, y = 1.85, s = "Beta Distribution - Overview",fontsize = 26, weight = 'bold', alpha = .75)
plt.text(x = -.125, y = 1.6, s = 'Depicted below are the normed probability density function (pdf) and the cumulative density\nfunction (cdf) of a beta distributed random variable ' + r'$ y \sim Beta(\alpha, \beta)$, given $ \alpha = 2 $ and $ \beta = 2$.',fontsize = 19, alpha = .85)

 改变参数α和β对结果产生的影响如下所示:

plt.figure(dpi=100)# A = B = 1
plt.plot(np.linspace(0, 1, 200), stats.beta.pdf(np.linspace(0, 1, 200), a=1, b=1),)
plt.fill_between(np.linspace(0, 1, 200),stats.beta.pdf(np.linspace(0, 1, 200), a=1, b=1),alpha=.15,)# A = B = 10
plt.plot(np.linspace(0, 1, 200), stats.beta.pdf(np.linspace(0, 1, 200), a=10, b=10),)
plt.fill_between(np.linspace(0, 1, 200),stats.beta.pdf(np.linspace(0, 1, 200), a=10, b=10),alpha=.15,)# A = B = 100
plt.plot(np.linspace(0, 1, 200), stats.beta.pdf(np.linspace(0, 1, 200), a=100, b=100),)
plt.fill_between(np.linspace(0, 1, 200),stats.beta.pdf(np.linspace(0, 1, 200), a=100, b=100),alpha=.15,)# LEGEND
plt.text(x=0.1, y=1.45, s=r"$ \alpha = 1, \beta = 1$", alpha=.75, weight="bold", color="#008fd5")
plt.text(x=0.325, y=3.5, s=r"$ \alpha = 10, \beta = 10$", rotation=35, alpha=.75, weight="bold", color="#fc4f30")
plt.text(x=0.4125, y=8, s=r"$ \alpha = 100, \beta = 100$", rotation=80, alpha=.75, weight="bold", color="#e5ae38")# TICKS
plt.tick_params(axis = 'both', which = 'major', labelsize = 18)
plt.axhline(y = 0, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER
plt.text(x = -.1, y = 13.75, s = r"Beta Distribution - constant $\frac{\alpha}{\beta}$, varying $\alpha + \beta$",fontsize = 26, weight = 'bold', alpha = .75)
plt.text(x = -.1, y = 12, s = 'Depicted below are three beta distributed random variables with '+ r'equal $\frac{\alpha}{\beta} $ and varying $\alpha+\beta$'+'.\nAs one can see the sum of ' + r'$\alpha + \beta$ (mainly) sharpens the distribution (the bigger the sharper).',fontsize = 19, alpha = .85)

 

plt.figure(dpi=100)# A / B = 1/3
plt.plot(np.linspace(0, 1, 200), stats.beta.pdf(np.linspace(0, 1, 200), a=25, b=75),)
plt.fill_between(np.linspace(0, 1, 200),stats.beta.pdf(np.linspace(0, 1, 200), a=25, b=75),alpha=.15,)# A / B = 1
plt.plot(np.linspace(0, 1, 200), stats.beta.pdf(np.linspace(0, 1, 200), a=50, b=50),)
plt.fill_between(np.linspace(0, 1, 200),stats.beta.pdf(np.linspace(0, 1, 200), a=50, b=50),alpha=.15,)# A / B = 3
plt.plot(np.linspace(0, 1, 200), stats.beta.pdf(np.linspace(0, 1, 200), a=75, b=25),)
plt.fill_between(np.linspace(0, 1, 200),stats.beta.pdf(np.linspace(0, 1, 200), a=75, b=25),alpha=.15,)# LEGEND
plt.text(x=0.15, y=5, s=r"$ \alpha = 25, \beta = 75$", rotation=80, alpha=.75, weight="bold", color="#008fd5")
plt.text(x=0.39, y=5, s=r"$ \alpha = 50, \beta = 50$", rotation=80, alpha=.75, weight="bold", color="#fc4f30")
plt.text(x=0.65, y=5, s=r"$ \alpha = 75, \beta = 25$", rotation=80, alpha=.75, weight="bold", color="#e5ae38")# TICKS
plt.tick_params(axis = 'both', which = 'major', labelsize = 18)
plt.axhline(y = 0, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER
plt.text(x = -.1, y = 11.75, s = r"Beta Distribution - constant $\alpha + \beta$, varying $\frac{\alpha}{\beta}$",fontsize = 26, weight = 'bold', alpha = .75)
plt.text(x = -.1, y = 10, s = 'Depicted below are three beta distributed random variables with '+ r'equal $\alpha+\beta$ and varying $\frac{\alpha}{\beta} $'+'.\nAs one can see the fraction of ' + r'$\frac{\alpha}{\beta} $ (mainly) shifts the distribution ' + r'($\alpha$ towards 1, $\beta$ towards 0).',fontsize = 19, alpha = .85)

 构造随机beta分布:

from scipy.stats import beta# draw a single sample
print(beta.rvs(a=2, b=2), end="\n\n")# draw 10 samples
print(beta.rvs(a=2, b=2, size=10))
0.736118736802914[0.52821195 0.41843068 0.64285567 0.13075973 0.47871566 0.720698170.27643923 0.38471512 0.51838499 0.64945068]

 概率密度函数:

from scipy.stats import beta# additional import for plotting
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams["figure.figsize"] = (14, 7)# continuous pdf for the plot
x_s = np.linspace(0, 1, 100)
y_s = beta.pdf(a=2, b=2, x=x_s)
plt.scatter(x_s, y_s);

 累计概率密度函数:

from scipy.stats import beta# probability of x less or equal 0.3
print("P(X <0.3) = {:.3}".format(beta.cdf(a=2, b=2, x=0.3)))# probability of x in [-0.2, +0.2]
print("P(-0.2 < X < 0.2) = {:.3}".format(beta.cdf(a=2, b=2, x=0.2) - beta.cdf(a=2, b=2, x=-0.2)))
P(X <0.3) = 0.216
P(-0.2 < X < 0.2) = 0.104

http://chatgpt.dhexx.cn/article/Q0Lei9JO.shtml

相关文章

推导Beta分布公式

Beta分布可以用于拟合各种不同的分布&#xff0c;网上各种资料对于Beta分布的原理着墨较多&#xff0c;却少有推导Beta分布公式的&#xff0c;所以&#xff0c;推导Beta分布公式如下&#xff1a; 设一组随机变量 &#xff0c;将这n个随机变量排序后得到顺序统计量 &#xff0c…

Beta 分布

Beta 函数 B ( α , β ) ≜ ∫ 0 1 x α − 1 ( 1 − x ) β − 1 d x \Beta(\alpha, \beta) \triangleq \int_0^1 x^{\alpha-1}(1-x)^{\beta-1}dx B(α,β)≜∫01​xα−1(1−x)β−1dx 其中 α , β > 0 \alpha, \beta > 0 α,β>0 Beta 函数与 Gamma 函数 B ( α…

如何理解beta分布?

相信大家学过统计学的都对 正态分布 二项分布 均匀分布 等等很熟悉了&#xff0c;但是却鲜少有人去介绍beta分布的。 用一句话来说&#xff0c;beta分布可以看作一个概率的概率分布&#xff0c;当你不知道一个东西的具体概率是多少时&#xff0c;它可以给出了所有概率出现的可…

原创 | 一文读懂正态分布与贝塔分布

本文约2300字&#xff0c;建议阅读5分钟 本文通过案例介绍了正态分布和贝塔分布的概念。 正态分布 正态分布&#xff0c;是一种非常常见的连续概率分布&#xff0c;其也叫做常态分布&#xff08;normal distribution&#xff09;,或者根据其前期的研究贡献者之一高斯的名字来称…

带你理解beta分布

#beta分布介绍 相信大家学过统计学的都对 正态分布 二项分布 均匀分布 等等很熟悉了&#xff0c;但是却鲜少有人去介绍beta分布的。 用一句话来说&#xff0c;beta分布可以看作一个概率的概率分布&#xff0c;当你不知道一个东西的具体概率是多少时&#xff0c;它可以给出了所…

深入理解什么是Beta分布

例一 Beta分布是一种描述概率的概率分布&#xff0c;这句话可能有些绕口&#xff0c;看一个例子&#xff1a; 以抛硬币为例&#xff0c;如果硬币是均匀的&#xff0c;并且正面朝上的概率记为p&#xff08;p0.5&#xff09;&#xff0c;那么每一次抛硬币都可以看做是一次伯努利…

贝塔分布(beta分布)及Python实现——计算机视觉修炼之路(二)

beta分布 贝塔分布&#xff08; Beta Distribution ) 是一个作为伯努利分布和二项式分布的共轭先验分布的密度函数&#xff0c;在机器学习和数理统计学中有重要应用。在概率论中&#xff0c;贝塔分布&#xff0c;是指一组定义在(0,1)区间的连续概率分布。其概率密度函数为&…

Beta分布(概率的概率)

目录 1.前言 2.定义 3.Beat分布的概率密度函数&#xff08;PDF&#xff09;&#xff1a; 4.Beat分布的累积密度函数&#xff08;CDF&#xff09;&#xff1a; 1.前言 伯努利试验&#xff08;同样的条件下重复地、相互独立地进行的一种随机试验&#xff0c;其特点是该随机试验…

伽马分布与 贝塔分布

伽马函数 称 为伽马函数&#xff0c;其中参数 &#xff0c;伽马函数具有如下性质&#xff1a; ,n为自然数&#xff1b;或写作 余元公式&#xff1a;对于 ,有 与贝塔函数 的关系 : 对于 ;伽马函数是严格凹函数。x足够大时&#xff0c;可以用Stirling 公式来计算Gam…

贝塔、伽马分布

最近开始自学PRML&#xff0c;为此又补了概率论中的一些知识点。 相较于古典概率通过各种估计手段来确定参数的分布&#xff0c;贝叶斯学派则是使用后验概率来确定&#xff0c;为了方便计算后验概率&#xff0c;引入共轭先验分布来方便计算&#xff0c;这是后话了。 那么一些…

贝塔分布

B e t a Beta Beta分布 众所周知&#xff0c;当一个随机变量 Y Y Y的密度函数如下所示时&#xff0c;称这个变量 Y Y Y满足 B e t a ( a , b ) Beta(a,b) Beta(a,b)分布&#xff1a; f ( y ) y a − 1 ( 1 − y ) b − 1 ∫ 0 1 y a − 1 ( 1 − y ) b − 1 d y y a − 1 (…

数据科学分布——Beta分布

Beta分布 概念参数影响数量比例 随机产生数据概率密度函数累积概率密度函数 概念 贝塔分布&#xff08;Beta Distribution) 是一个作为伯努利分布和二项式分布的共轭先验分布的密度函数&#xff0c;在机器学习和数理统计学中有重要应用。在概率论中&#xff0c;贝塔分布&#…

Beta分布及其应用

贝塔分布&#xff08;Beta Distribution&#xff09;是一个连续的概率分布&#xff0c;它只有两个参数。它最重要的应用是为某项实验的成功概率建模。在本篇博客中&#xff0c;我们使用Beta分布作为描述。 原文地址&#xff1a;http://www.datalearner.com/blog/1051505532393…

机器学习中的数学——常用概率分布(十):贝塔分布(Beta分布)

分类目录&#xff1a;《机器学习中的数学》总目录 相关文章&#xff1a; 常用概率分布&#xff08;一&#xff09;&#xff1a;伯努利分布&#xff08;Bernoulli分布&#xff09; 常用概率分布&#xff08;二&#xff09;&#xff1a;范畴分布&#xff08;Multinoulli分布&am…

NLPIR分词系统的使用

前身是2000年发布的ICTCLAS&#xff0c;2009年更为现名。张华平博士打造。 Java课设做自动问答系统&#xff0c;用到了&#xff0c;所以记录一下使用方法&#xff0c;网上方法可能有点老&#xff0c;所以自己发现没有那么复杂。 https://github.com/NLPIR-team/NLPIR 上下载源…

分词系统

ICTClAS分词系统是由中科院计算所的张华平、刘群所开发的一套获得广泛好评的分词系统&#xff0c;难能可贵的是该版的Free版开放了源代码&#xff0c;为我们很多初学者提供了宝贵的学习材料。 但有一点不完美的是&#xff0c;该源代码没有配套的文档&#xff0c;阅读起来可能有…

中科院分词ICTCLAS汉语分词系统简单配置

汉语分词一直来说都是进行文本分析的瓶颈&#xff0c;这里介绍一个汉语分词系统ICTCLAS&#xff0c;全球很受欢迎的汉语分词开源系统&#xff0c;曾获得首界国际分词大赛综合排名第一&#xff0c;国家973评测第一名&#xff1b;支持词典&#xff0c;多级词性标注&#xff0c;支…

智能语言-中科院分词系统ICTCLAS(NLPIR)

智能语言的处理中&#xff0c;第一个步骤就是分词。一个句子处理的第一步就是分词了&#xff0c;目前而言中文分词中效果最好的就是中科院分词系统。在2014版本以及之前称为ICTCLAS&#xff0c;之后的版本都更名为NLPIR。 我给出一个最简单的使用教程&#xff0c;能够帮助新手…

NLPIR(北理工张华平版中文分词系统)的SDK(C++)调用方法

一、本文内容简介 关于中文分词的基本概念关于NLPIR(北理工张华平版中文分词系统)的基本情况具体SDK模块(C版)的组装方法 二、具体内容 1. 中文分词的基本概念 中文分词是自然语言处理的一个分支,自然语言即人们在日常生活中使用的语言&#xff0c;包含书面语&#xff0c;口…

哈工大中文分词系统LTP(pyltp)学习笔记

一、LTP简介 介绍&#xff1a;语言技术平台(LTP) 提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、高效、精准的自然语言处理技术。经过 哈工大社会计算与信息检索研究中心 11 年的持续研发和推广&#xff0c;LTP已经成为国内外最具影响力的中文…