贝叶斯公式,对似然函数

定理定义

贝叶斯公式(发表于1763年)为:
这就是著名的“贝叶斯定理”,一些文献中把P(B[1])、P(B[2])称为基础概率,P(A│B[1])为击中率,P(A│B[2])为误报率。

应用例子

吸毒者检测

贝叶斯定理在检测吸毒者时很有用。假设一个常规的检测结果的敏感度与可靠度均为99%,也就是说,当被检者吸毒时,每次检测呈阳性(+)的概率为99%。而被检者不吸毒时,每次检测呈阴性(-)的概率为99%。从检测结果的概率来看,检测结果是比较准确的,但是贝叶斯定理却可以揭示一个潜在的问题。假设某公司将对其全体雇员进行一次鸦片吸食情况的检测,已知0.5%的雇员吸毒。我们想知道,每位医学检测呈阳性的雇员吸毒的概率有多高?令“D”为雇员吸毒事件,“N”为雇员不吸毒事件,“+”为检测呈阳性事件。可得
  • P(D)代表雇员吸毒的概率,不考虑其他情况,该值为0.005。因为公司的预先统计表明该公司的雇员中有0.5%的人吸食毒品,所以这个值就是D的先验概率。
  • P(N)代表雇员不吸毒的概率,显然,该值为0.995,也就是1-P(D)。
  • P(+|D)代表吸毒者阳性检出率,这是一个条件概率,由于阳性检测准确性是99%,因此该值为0.99。
  • P(+|N)代表不吸毒者阳性检出率,也就是出错检测的概率,该值为0.01,因为对于不吸毒者,其检测为阴性的概率为99%,因此,其被误检测成阳性的概率为1-99%。
  • P(+)代表不考虑其他因素的影响的阳性检出率。该值为0.0149或者1.49%。我们可以通过全概率公式计算得到:此概率 = 吸毒者阳性检出率(0.5% x 99% = 0.00495)+ 不吸毒者阳性检出率(99.5% x 1% = 0.00995)。P(+)=0.0149是检测呈阳性的先验概率。用数学公式描述为:
根据上述描述,我们可以计算某人检测呈阳性时确实吸毒的条件概率P(D|+):
P(D|+) = P(+|D)P(D)/(P(+|D)P(D)+P(+|N)P(N))=0.99 *0.005/0.0149=0.332215
尽管我们的检测结果可靠性很高,但是只能得出如下结论:如果某人检测呈阳性,那么此人是吸毒的概率只有大 约33%,也就是说此人不吸毒的可能性比较大。我们测试的条件(本例中指D,雇员吸毒)越难发生,发生误判的可能性越大。
但如果让此人再次复检(相当于P(D)=33.2215%,为吸毒者概率,替换了原先的0.5%),再使用贝叶斯定理计算,将会得到此人吸毒的概率为98.01%。但这还不是贝叶斯定理最强的地方,如果让此人再次复检,再重复使用贝叶斯定理计算,会得到此人吸毒的概率为99.8%(99.9794951%)已经超过了检测的可靠度。

求最大似然估计量的一般步骤:
        (1)写出似然函数;
        (2)对似然函数取对数,并整理;
        (3)求导数;
        (4)解似然方程。
        最大似然估计的特点:
        1.比其他估计方法更加简单;
        2.收敛性:无偏或者渐近无偏,当样本数目增加时,收敛性质会更好;

        3.如果假设的类条件概率模型正确,则通常能获得较好的结果。但如果假设模型出现偏差,将导致非常差的估计结果。

转自:https://www.cnblogs.com/zhsuiy/p/4822020.html

一直对贝叶斯里面的似然函数(likelihood function),先验概率(prior),后验概率(posterior)理解得不是很好,今天仿佛有了新的理解,记录一下。

看论文的时候读到这样一句话:

原来只关注公式,所以一带而过。再重新看这个公式前的描述,细思极恐。

the likelihood function of the parameters θ = {w,α,β} given the observations D can be factored as..


两个疑问:likelihood function为什么会写成条件概率的形式?given的明明是D,为什么到后面的公式里,却变成了given θ 呢?

百度了一下,先贴上wikipedia的解释:

https://zh.wikipedia.org/wiki/%E4%BC%BC%E7%84%B6%E5%87%BD%E6%95%B0

下面整理一下自己的理解,借用wikipedia里面硬币的例子。

常说的概率是指给定参数后,预测即将发生的事件的可能性。拿硬币这个例子来说,我们已知一枚均匀硬币的正反面概率分别是0.5,要预测抛两次硬币,硬币都朝上的概率:

H代表Head,表示头朝上

p(HH | pH = 0.5) = 0.5*0.5 = 0.25.

这种写法其实有点误导,后面的这个p其实是作为参数存在的,而不是一个随机变量,因此不能算作是条件概率,更靠谱的写法应该是 p(HH;p=0.5)。

