机器学习 - 贝叶斯公式与全概率公式

全概率公式

定义: 设 $A_1,A_2,⋯,A_n$ 为完备事件组,$P( A_ {i} )>0(i=1,2, \cdots ,n)$

$$ P(B)= \sum _ {i=1}^ {n} P( A_ {i} )P( B|A_ {i} ) $$

贝叶斯公式

请查看 此文章

Python 示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 导入库
import numpy as np

# 共 10 个盒子,b[i][0] 表示盒子 i 中的苹果数量,b[i][1] 表示盒子 i 中的橙子数量
np.random.seed(0)
b = np.random.randint(0, 10, (10, 2))

# 共 10 个盒子,p[i] 表示盒子 i 被挑中的概率
p = np.array([0.1, 0.1, 0.05, 0.15, 0.08, 0.12, 0.09, 0.11, 0.06, 0.14])

# 初始化概率,P 表示挑出的水果是橙子的概率
P = 0

# 根据全概率公式,求挑出的水果是橙子的概率
for i in range(10):
    P += (b[i][1] / (b[i][0] + b[i][1])) * p[i]

# 打印结果
print("挑出的水果是橙子的概率为:", P)

# 已知挑出的水果是橙子,根据贝叶斯公式,求是从第一个盒子挑出的概率
P_1 = (b[0][1] / (b[0][0] + b[0][1])) * p[0] / P

# 打印结果
print("已知挑出的水果是橙子,是从第一个盒子挑出的概率为:", P_1)