贝叶斯定理

文章目录

条件概率

条件概率指两个事件的发生存在一定的关系。一个事件作为先前条件下,另一个事件发生的概率。

如:

两个程序员一起编软件,软件规模有10000行。程序员甲写了6000行代码,程序员乙写了4000行。程序员甲的BUG率是千行10个BUG,也就是1%。程序员乙的BUG率是千行5个BUG,也就是0.5%。

上述中包含三个事件:

  • 事件A:代码行是程序员甲编写的,概率为P(A)
  • 事件B:代码行是程序员乙编写的,概率为P(B)
  • 事件Y:代码行中包含BUG,概率为P(Y)

"程序员甲编写的代码行中包含BUG的概率" 就是一个条件概率,概率为P(Y|A)。根据已知得P(Y|A) = 1%。

有的时候会将上面的概率与 "代码是程序员甲编写的,并且包含BUG的概率" P ( A ⋂ Y ) P( A \bigcap Y ) P(A⋂Y) 搞混。

P ( Y ∣ A ) P(Y | A) P(Y∣A) 和 P ( A ⋂ Y ) P( A \bigcap Y ) P(A⋂Y) 的区别和关系

P ( Y ∣ A ) P(Y | A) P(Y∣A) 和 P ( A ⋂ Y ) P( A \bigcap Y ) P(A⋂Y) 的核心区别在于在计算Y的概率时,是否缩小样本空间。

  • P ( A ⋂ Y ) P( A \bigcap Y ) P(A⋂Y)不缩小样本空间,比如例子中的样本空间是10000。
  • P ( Y ∣ A ) P(Y | A) P(Y∣A)需要缩小样本空间,首先将样本空间缩小到原样本空间乘以P(A),然后在缩小后的样本空间中计算Y的概率。例子中原样本空间是 10000,首先将样本空间缩小成 10000 * P(A) = 6000,然后基于6000这个样本空间再去计算Y的概率则P(Y|A) = 1%。

现在探讨一下 P(A)、P(Y|A)、 P ( A ⋂ Y ) P( A \bigcap Y ) P(A⋂Y)三者的关系。设总样本空间为S则:
P ( A ⋂ Y ) = S ∗ P ( A ) ∗ P ( Y ∣ A ) S P( A \bigcap Y ) = \frac{S * P(A) * P(Y|A)}{S} P(A⋂Y)=SS∗P(A)∗P(Y∣A)

S可以约掉
P ( A ⋂ Y ) = P ( A ) ∗ P ( Y ∣ A ) P( A \bigcap Y ) = P(A) * P(Y|A) P(A⋂Y)=P(A)∗P(Y∣A)

贝叶斯定理

先在脑子里种下一颗种子"事件A是原因、事件Y是结果" ,P(Y|A)是"事件A造成事件Y的概率"。在例子中代表程序员甲造成BUG的概率(1%)。

既然:
P ( A ⋂ Y ) = P ( A ) ∗ P ( Y ∣ A ) P( A \bigcap Y ) = P(A) * P(Y|A) P(A⋂Y)=P(A)∗P(Y∣A)

那么同理
P ( A ⋂ Y ) = P ( Y ) ∗ P ( A ∣ Y ) P( A \bigcap Y ) = P(Y) * P(A|Y) P(A⋂Y)=P(Y)∗P(A∣Y)


P ( A ) ∗ P ( Y ∣ A ) = P ( Y ) ∗ P ( A ∣ Y ) P(A) * P(Y|A)= P(Y) * P(A|Y) P(A)∗P(Y∣A)=P(Y)∗P(A∣Y)
= > P ( A ∣ Y ) = P ( A ) ∗ P ( Y ∣ A ) P ( Y ) 1 ◯ => P(A|Y) = \frac{P(A) * P(Y|A)}{ P(Y) } \textcircled{1} =>P(A∣Y)=P(Y)P(A)∗P(Y∣A)1◯
= > P ( A ∣ Y ) = P ( A ⋂ Y ) P ( Y ) 2 ◯ => P(A|Y) = \frac{P( A \bigcap Y )}{ P(Y) }\textcircled{2} =>P(A∣Y)=P(Y)P(A⋂Y)2◯
= > P ( A ∣ Y ) = P ( A ⋂ Y ) P ( A ⋂ Y ) + P ( A ‾ ⋂ Y ) 3 ◯ => P(A|Y) = \frac{P( A \bigcap Y )}{ P( A \bigcap Y ) + P( \overline A \bigcap Y ) }\textcircled{3} =>P(A∣Y)=P(A⋂Y)+P(A⋂Y)P(A⋂Y)3◯
1 ◯ \textcircled{1} 1◯ 为贝叶斯定理, 2 ◯ \textcircled{2} 2◯ 3 ◯ \textcircled{3} 3◯ 与 1 ◯ \textcircled{1} 1◯是等价的。

贝叶斯定理的含义

还记得刚才种下的种子么?P(Y|A)是"事件A造成事件Y的概率 ",属于原因推结果;那么P(A|Y)就是"如果事件Y发生,那么它是由事件A造成的概率是多大",属于结果推原因。

现在求发现一行代码中包含BUG,则这行代码是程序员甲写的概率有多大。

我们通过 1 ◯ \textcircled{1} 1◯求解。

  • P(A)的值已知为 60%
  • P(Y|A)的值已知为 1%
  • P(Y)的值未知,但可算$P(Y) = P ( A ⋂ Y ) + P ( A ‾ ⋂ Y ) P( A \bigcap Y ) + P( \overline A \bigcap Y ) P(A⋂Y)+P(A⋂Y) = 6000 ∗ 0.1 10000 + 4000 ∗ 0.5 10000 \frac{6000 * 0.1}{10000} + \frac{4000 * 0.5}{10000} 100006000∗0.1+100004000∗0.5 = 0.008
  • P(A|Y) = 0.6 ∗ 0.01 0.008 \frac{0.6 * 0.01}{0.008} 0.0080.6∗0.01=75%
    则发现BUG代码是由程序员甲编写的概率是75%
相关推荐
老刘干货11 分钟前
Prompt工程全解·第四篇:精雕细琢——迭代优化与防御性提示词设计
人工智能·技术人
輕華12 分钟前
OpenCV答题卡识别:从图像预处理到自动评分
人工智能·opencv·计算机视觉
JQLvopkk20 分钟前
机器视觉为何不用普通相机
人工智能·数码相机
AI航向标20 分钟前
OpenClaw 完整本地部署安装(接入飞书)
人工智能·飞书·openclaw
接着奏乐接着舞。22 分钟前
机器学习经验总结整理
人工智能·机器学习
Sim148022 分钟前
iPhone将内置本地大模型,手机端AI实现0 token成本时代来临?
人工智能·ios·智能手机·iphone
AI航向标23 分钟前
Openclaw一键本地部署接入豆包
人工智能·openclaw
就是这么拽呢27 分钟前
论文查重低但AIGC率高,如何补救?
论文阅读·人工智能·ai·aigc
supericeice29 分钟前
创邻科技 AI智算一体机:支持 DeepSeek 671B 与 Qwen3 单机部署,覆盖纯CPU到多GPU多机扩展
大数据·人工智能·科技
AEIC学术交流中心1 小时前
【快速EI检索 | ACM出版】第六届物联网与机器学习国际会议 (IoTML 2026)
物联网·机器学习