1,贝叶斯定理。
贝叶斯定理如下:
P(B|A)=P(A|B)P(B)/P(A)
式中,P(BA)是后验概率,是在条件A发生的情况下B发生的概率;P(H)是先验概率,或称为H的先验概率,即不考虑其他的情况下H发生概率;P(AIB)和P(BIA)一样,也
是后验概率。
2,普速贝叶斯的基本模型。
从统计学知识回到我们的数据分析。假如我们的分类模型样本是:
(x(1)1,x(1)2,...x(1)n,y1),(x(2)1,x(2)2,...x(2)n,y2),...(x(m)1,x(m)2,...x(m)n,ym)(x1(1),x2(1),...xn(1),y1),(x1(2),x2(2),...xn(2),y2),...(x1(m),x2(m),...xn(m),ym)
即我们有m个样本,每个样本有n个特征,特征输出有K个类别,定义为C1,C2,...,CKC1,C2,...,CK。
从样本我们可以学习得到朴素贝叶斯的先验分布P(Y=Ck)(k=1,2,...K)P(Y=Ck)(k=1,2,...K),接着学习到条件概率分布P(X=x|Y=Ck)=P(X1=x1,X2=x2,...Xn=xn|Y=Ck)P(X=x|Y=Ck)=P(X1=x1,X2=x2,...Xn=xn|Y=Ck),然后我们就可以用贝叶斯公式得到X和Y的联合分布P(X,Y)了。联合分布P(X,Y)定义为:
P(X,Y=Ck)=P(Y=Ck)P(X=x|Y=Ck)=P(Y=Ck)P(X1=x1,X2=x2,...Xn=xn|Y=Ck)(1)(2)(1)P(X,Y=Ck)=P(Y=Ck)P(X=x|Y=Ck)(2)=P(Y=Ck)P(X1=x1,X2=x2,...Xn=xn|Y=Ck)
从上面的式子可以看出P(Y=Ck)P(Y=Ck)比较容易通过最大似然法求出,得到的P(Y=Ck)P(Y=Ck)就是类别CkCk在训练集里面出现的频数。但是P(X1=x1,X2=x2,...Xn=xn|Y=Ck)P(X1=x1,X2=x2,...Xn=xn|Y=Ck)很难求出,这是一个超级复杂的有n个维度的条件分布。朴素贝叶斯模型在这里做了一个大胆的假设,即X的n个维度之间相互独立,这样就可以得出:
P(X1=x1,X2=x2,...Xn=xn|Y=Ck)=P(X1=x1|Y=Ck)P(X2=x2|Y=Ck)...P(Xn=xn|Y=Ck)P(X1=x1,X2=x2,...Xn=xn|Y=Ck)=P(X1=x1|Y=Ck)P(X2=x2|Y=Ck)...P(Xn=xn|Y=Ck)
从上式可以看出,这个很难的条件分布大大的简化了,但是这也可能带来预测的不准确性。你会说如果我的特征之间非常不独立怎么办?如果真是非常不独立的话,那就尽量不要使用朴素贝叶斯模型了,考虑使用其他的分类方法比较好。但是一般情况下,样本的特征之间独立这个条件的确是弱成立的,尤其是数据量非常大的时候。虽然我们牺牲了准确性,但是得到的好处是模型的条件分布的计算大大简化了,这就是贝叶斯模型的选择。
最后回到我们要解决的问题,我们的问题是给定测试集的一个新样本特征(x(test)1,x(test)2,...x(test)n(x1(test),x2(test),...xn(test),我们如何判断它属于哪个类型?
既然是贝叶斯模型,当然是后验概率最大化来判断分类了。我们只要计算出所有的K个条件概率P(Y=Ck|X=X(test))P(Y=Ck|X=X(test)),然后找出最大的条件概率对应的类别,这就是朴素贝叶斯的预测了。
3,朴素贝叶斯的推断过程。
上节我们已经对朴素贝叶斯的模型也预测方法做了一个大概的解释,这里我们对朴素贝叶斯的推断过程做一个完整的诠释过程。
我们预测的类别CresultCresult是使P(Y=Ck|X=X(test))P(Y=Ck|X=X(test))最大化的类别,数学表达式为:
Cresult=argmaxCkP(Y=Ck|X=X(test))=argmaxCkP(X=X(test)|Y=Ck)P(Y=Ck)/P(X=X(test))(3)(4)(3)Cresult=argmax⏟CkP(Y=Ck|X=X(test))(4)=argmax⏟CkP(X=X(test)|Y=Ck)P(Y=Ck)/P(X=X(test))
由于对于所有的类别计算P(Y=Ck|X=X(test))P(Y=Ck|X=X(test))时,上式的分母是一样的,都是P(X=X(test)P(X=X(test),因此,我们的预测公式可以简化为:
Cresult=argmaxCkP(X=X(test)|Y=Ck)P(Y=Ck)Cresult=argmax⏟CkP(X=X(test)|Y=Ck)P(Y=Ck)
接着我们利用朴素贝叶斯的独立性假设,就可以得到通常意义上的朴素贝叶斯推断公式:
Cresult=argmaxCkP(Y=Ck)∏j=1nP(Xj=X(test)j|Y=Ck)
如果觉得《人工智能贝叶斯学习》对你有帮助,请点赞、收藏,并留下你的观点哦!