而似然概率正好与这个过程相反,我们关注的量不再是事件的发生概率,而是已知发生了某些事件,我们希望知道参数应该是多少。

现在我们已经抛了两次硬币,并且知道了结果是两次头朝上,这时候,我希望知道这枚硬币抛出去正面朝上的概率为0.5的概率是多少?正面朝上的概率为0.8的概率是多少?

如果我们希望知道正面朝上概率为0.5的概率,这个东西就叫做似然函数,可以说成是对某一个参数的猜想(p=0.5)的概率,这样表示成(条件)概率就是

L(pH=0.5|HH) = P(HH|pH=0.5) = (另一种写法)P(HH;pH=0.5).

为什么可以写成这样?我觉得可以这样来想:

似然函数本身也是一种概率,我们可以把L(pH=0.5|HH)写成P(pH=0.5|HH); 而根据贝叶斯公式,P(pH=0.5|HH) = P(pH=0.5,HH)/P(HH);既然HH是已经发生的事件,理所当然P(HH) = 1,所以:

P(pH=0.5|HH)  = P(pH=0.5,HH) = P(HH;pH=0.5).

右边的这个计算我们很熟悉了,就是已知头朝上概率为0.5,求抛两次都是H的概率,即0.5*0.5=0.25。

所以,我们可以safely得到:

L(pH=0.5|HH) = P(HH|pH=0.5) = 0.25.

这个0.25的意思是,在已知抛出两个正面的情况下,pH = 0.5的概率等于0.25。

再算一下

L(pH=0.6|HH) = P(HH|pH=0.6) = 0.36.

把pH从0~1的取值所得到的似然函数的曲线画出来得到这样一张图:

(来自wikipedia)

可以发现,pH = 1的概率是最大的。

即L(pH = 1|HH) = 1。

那么最大似然概率的问题也就好理解了。

最大似然概率,就是在已知观测的数据的前提下,找到使得似然概率最大的参数值。

这就不难理解,在data mining领域,许多求参数的方法最终都归结为最大化似然概率的问题。

回到这个硬币的例子上来,在观测到HH的情况下,pH = 1是最合理的(却未必符合真实情况,因为数据量太少的缘故)。

先理解这么多。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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发生的概率。 下面是用Python代码实现贝叶斯公式的示例: ``` def bayes(a, b, p_a, p_b): # 计算贝叶斯公式 p_a_b = (b * p_a) / p_b return p_a_b # 计算P(A|B) p_a_b = bayes(a=True, b=True, p_a=0.5, p_b=0.8) print(p_a_b) # 输出: 0.625 ``` 在上面的代码中,我们定义了一个函数`bayes`,用于计算贝叶斯公式。然后我们调用这个函数计算P(A|B)。 ### 回答2: 贝叶斯公式概率论中的重要公式,用于计算条件概率。在Python中可以使用一些库来实现贝叶斯公式计算,例如numpy和pandas等。 首先,我们需要导入这些库: ```python import numpy as np import pandas as pd ``` 然后,我们需要定义计算贝叶斯公式函数: ```python def bayes_theorem(prior, likelihood, evidence): return (prior * likelihood) / evidence ``` 接下来,我们可以根据具体的问题来给出先验概率似然度和证据,并使用定义的函数计算后验概率: ```python prior = 0.5 # 先验概率 likelihood = 0.8 # 似然度 evidence = 0.6 # 证据 posterior = bayes_theorem(prior, likelihood, evidence) print("后验概率为: ", posterior) ``` 运行以上代码,我们可以得到计算后的后验概率。 通过以上的代码,我们实现了贝叶斯公式计算。当然,这只是一个简单的示例,具体的应用场景和具体的概率计算会有所不同,需要根据实际情况灵活调整。 ### 回答3: 贝叶斯公式概率论中的重要公式,可以用于计算条件概率。在Python中,我们可以使用numpy库和pandas库中的方法来实现贝叶斯公式。 首先,我们需要导入numpy和pandas库: ```python import numpy as np import pandas as pd ``` 接下来,我们可以定义一个函数计算贝叶斯公式: ```python def bayes_theorem(prior, likelihood, evidence): posterior = (likelihood * prior) / evidence return posterior ``` 其中,`prior`是先验概率,`likelihood`是似然度,`evidence`是证据。根据贝叶斯公式,先验概率乘以似然度再除以证据,即可得到后验概率。 例如,假设我们有以下数据: ```python prior = 0.5 likelihood = 0.8 evidence = 0.3 ``` 我们可以调用`bayes_theorem`函数计算后验概率: ```python posterior = bayes_theorem(prior, likelihood, evidence) ``` 最后,我们输出后验概率的结果: ```python print("后验概率为:", posterior) ``` 这样,我们就成功地用Python实现了贝叶斯公式。 请注意,这只是一个简单的示例,实际的贝叶斯公式应用可能会涉及更多的变量和条件。需要根据具体情况进行相应的调整和计算

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值