朴素贝叶斯算法:医学文本分类利器
在医疗信息化进程中,非结构化的文本数据占据了医疗信息的很大比重——从电子病历的病程记录、出院小结,到医学文献、临床指南,乃至患者的在线咨询记录。如何从这些海量文本中高效、准确地提取关键信息,是医疗 AI 面临的重要挑战。朴素贝叶斯(Naïve Bayes)算法以其简单、高效、对高维稀疏数据适应性强的特点,成为医学文本分类任务中的经典利器。
核心原理
朴素贝叶斯是一系列基于贝叶斯定理的分类算法,其核心是'朴素'的条件独立性假设——在给定类别的情况下,各个特征之间相互独立。尽管这一假设在现实中很少完全成立,但朴素贝叶斯在众多实际任务中仍表现出色,尤其是在文本分类领域。
贝叶斯定理
贝叶斯定理描述了在已知某些条件下,事件发生的概率如何更新。对于分类问题,我们希望计算给定样本 $x$ 的条件下,其属于类别 $C_k$ 的概率,即后验概率 $P(C_k | x)$。根据贝叶斯定理:
$$ P(C_k | x) = \frac{P(x | C_k) P(C_k)}{P(x)} = \frac{P(x | C_k) P(C_k)}{\sum_j P(x | C_j) P(C_j)} $$
其中:
- $P(C_k)$ 是类别 $C_k$ 的先验概率,可从训练数据中估计。
- $P(x | C_k)$ 是给定类别 $C_k$ 的条件下,样本 $x$ 出现的似然。
- $P(x)$ 是证据因子,对于给定样本是常数,因此分类决策可简化为比较分子的大小。
'朴素'假设的意义
设样本 $x = (x_1, x_2, …, x_p)$ 包含 $p$ 个特征。朴素贝叶斯假设在给定类别 $C_k$ 的条件下,各个特征之间相互独立,即:
$$ P(x | C_k) = \prod_{i=1}^{p} P(x_i | C_k) $$
这一假设极大地简化了计算,因为原本需要估计联合概率分布,现在只需要估计每个特征的条件概率。尽管独立性假设通常不成立,但研究表明,在许多分类任务中,朴素贝叶斯依然能取得良好的性能,尤其是在特征之间相关性不强或数据集足够大的情况下。
常见模型变体
根据特征的不同分布假设,朴素贝叶斯有以下三种常见变体:
- 高斯朴素贝叶斯:适用于连续数值型特征,假设特征在给定类别下服从正态分布。
- 多项式朴素贝叶斯:适用于离散特征,特别是文本分类中的词频或 TF-IDF 值。这是医疗文本中最常用的模型之一。
- 伯努利朴素贝叶斯:适用于二元特征(如单词是否出现)。
在医学文本分类中,多项式和伯努利模型最为常用,因为文本数据通常表示为词频或词出现与否。
工程细节:平滑与稳定性
拉普拉斯平滑
在估计条件概率时,如果某个特征在训练集中未出现,其概率会为零,导致整个乘积为零。为避免这一问题,通常引入拉普拉斯平滑(加一平滑):
$$ P(x_i | C_k) = \frac{\text{计数}(x_i, C_k) + \alpha}{\text{总计数}(C_k) + \alpha \cdot n} $$
其中 $\alpha \geq 0$ 是平滑参数,通常取 1。
对数概率
由于多个概率相乘可能导致数值下溢,实际计算中通常取对数,将乘法转化为加法:
$$ \log P(C_k | x) \propto \log P(C_k) + \sum_{i=1}^{p} \log P(x_i | C_k) $$
由于对数函数单调递增,分类时只需比较不同类别的对数后验概率大小即可。
医疗应用场景
朴素贝叶斯在医疗领域的应用主要集中在文本分类任务,同时也适用于部分非文本分类场景。
- 电子病历文本分类:用于疾病自动编码(ICD)、病历结构化抽取及质量检查。
- 临床文献与指南分类:自动将文献分类到学科领域,识别研究类型及指南要素。
- 医学问答系统:意图识别、问题分类及情感分析。
- 药物警戒:从社交媒体和评论中自动识别不良反应。
- 流行病学监测:早期识别传染病暴发,进行症状监测。
案例实战:病理报告自动分类
病理报告是癌症诊断的金标准,其中包含对肿瘤类型、分级、分期等的详细描述。自动对病理报告进行分类,可辅助肿瘤登记、科研数据提取和临床决策支持。本节将使用一个模拟的病理报告数据集,演示如何利用朴素贝叶斯进行多类别文本分类。


