本文共 571 字,大约阅读时间需要 1 分钟。
当特征和类别有明显的因果关系时,看贝叶斯公式的时候我还能理解,对上号,但是当特征与类别没有明显的因果关系的时,用贝叶斯公式时经常对不上号,条件概率和后验概率傻傻分不清楚,所以特地花时间整理了一番。
1.条件概率的推导:
由上图可知:
可得:
同理可得:
所以有:
可得条件概率公式(贝叶斯公式):
2.换个容易理解的表达形式:
上式中条件概率为:P(类别|特征),先验概率为P(类别),后验概率为P(特征|类别),先验概率和后验概率可有训练数据集计算得来。
3.这里的类别和特征都可能有多种,即特征A(,,,……,),类别B(,,,……,)。则
因为朴素贝叶斯算法是假设各个特征之间相互独立,那么
则:
计算每个类别,,,……,的条件概率、、、
,分类结果为条件概率最大的类别。因为计算条件概率时,分母都是一样的,所以可以不计算,直接计算分子比较结果即可。
编写代码实现贝叶斯算法,怎么计算不同类别对应的特征的后验概率:
#类别jpjNum += trainMatrix[i]pjDenom += sum(trainMatrix[i])pjVect = pjNum/pjDenom #类别j每个特征对应的后验概率数组
预测的时候怎么运用通过测试数据集计算好的后验概率数组?
将测试数据的特征与特征对应的后验概率相乘。
解释得比较详细的博客:
转载地址:http://qtssi.baihongyu.com/