贝叶斯定理

文章目录

条件概率

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

如:

两个程序员一起编软件,软件规模有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%
相关推荐
IT_陈寒8 分钟前
React的useEffect依赖数组把我坑惨了
前端·人工智能·后端
大模型真好玩10 分钟前
DeepSeek Harness 插件的服务与事件监听详解
人工智能·agent·deepseek
迪菲赫尔曼11 分钟前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
阿里云大数据AI技术17 分钟前
阿里云DLF年度发布:Agentic Lake全模态 AI 数据湖底座
人工智能
玩AI的奶茶1 小时前
MiniMax H3 出 30 秒长片:显存账、拼接法和一次的成本
大数据·人工智能·ai·gpu算力·算力租赁
杭州默安科技1 小时前
从“被动响应”到“主动遏制”:AI Agent时代,网络防御体系如何重构?
人工智能·网络安全·ai智能体
Angeldream1231 小时前
第 10 章 医学影像伦理与安全
图像处理·人工智能·python·安全·机器学习·医学影像
2601_965305392 小时前
森林防火卡口与气象监测联动
人工智能
云和数据.ChenGuang2 小时前
光哥说Python 异常深度解析:从异常模型到工程化实践
java·前端·人工智能·python·langchain
爱签AI电子合同2 小时前
电子合同全维度实测与选型指南
大数据·人工智能