贝叶斯分类算法及其实现

电子常识

2585人已加入

描述

  贝叶斯算法描述及实现根据朴素贝叶斯公式,每个测试样例属于某个类别的概率= 所有测试样例包含特征词类条件概率P(tk|c)之积* 先验概率P(c) 在具体计算类条件概率和先验概率时,朴素贝叶斯分类器有两种模型:

  (1) 多项式模型( multinomial model ) –以单词为粒度类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/(类c下单词总数+训练样本中不重复特征词总数)先验概率P(c)=类c下的单词总数/整个训练样本的单词总数

  (2) 伯努利模型(Bernoulli model) –以文件为粒度类条件概率P(tk|c)=(类c下包含单词tk的文件数+1)/(类c下文件总数+2) 先验概率P(c)=类c下文件总数/整个训练样本的文件总数本分类器选用多项式模型计算,根据斯坦福的《Introduction to Information Retrieval 》课件上所说,多项式模型计算准确率更高。

  贝叶斯算法的实现有以下注意点:

  1.计算概率用到了BigDecimal类实现任意精度计算;

  2.用交叉验证法做十次分类实验,对准确率取平均值;

  3.根据正确类目文件和分类结果文计算混淆矩阵并且输出;

  4. Map《String,Double》 cateWordsProb key为“类目_单词”, value为该类目下该单词的出现次数,避免重复计算。

  贝叶斯算法实现类如下

  贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法
贝叶斯分类算法

  测试结果显示14个测试实例中有13个分类是正确的,正确率为93%,说明算法能够给出一个准确的预测与分类,但是算法还需改进以提高正确率。

  改进的可选方法之一:为避免单个属性值对分类结果的权重过大,例如当某属性值在某一类中出现0次时,该属性值就决定了测试实例已经不可能属于该类了,这就可能会造成误差,因此在计算概率时可能进行如下改进:将原先的P(Xk|Ci)=|Xk| / |Ci| 改为P(Xk|Ci)=(|Xk|+mp) / (|Ci|+m),其中m可设定为训练元组的个数,p为等可能假设的先验概率

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分