当特征和类别有明显的因果关系时,看贝叶斯公式的时候我还能理解,对上号,但是当特征与类别没有明显的因果关系的时,用贝叶斯公式时经常对不上号,条件概率和后验概率傻傻分不清楚,所以特地花时间整理了一番。
1.条件概率的推导:

由上图可知:

可得:
![]()
同理可得:
![]()
所以有:
![]()
可得条件概率公式(贝叶斯公式):

2.换个容易理解的表达形式:

上式中条件概率为:P(类别|特征),先验概率为P(类别),后验概率为P(特征|类别),先验概率和后验概率可有训练数据集计算得来。
3.这里的类别和特征都可能有多种,即特征A(
,
,
,……,
),类别B(
,
,
,……,
)。则

因为朴素贝叶斯算法是假设各个特征之间相互独立,那么
![]()
![]()
则:

计算每个类别
,
,
,……,
的条件概率
、
、
、![]()
,分类结果为条件概率最大的类别。因为计算条件概率时,分母
都是一样的,所以可以不计算,直接计算分子比较结果即可。
编写代码实现贝叶斯算法,怎么计算不同类别对应的特征的后验概率:
#类别j
pjNum += trainMatrix[i]
pjDenom += sum(trainMatrix[i])
pjVect = pjNum/pjDenom #类别j每个特征对应的后验概率数组
预测的时候怎么运用通过测试数据集计算好的后验概率数组?
将测试数据的特征与特征对应的后验概率相乘。
解释得比较详细的博客:贝叶斯原理和实战
本文深入探讨了贝叶斯公式在特征与类别间因果关系不明显情况下的应用,详细讲解了条件概率、先验概率及后验概率的概念,并介绍了朴素贝叶斯算法的假设与实现过程。
333

被折叠的 条评论
为什么被折叠?



