理解贝叶斯公式

作者:徐炎琨
链接:https://www.zhihu.com/question/21134457/answer/169523403
来源:知乎
要想理解这个公式,首先要知道这个竖线 的两侧一会是 ,一会是 到底指的是什么,或者说似然函数和参数概率分布到底指的是什么。 似然函数首先来看似然函数 ,似然函数听起来很陌生,其实就是我们在概率论当中看到的各种概率分布 ,那为什么后面要加个参数 呢?我们知道,掷硬币这个事件是服从伯努利分布的 , 次的伯努利实验就是我们熟知的二项分布 , 这里的 就是一个参数,原来我们在做实验之前,这个参数就已经存在了(可以理解为上帝已经定好了),我们抽样出很多的样本 是为了找出这个参数,我们上面所说的掷硬币的例子,由于我们掷了1000次有492次是正面,根据求期望的公式 (492就是我们的期望)可以得出参数为 ,所以我们才认为正面的概率是近似50%的。现在我们知道了,其实我们观测到样本的分布是在以某个参数为前提下得出来的,所以我们记为 ,只是我们并不知道这个参数是多少。所以 参数估计 成为了统计学里很大的一个课题,古典统计学中常用的方法有两种:矩方法(momnet) 和 最大似然估计(maximum likelihood estimate, mle) ,我们常用的像上面掷硬币例子中求均值的方法,本质就是矩估计方法,这是基于大数定理的。而统计学中更广泛的是使用最大似然估计的方法,原理其实很简单,在这简单说一下:假设我们有个样本 , 它们每一个变量都对应一个似然函数: 我们现在把这些似然函数乘起来: 我们只要找到令这个函数最大的 值,便是我们想要的参数值(具体计算参考[2]中p184)。 后验分布(Posterior distribution)现在到了贝叶斯的时间了。以前我们想知道一个参数,要通过大量的观测值才能得出,而且是只能得出一个参数值。而现在运用了贝叶斯统计思想,这个后验概率分布其实是一系列参数值的概率分布,再说简单点就是我们得到了许多个参数及其对应的可能性,我们只需要从中选取我们想要的值就可以了:有时我们想要概率最大的那个参数,那这就是 后验众数估计(posterior mode estimator);有时我们想知道参数分布的中位数,那这就是 后验中位数估计(posterior median estimator);有时我们想知道的是这个参数分布的均值,那就是 后验期望估计。这三种估计没有谁好谁坏,只是提供了三种方法得出参数,看需要来选择。现在这样看来得到的参数是不是更具有说服力? 置信区间和可信区间在这里我想提一下 置信区间(confidence interval, CI) 和 可信区间(credibility interval,CI),我觉得这是刚学贝叶斯时候非常容易弄混的概念。再举个例子:一个班级男生的身高可能服从某种正态分布 ,然后我们把全班男生的身高给记录下来,用高中就学过的求均值和方差的公式就可以算出来这两个参数,要知道我们真正想知道的是这个参数 ,当然样本越多,得出的结果就接近真实值(其实并没有人知道什么是真实值,可能只有上帝知道)。等我们算出了均值和方差,我们这时候一般会构建一个95%或者90%的置信区间,这个置信区间是对于 样本来说的,我只算出了一个 和 一个 参数值的情况下,95%的置信区间意味着在这个区间里的样本是可以相信是服从以为参数的正态分布的,一定要记住置信区间的概念中是指 一个参数值 的情况下!而我们也会对我们得到的后验概率分布构造一个90%或95%的区间,称之为可信区间。这个可信区间是对于 参数来说的,我们的到了 很多的参数值,取其中概率更大一些的90%或95%,便成了可信区间。 先验分布(Prior distribution)说完了后验分布,现在就来说说先验分布。先验分布就是你在取得实验观测值以前对一个参数概率分布的 主观判断,这也就是为什么贝叶斯统计学一直不被认可的原因,统计学或者数学都是客观的,怎么能加入主观因素呢?但事实证明这样的效果会非常好!再拿掷硬币的例子来看(怎么老是拿这个举例,是有多爱钱。。。),在扔之前你会有判断正面的概率是50%,这就是所谓的先验概率,但如果是在打赌,为了让自己的描述准确点,我们可能会说正面的概率为0.5的可能性最大,0.45的几率小点,0.4的几率再小点,0.1的几率几乎没有等等,这就形成了一个先验概率分布。那么现在又有新的问题了,如果我告诉你这个硬币的材质是不均匀的,那正面的可能性是多少呢?这就让人犯糊涂了,我们想有主观判断也无从下手,于是我们就想说那就先认为01之间每一种的可能性都是相同的吧,也就是设置成01之间的均匀分布 作为先验分布吧,这就是贝叶斯统计学当中的 无信息先验(noninformative prior)!那么下面我们就通过不断掷硬币来看看,这个概率到是多少,贝叶斯过程如下:

