贝叶斯分类器(3)总结

朴素贝叶斯 Q&A

  • 朴素贝叶斯分类器原理以及公式,出现估计概率值为 0 怎么处理(拉普拉斯平滑),缺点;
  • 解释贝叶斯公式和朴素贝叶斯分类。
  • 贝叶斯分类,这是一类分类方法,主要代表是朴素贝叶斯,朴素贝叶斯的原理,重点在假设各个属性类条件独立。然后能根据贝叶斯公式具体推导。考察给你一个问题,如何利用朴素贝叶斯分类去分类,比如:给你一个人的特征,判断是男是女,比如身高,体重,头发长度等特征的的数据,那么你要能推到这个过程。给出最后的分类器公式。
  • 那你说说贝叶斯怎么分类啊?比如说看看今天天气怎么样?我:blabla,,,利用天气的历史数据,可以知道天气类型的先验分布,以及每种类型下特征数据(比如天气数据的特征:温度啊,湿度啊)的条件分布,这样我们根据贝叶斯公式就能求得天气类型的后验分布了。。。。面试官:en(估计也比较满意吧)那你了解关于求解模型的优化方法吗?一般用什么优化方法来解?
  • 贝叶斯分类器的优化和特殊情况的处理

1、朴素贝叶斯、SVM和LR的区别?

朴素贝叶斯是生成模型,根据已有样本进行贝叶斯估计学习出先验概率P(Y)和条件概率P(X|Y),进而求出联合分布概率P(XY),最后利用贝叶斯定理求解P(Y|X)。

LR是判别模型,根据极大化对数似然函数直接求出条件概率P(Y|X);朴素贝叶斯是基于很强的条件独立假设(在已知分类Y的条件下,各个特征变量取值是相互独立的),而LR则对此没有要求;朴素贝叶斯适用于数据集少的情景,而LR适用于大规模数据集。

算法 SVM LR 朴素贝叶斯
思想 想要的就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面 使用线性回归模型的预测值逼近分类任务真实标记的对数几率。 基于贝叶斯定理特征条件假设分类方法。选出各个分类类别后验概率最大的作为最终分类。
输出 判别模型、非概率方法 概率方法;需要对\(p(y|x)\)进行假设,具有概率意义。 生成模型
经验损失函数 合页损失函数;有一段平的零区域、使得SVM的对偶性有稀疏性。 交叉熵损失函数 后验概率最大
训练样本 支持向量(少数样本),SVM的参数和假设函数只和支持向量有关。 全样本 全样本
优化方法 次梯度下降和坐标梯度下降 【SMO算法 梯度下降
多分类 多分类SVM Softmax回归 后验概率最大
敏感程度 SVM考虑分类边界线附近的样本(决定分类超平面的样本)。在支持向量外添加或减少任何样本点对分类决策面没有任何影响;【不敏感】 LR受所有数据点的影响。直接依赖数据分布,每个样本点都会影响决策面的结果。如果训练数据不同类别严重不平衡。【敏感】 特征值是基于频数进行统计的。一个值的异常(变成了别的数),只是贝叶斯公式里的计算概率的分子或者分母发生微小的变化,整体结果影响不大,不敏感【概率排序】

2、 朴素贝叶斯“朴素”在哪里?

简单来说:它假定所有的特征在数据集中的作用是同样重要和独立的,正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素”。

利用贝叶斯定理求解联合概率\(P(XY)\)时,需要计算条件概率\(P(X|Y)\)。在计算\(P(X|Y)\)时,朴素贝叶斯做了一个很强的条件独立假设(当Y确定时,X的各个分量取值之间相互独立),即\(P(X1=x1,X2=x2,…Xj=xj|Y=yk) = P(X1=x1|Y=yk)…*P(Xj=xj|Y=yk)\)。 多个特征全是独立的,需要分别相乘。

3、在估计条件概率P(X|Y)时出现概率为0的情况怎么办?

拉普拉斯平滑法是朴素贝叶斯中处理零概率问题的一种修正方式。在进行分类的时候,可能会出现某个属性在训练集中没有与某个类同时出现过的情况,如果直接基于朴素贝叶斯分类器的表达式进行计算的话就会出现零概率现象

为了避免其他属性所携带的信息被训练集中未出现过的属性值“抹去”,所以才使用拉普拉斯估计器进行修正。具体的方法是:在分子上加1,对于先验概率,在分母上加上训练集中label的类别数;对于特征i 在label下的条件概率,则在分母上加上第i个属性可能的取值数(特征 i 的unique())

