贝叶斯估计python,python实现贝叶斯分类器
文章代码来自博客贝叶斯分类器,根据这个博客代码稍加修改
朴素贝叶斯方法进行水果分类:
文件结构:
贝叶斯分类器。巴拉圭
#贝叶斯分类器datasets={ banala :{ long :400, not _ long :100, sweet :350, not _ swet 330 Orange : long not _ long :300, sweet :150, not _ sweet :150和 yellow :150 not _ yellow 3360150 } def count _ total(data):#)各种水果总数数据3360中的水果计数={ }总计=0计数[水果]总# { banala : 500, orange : 300, other _ fruit :# 200 } 1000 def cal _ base _ rates(数据):)计算各种水果的先验概率,不同水果的占有率种类为总计=计数\ forlabelicategories 3360 priori _ prob=categories[label]/tool=priori _ probrentcal _ base _ rates # { banala Bala } other _ fruit :#。 2 } deflikelihold _ prob(数据):)计算每个特征值在已知水果下的概率数数,并计算_=attr indata(水果):#计算每个特征值在已知水果下的概率attr/count[fruit]likelihold[fruit]=attr _ probr entld not _ long } not _ sweet :0.3,黄色:0.9,“not _ yellow”:0.1 }、“橙:{ 长 360 黄:1.0,非_黄:0.0}、其他_果:{ 长:} 非_甜 3360.25,非_黄:75 } def evidence _ prob (data):)计算特征的概率对分类结果的影响attrs=list (data [ banala ]).keye Yala)total=count _ total(data)evidence _ prob={ } for attr attrs 3360 attr _ total=0 for fruit in data 3360 attr _ total=={ long :5, not_long: 0.5, sweet: 0.65, not not _ yellow :2 }初始化类别导航贝叶斯分类器:#贝叶斯分类器,并在实例化时初始化__ini__函数def _ _ init _ inier data=datasets(:self ._ data=数据集本身. labels=[ keyforkeyinself ._ data.keys ] ) #不同水果自我. priing先验概率自我likelihole _ prob=likelihold _ prob(self ._ data)各特征值下水果概率自我. evidence _ evidence color(:self ._attrs=[Length,sweet,color ] RES={ } forlabelinself ._ labels 3360 prob=self ._先验取所占比例(概率)自身属性。_属性:#(单个水果的某些特征概率除以总特征概率,某水果所占比例(打印)自我. likelihols)打印)打印)乘以打印(自我likelihole _ prob[label][attr]/self ._ evidence _ prob [ attr ] ) prob *=
#贝叶斯分类器的预测能力importrandomdefrondom _ attr(pair):#)0到一之间的随机数return pair[random.randint(0) 0,1 ) ]def gen_attrs ) : #特征值的可能值的集合sets=((),)not_long),)sweet,)not_sweet),)yellow not _ yelllet生成特征值测试数据集。追加(列表(映射)和数据库。应用挂起)
#使用贝叶斯分类器对测试结果进行分类的importoperatormportbayes _ classfiermimportgenerate _ attiresdefmain(3360 test _ datasets=generate _ ate)er=Bayes _ class fier。navie _ Bayes _ classifier)for dataintest _ datasets 3360 pri int’)print(data)print(预测结果t’)RES=分类符。get _ label(data))是最可能的标签打印(已排序的项目(,kkiktems)),表示到打印(分辨率)预测的多路径
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。