贝叶斯面试题 1.简述朴素贝叶斯算法原理和工作流程 工作原理: 假设现在有样本$x=(x1, x2, x3, \dots xn)$待分类项 假设样本有$m$个特征$(a1,a2,a3,\dots am)$(特征独立) 再假设现在有分类目标$Y=\{ y1,y2,y3,\dots ,yn\}$ 那么就$\max ({P}({y}1 | {x}), {P}({y}2 | {x}), {P}({y}3 | {x}) ,{P}({yn} | {x}))$是最终的分类类别。
工作原理:
条件概率:
先验概率
后验概率
联合概率:
事件X与事件Y同时发生的概率。
贝叶斯公式
P(Y) 叫做先验概率:事件X发生之前,我们根据以往经验和分析对事件Y发生的一个概率的判断
P(Y|X) 叫做后验概率:事件X发生之后,我们对事件Y发生的一个概率的重新评估
P(Y,X)叫做联合概率:事件X与事件Y同时发生的概率。
先验概率和后验概率是相对的。如果以后还有新的信息引入,更新了现在所谓的后验概率,得到了新的概率值,那么这个新的概率值被称为后验概率。
因为它假定所有的特征在数据集中的作用是同样重要和独立的。正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素”。用贝叶斯公式表达如下:
而在很多情况下,所有变量几乎不可能满足两两之间的条件。
朴素贝叶斯模型(Naive Bayesian Model)的朴素(Naive)的含义是**“很简单很天真”**地假设样本特征彼此独立.这个假设现实中基本上不存在,但特征相关性很小的实际情况还是很多的,所以这个模型仍然能够工作得很好。
贝叶斯决策理论是主观贝叶斯派归纳理论的重要组成部分。贝叶斯决策就是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策(选择概率最大的类别)。
贝叶斯决策理论方法是统计模型决策中的一个基本方法,其基本思想是:
零概率问题:在计算实例的概率时,如果某个量x,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是0。
解决办法:若P(x)为零则无法计算。为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。
举个栗子:假设在文本分类中,有3个类,C1、C2、C3,在指定的训练样本中,某个词语K1,在各个类中观测计数分别为0,990,10,K1的概率为0,0.99,0.01,对这三个量使用拉普拉斯平滑的计算方法如下:
1/1003=0.001, 991/1003=0.988, 11/1003=0.011 在实际的使用中也经常使用加 lambda(1≥lambda≥0)来代替简单加1。如果对N个计数都加上lambda,这时分母也要记得加上N*lambda。
将朴素贝叶斯中的所有概率计算应用拉普拉斯平滑即可以解决零概率问题。
下溢问题:在朴素贝叶斯的计算过程中,需要对特定分类中各个特征出现的概率进行连乘,小数相乘,越乘越小,这样就造成了下溢出。
为了解决这个问题,对乘积结果取自然对数。通过求对数可以避免下溢出或者浮点数舍入导致的错误。
解决办法:对其取对数:
将小数的乘法操作转化为取对数后的加法操作,规避了变为零的风险同时并不影响分类结果。
当朴素贝叶斯算法数据的属性为连续型变量时,有两种方法可以计算属性的类条件概率。
\mu_{i j}:类y_j的所有训练记录关于X_i的样本均值估计
\sigma_{i j}^{2}:类y_j的所有训练记录关于X的样本方差
通过高斯分布估计出类条件概率。
朴素贝叶斯的三个常用模型:高斯、多项式、伯努利
高斯模型:
多项式模型:
其中\alpha为拉普拉斯平滑,加和的是属性出现的总次数,比如文本分类问题里面,不光看词语是否在文本中出现,也得看出现的次数。如果总词数为n,出现词数为m的话,说起来有点像掷骰子n次出现m次这个词的场景。
多项式模型适用于离散特征情况,在文本领域应用广泛, 其基本思想是:我们将重复的词语视为其出现多次。
伯努利模型:
伯努利模型特征的取值为布尔型,即出现为true没有出现为false,在文本分类中,就是一个单词有没有在一个文档中出现。
伯努利模型适用于离散特征情况,它将重复的词语都视为只出现一次。
我们看到,”发票“出现了两次,但是我们只将其算作一次。我们看到,”发票“出现了两次,但是我们只将其算作一次。
在统计学习框架下,大家刻画模型复杂度的时候,有这么个观点,认为Error=Bias +Variance。
因为朴素贝叶斯在训练过程中实际只需要计算出各个类别的概率和各个特征的类条件概率,这些概率值可以快速的根据增量数据进行更新,无需重新全量训练,所以其十分适合增量计算,该特性可以使用在超出内存的大量数据计算和按小时级等获取的数据计算中。
假设有两个特征高度相关,相当于该特征在模型中发挥了两次作用(计算两次条件概率),使得朴素贝叶斯获得的结果向该特征所希望的方向进行了偏移,影响了最终结果的准确性,所以朴素贝叶斯算法应先处理特征,把相关特征去掉。
网格搜索和随机搜索:在测试一个新点时,会忽略前一个点的信息;
贝叶斯优化算法:充分利用了之前的信息。贝叶斯优化算法通过对目标函数形式进行学习,找到使目标函数向全局最优值提升的参数。
学习目标函数形式的方法:
对于贝叶斯优化算法,有一个需要注意的地方,一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。为了弥补这个缺陷,贝叶斯优化算法会在探索和利用之间找到一个平衡点,“探索”就是在还未取样的区域获取采样点;而“利用”则是根据后验分布在最可能出现全局最值的区域进行采样。
朴素贝叶斯是一种对异常值不敏感的分类器,保留数据中的异常值,常常可以保持贝叶斯算法的整体精度,如果对原始数据进行降噪训练,分类器可能会因为失去部分异常值的信息而导致泛化能力下降。
朴素贝叶斯是一种对缺失值不敏感的分类器,朴素贝叶斯算法能够处理缺失的数据,在算法的建模时和预测时数据的属性都是单独处理的。因此如果一个数据实例缺失了一个属性的数值,在建模时将被忽略,不影响类条件概率的计算,在预测时,计算数据实例是否属于某类的概率时也将忽略缺失属性,不影响最终结果。
贝叶斯分类器直接用贝叶斯公式解决分类问题。假设样本的特征向量为x,类别标签为y,根据贝叶斯公式,样本属于每个类的条件概率(后验概率)为:
分母p(x)对所有类都是相同的,分类的规则是将样本归到后验概率最大的那个类,不需要计算准确的概率值,只需要知道属于哪个类的概率最大即可,这样可以忽略掉分母。分类器的判别函数为:
在实现贝叶斯分类器时,需要知道每个类的条件概率分布p(x|y)即先验概率。一般假设样本服从正态分布。训练时确定先验概率分布的参数,一般用最大似然估计,即最大化对数似然函数。
贝叶斯分类器是一种生成模型,可以处理多分类问题,是一种非线性模型。
朴素贝叶斯是生成模型,而LR为判别模型.朴素贝叶斯:已知样本求出先验概率与条件概率,进而计算后验概率。优点:样本容量增加时,收敛更快;隐变量存在时也可适用。缺点:时间长;需要样本多;浪费计算资源. Logistic回归:不关心样本中类别的比例及类别下出现特征的概率,它直接给出预测模型的式子。设每个特征都有一个权重,训练样本数据更新权重w,得出最终表达式。优点:直接预测往往准确率更高;简化问题;可以反应数据的分布情况,类别的差异特征;适用于较多类别的识别。缺点:收敛慢;不适用于有隐变量的情况。 > + 朴素贝叶斯是基于很强的条件独立假设(在已知分类Y的条件下,各个特征变量取值是相互独立的),而LR则对此没有要求。 > + 朴素贝叶斯适用于数据集少的情景,而LR适用于大规模数据集。