朴素贝叶斯常见问题

1. 什么是朴素贝叶斯

朴素贝叶斯算法(Naive Bayes, NB) 是应用最为广泛的分类算法之一。它是基于贝叶斯定理和特征条件独立假设的分类器方法。由于朴素贝叶斯法基于贝叶斯公式计算得到,有着坚实的数学基础,以及稳定的分类效率。NB模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。以前的垃圾邮件分类都是基于朴素贝叶斯分类器识别的。

原理:朴素贝叶斯是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的待分类项x,通过学习到的模型计算后验概率分布,即:在此项出现的条件下各个目标类别出现的概率,将后验概率最大的类作为x所属的类别

2. 怎么理解朴素贝叶斯中的“朴素”?

朴素贝叶斯有一个很强的假设,即所有特征之间都是相互独立的,他们与目标变量的预测作用是相同的。而在现实中,特征之间往往都是存在相关性的,因而这个假设很天真,很朴素。

3. 朴素贝叶斯的工作流程

朴素贝叶斯的工作流程可以分为三个阶段:准备阶段、分类器训练阶段和应用阶段。

准备阶段:这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,去除高度相关性的属性(如果两个属性具有高度相关性的话,相当于该属性将会在模型中发挥了2次作用,会使得朴素贝叶斯所预测的结果向该属性所希望的方向偏离,导致分类出现偏差),然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。(这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响)

分类器训练阶段:这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据公式可以由程序自动计算完成。

应用阶段:这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。

4. 朴素贝叶斯的优缺点

优点:
(1) 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。
(2) 对大数量训练和查询时具有较高的速度。即使使用超大规模的训练集,针对每个项目通常也只会有相对较少的特征数,并且对项目的训练和分类也仅仅是特征概率的数学运算而已;
(3) 对小规模的数据表现很好,能个处理多分类任务,适合增量式训练(即可以实时的对新增的样本进行训练);
(4) 对缺失数据不太敏感,算法也比较简单,常用于文本分类;
(5) 朴素贝叶斯对结果解释容易理解。

缺点:
(1) 需要计算先验概率。
(2) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是在实际中,因为朴素贝叶斯“朴素,”的特点,导致在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。
(4) 对训练数据的依赖性很强,如果训练数据误差较大,那么预测出来的效果就会不佳。
(4) 由于使用了样本属性独立性的假设,因此,当样本属性有关联时其效果不好。可以使用数据降维(PCA等)的方法,去除特征相关性,再进行朴素贝叶斯计算,但可解释性会变差。

5. 为什么朴素贝叶斯存在“朴素”的缺点假设,仍然可以取得较好的预测效果?

对于分类任务来说,只要各个条件概率之间的排序正确,那么就可以通过比较概率大小来进行分类,不需要知道精确的概率值(朴素贝叶斯分类的核心思想是找出后验概率最大的那个类,而不是求出其精确的概率)。

如果属性之间的相互依赖对所有类别的影响相同,或者相互依赖关系可以互相抵消,那么属性条件独立性的假设在降低计算开销的同时不会对分类结果产生不良影响。

6. 什么是拉普拉斯平滑法?

拉普拉斯平滑法是朴素贝叶斯中处理零概率问题的一种修正方式。在进行分类的时候,可能会出现某个属性值在训练集中没有与某个类同时出现过的情况,如果直接基于朴素贝叶斯分类器的表达式进行计算就会出现零概率。为了避免其他属性所携带的信息被训练集中未出现过的属性值“抹去”,所以才使用拉普拉斯估计器进行修正。

具体的方做法是:先在分子上加1;对于先验概率,在分母上加上训练集中可能的类别数;对于条件概率,则在分母上加上第i个属性可能的取值数。

7. 朴素贝叶斯中有没有超参数可以调?

朴素贝叶斯是没有超参数可以调的,所以它不需要调参,朴素贝叶斯是根据训练集进行分类,分类出来的结果基本上就是确定了的,拉普拉斯估计器不是朴素贝叶斯中的参数,不能通过拉普拉斯估计器来对朴素贝叶斯调参。

