[NLP复习笔记] 朴素贝叶斯分类器
1. 贝叶斯决策论
假设有
我们的目标是使得总体风险最小化,只需要在每个样本上选择使得条件风险最小的类别标记,即:
由此,误判损失
此时的条件风险有:
故最小化损失的贝叶斯最优分类器可以转换为如下形式:
也就是对于每个样本
对于条件概率
其中,
所以最优贝叶斯分类器可以改写为:
显然,对于给定的样本
2. 朴素贝叶斯分类器
2.1 独立性假设
朴素贝叶斯分类器(
在 NLP 文本分类问题中,基于属性独立性假设,可以得到朴素贝叶斯分类器表达式:
显然,朴素贝叶斯分类器的训练过程就是基于训练集
对于先验概率有:
即标记为
对于条件概率有:
简单地说,就是在
2.2 朴素贝叶斯 + 加一平滑
朴素贝叶斯分类器采用了连乘的方式计算概率,为了防止计算出的概率为0,在估计概率值时通常需要进行平滑处理,一般情况下采用 加一平滑(拉普拉斯平滑)。
通常情况下,最好对 先验概率
对于先验概率,有可能训练集中不存在某个类别的数据(当然这种可能性比较小),此时会导致先验概率为0,那么分类的时候可能会导致出现错误。
对于条件概率,有可能训练集中一个类别中某个单词从俩没有出现过,此时也会导致概率为0,从而导致结果错误。
所以,对先验概率经过 加一平滑 后有:
其中
对后验概率经过 加一平滑 后有:
其中
PS:之前在做作业的过程中,只是对条件概率进行了加一平滑,包括课件中的示例也是如此,我猜测这是基于训练集中各个类别的都保证有数据的情况下才这么做。但即便如此,对先验概率也进行加一平滑也是好的,毕竟有可能存在训练集中各类别数据数量不平衡之类的、训练出现过拟合等情况,此时加一平滑从一定程度上可以避免这些情况的发生。这些只是我自己的见解,有问题尽管指出。
2.3 未知词
朴素贝叶斯分类器在大部分情况下,不会给未知单词分配概率,也就是说,直接将未知单词当作不存在。
2.4 典型示例
示例来源于课件,只对条件概率进行了加一平滑。

3. 二分类评估
3.1 混淆矩阵
混淆矩阵 (
在机器学习中,混淆矩阵特别用于监督学习,在无监督学习一般叫做匹配矩阵。
对于一个二分类系统,将实例分为 正类(
模式分类器有四种分类结果:
-
( ):将正类预测为正类 -
( ):将 正类判定为负类 -
( ):将 负类判定为正类 -
( ):将负类判定为负类

3.2 准确率
所有的预测正确(正类负类)的占总的比重。
虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。
3.3 精确率
也称为 查准率,即 正类预测为正 的占 全部预测为正(正类预测为正 + 负类预测为正)的比例。
精确率代表对正样本结果中的预测准确程度。
3.4 召回率
即 正确预测为正 的占 全部实际为正(正类预测为正 + 正类预测为负)的比例。
3.5 值
精确率和召回率互相影响,理想状态下肯定追求两个都高,但是实际情况是两者相互“制约”:追求精确率高,则召回率就低;追求召回率高,则通常会影响精确率。
因此有了
4. 多分类评估
在多分类问题中,评估一个模型的性能需要检查模型在所有类别上的表现。
4.1 宏平均、微平均
为了方便表示,将
-
宏平均(
)是对每个类别评估指标计算平均值,给每个类别同等的重要性。 -
微平均(
)是将所有类别的贡献累加后计算指标,对数据集中的每一个实例不分类进行统计建立全局混淆矩阵,会放大高频类别的影响。
参考
《机器学习》 周志华
一切都是命运石之门的选择,本文章来源于博客园,作者:MarisaMagic,出处:https://www.cnblogs.com/MarisaMagic/p/17948124,未经允许严禁转载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通