Logo
Section 1 / 6

关于朴素贝叶斯的更多内容

学习朴素贝叶斯的基础知识并计算先验概率。

导入

关于朴素贝叶斯的更多内容

学习朴素贝叶斯的基础知识并计算先验概率。

朴素贝叶斯 是一种基于贝叶斯定理的概率机器学习算法。尽管其原理简单,但在多种分类任务中都取得了成功应用。

我们将结合前几章所学的理论与实践知识,构建一个量子朴素贝叶斯分类器。与之前课程中介绍的变分混合量子-经典算法中的量子分类器类似,量子朴素贝叶斯也是一种变分混合量子-经典算法。它包含三个部分:

  • 我们在经典计算机上对数据进行预处理,以确定一组特征对应的修正因子。
  • 我们在量子电路中应用这些修正因子,并测量表示后验概率的量子比特。
  • 我们对测量结果进行后处理,并将其转换为预测结果,再与训练数据集的真实标签进行评估。

在之前的变分混合量子-经典算法课程中,我们通过预处理生成最终的量子态,仅使用量子电路对其进行测量。而这一次,我们不仅生成一个待测量的简单量子态,还设计了一个包含概率计算过程的量子电路。

下图展示了我们这个简单变分混合量子-经典算法的整体架构。

...
一个变分混合量子-经典算法

我们知道,贝叶斯定理的表达式为:

P(假设∣证据)=P(假设)⋅P(证据∣假设)P(证据)P(\text{假设}|\text{证据}) = P(\text{假设}) \cdot \frac{P(\text{证据}|\text{假设})}{P(\text{证据})}

若我们有一个假设 HH,以及多个证据 E1,E2,...,EnE_1, E_2, ..., E_n,则对应有 nn 个修正因子 M1,M2,...,MnM_1, M_2, ..., M_n:

P(H∣E1,E2,...,En)=P(E1∣H)P(E1)⋅P(E2∣H)P(E2)⋯P(En∣H)P(En)⋅P(H)P(H|E_1,E_2,...,E_n) = \frac{P(E_1|H)}{P(E_1)} \cdot \frac{P(E_2|H)}{P(E_2)} \cdots \frac{P(E_n|H)}{P(E_n)} \cdot P(H)

该公式表明,我们可以用每个修正因子来表示乘客某一特征对其在泰坦尼克号沉船事件中生存概率的影响。

在预处理阶段,我们为两个特征——票务等级(PclassPclass)和性别(SexSex)——分别计算出相应的修正因子。我们将量子朴素贝叶斯分类器限制在这两个特征上,以尽可能简化量子电路结构,从而更专注于算法的核心逻辑。

计算先验概率

1import pandas as pd 2train = pd.read_csv('train.csv') 3 4# 总人数 5cnt_all = len(train) 6 7# 所有幸存者列表 8survivors = train[train.Survived.eq(1)] 9cnt_survivors = len(survivors) 10 11# 计算先验概率 12prob_survival = len(survivors) / cnt_all 13 14print("生存的先验概率为:", round(prob_survival, 2))

我们从简单的步骤开始。第1行导入 pandas,第2行从原始CSV文件加载训练数据。我们使用原始数据,因为仅涉及类别型数据(PclassPclass 和 SexSex),且这两个字段没有缺失值(参见“查看数据”部分)。

第12行计算了在泰坦尼克号沉船事件中生存的先验(边缘)概率,即幸存人数(第9行)与总乘客数(第5行)的比值。

结果显示,先验概率约为 0.38。

二分类

预处理