先验概率的贝叶斯估计: \[ P_\lambda\left(Y=c_k\right)=\frac{\sum_{i=1}^N I\left(y_i=c_k\right)+\lambda}{N+K \lambda} \] 条件概率的贝叶斯估计:【离散型】 \[ P_\lambda\left(X^{(j)}=a_{j l} \| Y=c_k\right)=\frac{\sum_{i=1}^N I\left(x_i^{(j)}=a_{j l}, y_{i=} c_k\right)+\lambda}{\sum_{i=1}^N I\left(y_i=c_k\right)+S_j \lambda} \]

4、先验概率和后验概率都是?

先验概率是指根据以往经验和分析得到的概率,如全概率公式,它往往作为"由因求果"问题中的"因"出现.后验概率是基于新的信息,修正原来的先验概率后所获得的更接近实际情况的概率估计。

先验概率和后验概率是相对的。如果以后还有新的信息引入,更新了现在所谓的后验概率,得到了新的概率值,那么这个新的概率值被称为后验概率。

5、朴素贝叶斯算法的前提假设是什么?

  1. 特征之间相互独立
  2. 每个特征同等重要

6、面试的时候怎么标准回答朴素贝叶斯呢?

首先朴素贝斯是一个生成模型(很重要),其次它通过学习已知样本,计算出联合概率,再求条件概率。

生成模式和判别模式的区别(常见):

生成模式:由数据学得联合概率分布,求出条件概率分布P(Y|X)的预测模型比较在乎数据是怎么生成的;常见的生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机。

判别模式:由数据学得决策函数或条件概率分布作为预测模型要关注在数据的差异分布上,而不是生成;常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场。

7、为什么属性独立性假设在实际情况中很难成立,但朴素贝叶斯仍能取得较好的效果?【排序能力】

首先独立性假设在实际中不存在,确实会导致朴素贝叶斯不如一些其他算法,但是就算法本身而言,朴素贝叶斯也会有不错的分类效果,原因是:

  • 分类问题看中的是类别的条件概率的排序,而不是具体的概率值,所以这里面对精准概率值的计算是有一定的容错的。
  • 如果特征属性之间的依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时不会对性能产生负面影响。

8、朴素贝叶斯中概率计算的下溢问题如何解决?

在朴素贝叶斯的计算过程中,需要对特定分类中各个特征出现的概率进行连乘,小数相乘,越乘越小,这样就造成下溢出。在程序中,在相应小数位置进行四舍五入,计算结果可能就变成0了。

为了解决这个问题,对乘积结果取自然对数。将小数的乘法操作转化为取对数后的加法操作,规避了变为0的风险同时并不影响分类结果。

9、朴素贝叶斯分类器对异常值和缺失值敏感吗?

回想朴素贝叶斯的计算过程,它在推理的时候,输入的某个特征组合,他们的特征值在训练的时候在贝叶斯公式中都是基于频数进行统计的。所以一个值的异常(变成了别的数),只是贝叶斯公式里的计算概率的分子或者分母发生微小的变化,整体结果影响不大,就算微微影响最终概率值的获得,由于分类问题只关注概率的排序而不关注概率的值,所以影响不大,保留异常值还可以提高模型的泛化性能。

缺失值也是一样,如果一个数据实例缺失了一个属性的数值,在建模的时将被忽略,不影响类条件概率的计算,在预测时,计算数据实例是否属于某类的概率时也将忽略缺失属性,不影响最终结果。

10、朴素贝叶斯中有没有超参数可以调?

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

11、朴素贝叶斯有哪三个模型?

  • 多项式模型对应于离散变量,其中离散变量指的是category型变量,也就是类别变量,比如性别;连续变量一般是数字型变量,比如年龄,身高,体重。
  • 高斯模型 对应于连续变量(每一维服从正态分布)
  • 伯努利模型 对应于文本分类 (特征只能是0或者1)

12、朴素贝叶斯为什么适合增量计算?

朴素贝叶斯在训练过程中实际上需要计算出各个类别的概率和各个特征的条件概率,这些概率以频数统计比值(对于多项式模型而言)的形式产生概率值,可以快速根据增量数据进行更新,无需重新全量训练,所以其十分适合增量计算。

参考文献