在这里插入图片描述
在这里插入图片描述

从图中我们可以看出,0次试验的时候就是我们的先验假设——均匀分布,然后掷了第一次是正面,于是概率分布倾向于1,第二次又是正,概率是1的可能性更大了,但 注意:这时候在0.5的概率还是有的,只不过概率很小,在0.2的概率变得更小。第三次是反面,于是概率分布被修正了一下,从为1的概率最大变成了2/3左右最大(3次试验,2次正1次反当然概率是2/3的概率最大)。再下面就是进行更多次的试验,后验概率不断根据观测值在改变,当次数很大的时候,结果趋向于0.5(哈哈,结果这还是一枚普通的硬币,不过这个事件告诉我们,直觉是不可靠的,一定亲自实验才行~)。有的人会说,这还不是在大量数据下得到了正面概率为0.5嘛,有什么好稀奇的? 注意了!画重点了!(敲黑板) 记住,不要和一个统计学家或者数学家打赌!跑题了,跑题了。。。说回来,我们上面就说到了古典概率学的弊端就是如果掷了2次都是正面,那我们就会认为正面的概率是1,而在贝叶斯统计学中,如果我们掷了2次都是正面,只能说明正面是1的可能性最大,但还是有可能为0.5, 0.6, 0.7等等的,这就是对古典统计学的一种完善和补充,于是我们也就是解释了,我们所谓的 地震的概率为5%;生病的概率为10%等等这些概率的意义了,这就是贝叶斯统计学的哲学思想。 共轭先验(Conjugate prior)共轭先验应该是每一个贝叶斯统计初学者最头疼的问题,我觉得没有“之一”。这是一个非常大的理论体系,我试着用一些简单的语言进行描述,关键是去理解其思想。继续拿掷硬币的例子,这是一个二项试验 ,所以其似然函数为: 在我们不知道情况时就先假设其先验分布为均匀分布 ,即:那现在根据贝叶斯公式求后验概率分布: 我们得到结果为:这么一大串是什么呢?其实就是大名鼎鼎的贝塔分布(Beta distribution)。 简写就是 。 比如我掷了10次(n=10),5次正(x=5),5次反,那么结果就是 , 这个分布的均值就是0.5( ),很符合我们想要的结果。 现在可以说明,我们把主观揣测的先验概率定为均匀分布是合理的,因为我们在对一件事物没有了解的时候,先认为每种可能性都一样是非常说得通的。有人会认为,既然无信息先验是说得通的,而且贝叶斯公式会根据我们的观测值不断更新后验概率,那是不是我们随便给一个先验概率都可以呢?当然…不行!!这个先验概率是不能瞎猜的,是需要根据一些前人的经验和常识来判断的。比如我随便猜先验为一个分段函数: 靠,是不是很变态的一个函数…就是假设一个极端的情况,如果你把这个情况代入贝叶斯公式,结果是不会好的(当然我也不知道该怎么计算)。 这个例子中,我看到了可能的后验分布是 分布,看起来感觉有点像正态分布啊,那我们用正态分布作为先验分布可以吗?这个是可以的(所以要学会观察)。可如果我们把先验分布为正态分布代入到贝叶斯公式,那计算会非常非常麻烦,虽然结果可能是合理的。那怎么办?不用担心,因为我们有共轭先验分布! 继续拿上面这个例子,如果我们把先验分布 设为贝塔分布 ,结果是什么呢?我就不写具体的计算过程啦,直接给结果: 有没有看到,依然是贝塔分布,结果只是把之前的1换成了 (聪明的你可能已经发现,其实我们所说的均匀分布 等价于 ,两者是一样的)。 由此我们便可以称 二项分布的共轭先验分布为贝塔分布!注意!接着画重点!:共轭先验这个概念必须是基于似然函数来讨论的,否则没有意义! 好,那现在有了共轭先验,然后呢?作用呢?这应该是很多初学者的疑问。 现在我们来看,如果你知道了一个观测样本的似然函数是二项分布的,那我们把先验分布直接设为 ,于是我们就 不用计算复杂的含有积分的贝叶斯公式 便可得到后验分布 了!!!只需要记住试验次数 ,和试验成功事件次数 就可以了!互为共轭的分布还有一些,但都很复杂,用到的情况也很少,推导过程也极其复杂,有兴趣的可以自行搜索。我说的这个情况是最常见的! 注意一下,很多资料里会提到一个概念叫伪计数(pseudo count),这里的伪计数值得就是a,b对后验概率分布的影响,我们会发现如果我们取 ,这个先验概率对结果的影响会很小,可如果我们设为 ,那么我们做10次试验就算是全是正面的,后验分布都没什么变化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 贝叶斯公式是一种用于计算概率的公式,可以用来评估某个事件发生的可能性。公式的形式为: P(A|B) = P(B|A) * P(A) / P(B) 其中,P(A|B) 表示在 B 已知的情况下,A 发生的概率。P(B|A) 表示在 A 发生的情况下,B 发生的概率。P(A) 表示 A 发生的概率,P(B) 表示 B 发生的概率。 举个例子,假设有两个事件 A 和 B,你想知道在 B 已知的情况下 A 发生的概率。你可以使用贝叶斯公式来计算这个概率。 例如,假设你想知道在测试出现阳性的情况下,患有疾病的概率。你可以用以下方式计算: P(疾病|阳性) = P(阳性|疾病) * P(疾病) / P(阳性) 其中,P(疾病) 表示患有疾病的概率,P(阳性) 表示测试出现阳性的概率,P(阳性|疾病) 表示在患有疾病的情况下测试出现阳性的概率,P(疾病|阳性) 表示在测试出现阳性的情况下患有疾病的概率。 使用 python 代码计算贝叶斯公式的例子如下: ``` ### 回答2: 贝叶斯公式是概率论中一种重要的公式,用于计算条件概率。它将先验概率和后验概率联系起来,使我们能够根据新的证据重新修正我们的信念。 具体地说,贝叶斯公式可以表示为: P(A|B) = (P(B|A) * P(A)) / P(B) 其中,P(A|B)表示在事件B发生的条件下事件A发生的概率,P(B|A)表示在事件A发生的条件下事件B发生的概率,P(A)和P(B)分别表示事件A和事件B的无条件概率。 下面我们用Python代码来说明如何使用贝叶斯公式进行分类。 ```python # 导入需要的库 import numpy as np # 定义先验概率和条件概率 prior_prob = np.array([0.3, 0.7]) # 两个类别的先验概率 likelihood = np.array([[0.6, 0.4], [0.8, 0.2]]) # 条件概率矩阵 # 定义观测到的数据 observed_data = np.array([1, 0, 1]) # 三个特征的观测值,1表示特征存在,0表示特征不存在 # 计算后验概率 posterior_prob = prior_prob * np.prod(likelihood ** observed_data, axis=1) # 根据贝叶斯公式计算后验概率 # 归一化后得到分类结果 posterior_prob /= np.sum(posterior_prob) # 输出结果 print("后验概率为:", posterior_prob) ``` 其中,prior_prob是一个长度为k的数组,表示k个类别的先验概率;likelihood是一个k×n的矩阵,表示每个类别在n个特征上的条件概率;observed_data是一个长度为n的数组,表示观测到的n个特征的取值。 代码中,我们通过np.prod函数计算了每个类别在观测数据上的条件概率连乘积,然后与先验概率相乘得到后验概率,最后使用归一化将后验概率转换为分类结果。输出结果即为不同类别的后验概率。 ### 回答3: 贝叶斯公式是一种概率论中常用的公式,用于计算在已知某些条件下的概率。其表达式为: P(A|B) = P(B|A) * P(A) / P(B) 其中,P(A|B)表示在已知事件B发生的条件下,事件A发生的概率;P(B|A)表示在已知事件A发生的条件下,事件B发生的概率;P(A)和P(B)分别表示事件A和事件B的概率。 理解贝叶斯公式的关键在于识别和理解概率的条件关系。 下面是一个使用Python代码举例的案例: 假设有某个疾病,测试结果有两种:阳性和阴性。假设这个疾病在人群中的患病率是0.01,而测试的准确率是0.99(即在有疾病的人中,99%的测试结果为阳性;在没有疾病的人中,1%的测试结果为阳性)。 现在问题是,如果一个人得出阳性结果,那么他真的患病的概率是多少? ```python # 计算贝叶斯公式 def bayes_theorem(p_a, p_b_given_a, p_b): return (p_b_given_a * p_a) / p_b # 已知的概率 p_a = 0.01 # 疾病的患病率 p_b_given_a = 0.99 # 在已知患病的条件下,测试结果为阳性的概率 p_b = (p_b_given_a * p_a) + (0.01 * 0.01) # 测试结果为阳性的总概率 # 使用贝叶斯公式计算患病的概率 p_a_given_b = bayes_theorem(p_a, p_b_given_a, p_b) print(p_a_given_b) # 输出患病的概率 ``` 运行以上代码,可以得出阳性结果的人真的患病的概率为0.495。这个例子展示了如何使用贝叶斯公式来计算概率,通过已知条件计算出未知条件的概率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值