机器学习 - 先验、后验和条件概率

先验概率 (Prior Probability)

先验概率表示在获得额外信息之前对事件发生的原始概率。它是基于以往经验或背景知识对事件的初步估计。例如,在进行一次医学诊断之前,患某种病的概率可以被认为是该疾病的先验概率。

用数学符号表示为:

P(A) P(A)

这里,P(A)P(A) 是事件 AA 发生的先验概率。

后验概率 (Posterior Probability)

后验概率是指在观察到某些数据或证据之后,更新了对事件的概率。它是在获得额外信息之后的概率,是通过贝叶斯定理计算得到的。

用数学符号表示为:

P(AB) P(A \mid B)

这里,P(AB)P(A \mid B) 是在观察到事件 BB 之后,事件 AA 的后验概率。

条件概率 (Conditional Probability)

条件概率是指在某些条件下(已知某些其他事件发生)某个事件发生的概率。它描述了在给定另一事件已发生的前提下,事件发生的可能性。

用数学符号表示为:

P(AB)=P(AB)P(B) P(A \mid B) = \frac{P(A \cap B)}{P(B)}

其中:

  • P(AB)P(A \mid B) 表示在 BB 发生的条件下,事件 AA 发生的概率。
  • P(AB)P(A \cap B) 表示事件 AABB 同时发生的概率。
  • P(B)P(B) 表示事件 BB 发生的概率。

Python 示例代码

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

# 共 100 个样本,每个样本 x 都包括 5 个特征
np.random.seed(0)
x = np.random.randn(100, 5)

# 共 100 个样本,每个样本 x 都属于 {0,1,2,...,9} 类别中的一个
np.random.seed(0)
y = np.random.randint(0, 10, 100)

# 初始化先验概率,P[i] 表示类别 i 出现的概率
P = np.zeros(10)  # 这里应该是 10,而不是 100

# 任务 1:计算每个标签的先验概率
for i in range(10):
    P[i] = np.sum(y == i) / len(y)


# 打印结果
for i in range(10):
    print("类别 i 出现的概率为:", P[i])