朴素贝叶斯算法

3,827 阅读4分钟

朴素贝叶斯法(Naive Bayes model)是基于贝叶斯定理与特征条件独立假设的分类方法。

朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。对于大多数的分类算法,在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数,要么是条件分布。但是朴素贝叶斯却是生成方法,该算法原理简单,也易于实现。

贝叶斯决策论

Snipaste_2023-01-08_21-58-16.png 贝叶斯决策论的核心思想是选择具有最高概率的决策

朴素贝叶斯

先验概率:先验概率是指根据以往经验和分析得到的概率。

后验概率:事情已发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,后验分布P(Y|X)表示事件X已经发生的前提下,事件Y发生的概率,称事件X发生下事件Y的条件概率。

贝叶斯公式

image.png

朴素:朴素贝叶斯算法是假设各个特征之间相互独立,也是朴素这词的意思,那么贝叶斯公式中的P(X|Y)可写成:

image.png

朴素贝叶斯公式

image.png

朴素贝叶斯分类器

image.png

缺陷与改进

拉普拉斯修正:若某个属性值在训练集中没有与某个类同时出现过,则训练后的模型会出现 over-fitting 现象。比如训练集中没有该样例,因此连乘式计算的概率值为0,这显然不合理。因为样本中不存在(概率为0),不代该事件一定不可能发生。所以为了避免其他属性携带的信息,被训练集中未出现的属性值“ 抹去” ,在估计概率值时通常要进行“拉普拉斯修正”。

我们要修正image.png的值。

image.png

防溢出策略:条件概率乘法计算过程中,因子一般较小(均是小于1的实数)。当属性数量增多时候,会导致累乘结果下溢出的现象。

在代数中有  ln(a*b) = ln(a)+ln(b) ,因此可以把条件概率累乘转化成对数累加。分类结果仅需对比概率的对数累加法运算后的数值,以确定划分的类别。

适用范围

  • 朴素贝叶斯只适用于特征之间是条件独立的情况下,否则分类效果不好,这里的朴素指的就是条件独立。
  • 朴素贝叶斯主要被广泛地使用在文档分类中。

朴素贝叶斯常用的三个模型有:

  • 高斯模型:处理特征是连续型变量的情况。
  • 多项式模型:最常见,要求特征是离散数据。
  • 伯努利模型:要求特征是离散的,且为布尔类型,即true和false,或者1和0。

优点和缺点

优点

1、朴素贝叶斯模型有稳定的分类效率。

2、对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。

3、对缺失数据不太敏感,算法也比较简单,常用于文本分类。

缺点

1、需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

2、对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)。

常见的实际应用:文档分类、垃圾邮件分类。

参考文章:(6条消息) 机器学习 —— 朴素贝叶斯_DreamWendy的博客-CSDN博客_机器学习朴素贝叶斯(6条消息) 【朴素贝叶斯】深入浅出讲解朴素贝叶斯算法(公式、原理)_程序遇上智能星空的博客-CSDN博客_朴素贝叶斯