贝叶斯定理

文章目录

条件概率

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

如:

两个程序员一起编软件,软件规模有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%
相关推荐
艾德克斯4 小时前
AI服务器电源POWER SHELF测试破局:HVDC高压架构挑战与ITECH全栈测试方案
人工智能·架构
IvorySQL6 小时前
PG 日报|新增 VACUUM 全维度统计信息补丁迭代
数据库·人工智能·postgresql·ivorysql
QYR_116 小时前
2026年全球氧化锆增韧氧化铝陶瓷市场规模达1.63亿美元,高端制造需求驱动行业持续增长
大数据·人工智能
空中湖6 小时前
AI是如何思考的|AI Agent与AGI:从对话到行动的进阶之路
人工智能·agi
Z-D-K6 小时前
我认为的AGI
人工智能·ai·人机交互·agent·agi
小北的AI科技分享7 小时前
2026视觉检测设备厂家排名:四大主流品牌技术与产品深度测评
人工智能·计算机视觉·视觉检测
江畔柳前堤7 小时前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
山东云弈创峰科技7 小时前
山东云弈创峰:跨境电商AI自动化中的环境隔离与风控架构
人工智能·架构·自动化
水如烟7 小时前
孤能子视角:三十六计之反客为主——拓扑结构重构
人工智能
世界哪有真情7 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端