贝叶斯定理

文章目录

条件概率

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

如:

两个程序员一起编软件,软件规模有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%
相关推荐
默默开发33 分钟前
完整版:本地电脑 + WiFi 搭建 AI 自动炒股 + 自我学习系统
人工智能·学习·电脑
zzh9407738 分钟前
2026年AI文件上传功能实战:聚合站处理图片、PDF、PPT全指南
人工智能·pdf·powerpoint
新缸中之脑5 小时前
Paperless-NGX实战文档管理
人工智能
无极低码7 小时前
ecGlypher新手安装分步指南(标准化流程)
人工智能·算法·自然语言处理·大模型·rag
grant-ADAS7 小时前
记录paddlepaddleOCR从环境到使用默认模型,再训练自己的数据微调模型再推理
人工智能·深度学习
炎爆的土豆翔7 小时前
OpenCV 阈值二值化优化实战:LUT 并行、手写 AVX2 与 cv::threshold 性能对比
人工智能·opencv·计算机视觉
智能相对论7 小时前
从AWE看到海尔智慧家庭步步引领
人工智能
云和数据.ChenGuang7 小时前
魔搭社区 测试AI案例故障
人工智能·深度学习·机器学习·ai·mindstudio
小锋学长生活大爆炸7 小时前
【工具】无需Token!WebAI2API将网页AI转为API使用
人工智能·深度学习·chatgpt·openclaw
昨夜见军贴06167 小时前
AI审核赋能司法鉴定:IACheck如何保障刑事证据检测报告精准无误、经得起推敲?
人工智能