8.25-朴素贝叶斯
8.25 朴素贝叶斯
一、贝叶斯
1.贝叶斯公式
P(C|X) = P(C) · P(X|C) / P(X)
P(C):先验 Prior,对类别的事前信念。
P(X|C):似然 Likelihood,在该类别下出现这组特征的概率。
P(C|X):后验 Posterior,看到特征后类别的新信念。
P(X):证据 Evidence,仅作归一化,可忽略常数。
2.“朴素”假设
特征之间条件独立:P(x1,x2,…,xn|C)=∏i P(xi|C)。
→ 把高维联合概率拆成一堆一维概率相乘,极大减少需要估计的参数。
3.决策规则
对一个新样本 X=(x1,…,xn):
ŷ = argmax_C P(C) · ∏i P(xi|C)
实际代码里用 log 化乘法为加法,防止下溢:score(C)=log P(C)+Σi log P(xi|C)。
4.模型训练(即“计数”)
先验:P(C)=类别 C 的样本数 / 总样本数。
似然:P(xi|C)= 类别 C 中特征 xi 出现的次数 / 类别 C 的总特征计数。
P(xi|C)= (count(xi,C)+1) / (count(C)+|V|),|V| 为特征取值数或词典大小。
5.拼写纠错实例
问题:用户输入 D=“tlp”,候选词 h∈{top, tip, tap…}。
计算:h* = argmax_h P(h) · P(D|h)
P(h):词频先验,可来自大规模语料。
P(D|h):编辑距离/键盘邻近度生成的“生成模型”概率。
6.垃圾邮件过滤实例
类别:h+(垃圾)、h–(正常)。
特征:邮件中出现的单词 w1,…,wn。
P(h+|D) ∝ P(h+) · ∏i P(wi|h+)
P(h–|D) ∝ P(h–) · ∏i P(wi|h–)
决策:若 P(h+|D)/P(h–|D) > τ 则判为垃圾(τ 可调)。
二、
- 多项式朴素贝叶斯模型
适用于离散型数据,参数 alpha 为浮点型可选参数,默认为 0.1,用于控制拉普拉斯平滑。
参数“是否考虑先验概率”默认为 true,表示需根据数据集计算词频作为先验概率。
通过网格搜索法可调整超参数,实现模型性能优化。
- 高斯朴素贝叶斯模型
适用于连续性特征变量,假设特征服从正态分布(呈钟形曲线),在均值附近概率高,远离均值则迅速下降。
优于多项式模型处理连续数据,因其更符合实际数据分布,可显著提升准确率。
- 伯努利朴素贝叶斯模型
用于处理仅含“有/无”两种取值的二值特征,如文档中是否包含某关键词,要求每个特征为布尔类型(0 或 1),在文本分类中可表示特征是否存在。
参数“是否进行特征二值化”可设定阈值(如大于 0.5),默认为 0,可按需设置;若设为 null,则认为特征已二值化。
与多项式模型不同,伯努利模型强调特征的二值属性,适用于垃圾邮件识别等场景。
- 模型调用与训练流程
模型调用使用 fit 方法进行训练,X 代表训练集特征,Y 代表训练集标签,训练完成后用于预测
预测时使用测试集特征(X_test)进行推理,输出各分类的概率值,可选择是否对概率取对数(log)以简化计算,通过 score 方法可获取模型评分(如查准率、查全率等),用于评估模型性能。