8. 朴素贝叶斯中有多少种模型?

朴素贝叶斯含有3种模型:(1) 高斯模型,对连续型数据进行处理;(2) 多项式模型,对离散型数据进行处理,计算数据的条件概率(使用拉普拉斯估计器进行平滑的一个模型);(3) 伯努利模型,伯努利模型的取值特征是布尔型,即出现为ture,不出现为false,在进行文档分类时,就是一个单词有没有在一个文档中出现过。

9. 朴素贝叶斯有哪些应用?

朴素贝叶斯的应用最广的应该就是在文档分类、垃圾文本过滤(如垃圾邮件、垃圾信息等)、情感分析(微博、论坛上的积极、消极等情绪判别)这些方面,除此之外还有多分类实时预测、推荐系统(贝叶斯与协同过滤组合使用)、拼写矫正(当你输入一个错误单词时,可以通过文档库中出现的概率对你的输入进行矫正)等。

10. 朴素贝叶斯对异常值是否敏感?

朴素贝叶斯对异常值不敏感。所以在进行数据处理时,我们可以不去除异常值,因为保留异常值可以保持朴素贝叶斯算法的整体精度,而去除异常值则可能在进行预测的过程中由于失去部分异常值导致模型的泛化能力下降。

11. 朴素贝叶斯是高方差还是低方差模型?

朴素贝叶斯是低方差模型。(误差 = 偏差 + 方差)对于复杂模型来说,由于复杂模型充分拟合了部分数据,使得它们的偏差变小,但由于对部分数据过分拟合,这就导致预测的方差会变大。因为朴素贝叶斯假设了各个属性之间是相互的,算是一个简单的模型。对于简单的模型来说,则恰恰相反,简单模型的偏差会更大,相对的,方差就会较小。(偏差是模型输出值与真实值的误差,也就是模型的精准度,方差是预测值与模型输出期望的的误差,即模型的稳定性,也就是数据的集中性的一个指标)

12. 素贝叶斯与LR的区别?

(1) 朴素贝叶斯是生成模型,根据已有样本进行贝叶斯估计学习出先验概率P(Y)和条件概率P(X|Y),进而求出联合分布概率P(X,Y),最后利用贝叶斯定理求解P(Y|X), 而LR是判别模型,根据极大化对数似然函数直接求出条件概率P(Y|X);
(2) 朴素贝叶斯是基于很强的条件独立假设(在已知分类Y的条件下,各个特征变量取值是相互独立的),而LR则对此没有要求;
(3) 朴素贝叶斯适用于数据集少的情景,而LR适用于大规模数据集。

前者是生成式模型,后者是判别式模型, 二者的区别就是生成式模型与判别式模型的区别。

(1) 首先,Navie Bayes通过已知样本求得先验概率P(Y),及条件概率P(X|Y),对于给定的实例,计算联合概率,进而求出后验概率。也就是说,它尝试去找到底这个数据是怎么生成的(产生的),然后再进行分类。哪个类别最有可能产生这个信号,就属于那个类别。

优点:
① 样本容量增加时,收敛更快;
② 隐变量存在时也可适用。

缺点:
① 时间长;
② 需要样本多;
③ 浪费计算资源。

(2) 相比之下,Logistic回归不关心样本中类别的比例及类别下出现特征的概率,它直接给出预测模型的式子。设每个特征都有一个权重,训练样本数据更新权重w,得出最终表达式。

优点:
① 直接预测往往准确率更高;
② 简化问题;
③ 可以反应数据的分布情况,类别的差异特征;
④ 适用于较多类别的识别。

缺点:
① 收敛慢;
② 不适用于有隐变量的情况。


朴素贝叶斯常见问题
https://www.lihaibao.cn/2022/10/08/朴素贝叶斯常见问题/
Author
Seal Li
Posted on
October 8, 2022
Licensed under