朴素贝叶斯分类器

上传人:大米 文档编号:513856718 上传时间:2023-11-14 格式:DOC 页数:8 大小:300KB
返回 下载 相关 举报
朴素贝叶斯分类器_第1页
第1页 / 共8页
朴素贝叶斯分类器_第2页
第2页 / 共8页
朴素贝叶斯分类器_第3页
第3页 / 共8页
朴素贝叶斯分类器_第4页
第4页 / 共8页
朴素贝叶斯分类器_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《朴素贝叶斯分类器》由会员分享,可在线阅读,更多相关《朴素贝叶斯分类器(8页珍藏版)》请在金锄头文库上搜索。

1、朴素贝叶斯分类器Naive Bayesia n ClassifierC语言实现信息电气工程学院 计算本1102班20112212465马 振磊1.贝叶斯公式p(C|几宇耳)讥0)列耳凡|C)通过贝叶斯公式,我们可以的知在属性F1-Fn成立的情况下,该样本属于分类C的概率。而概率越大,说明样本属于分类C的可能性越大。若某样本可以分为 2种分类A, B。要比较P(A | F1,F2)与P(B | F1,F2)的大小只需比较,P(A)P(F1,F2| A),与P(B)P(F1,F2| B)因为两式分母一致。而 P(A)P(F1,F2| A)可以采用缩放为 P(A)P(F1|A)P(F2|A)(Fn|

2、A)因此,在分类时,只需比较每个属性在分类下的概率累乘,再乘该分类的概率即可。分类属性 outlook属性 temperature属性 humidity属性windnosunnyhothighweaknosunnyhothighstro ngyesovercasthothighweakyesrainmildhighweakyesraincoolno rmalweaknoraincoolno rmalstro ngyesovercastcoolno rmalstro ngnosunnymildhighweakyessunnycoolno rmalweakyesrainmildno rmalwea

3、kyessunnymildno rmalstro ngyesovercastmildhighstro ngyesovercasthotno rmalweaknorainmildhighstro ng以上是根据天气的 4种属性,某人外出活动的记录。 若要根据以上信息判断(Outlook = sunny ,Temprature = cool,Humidity = high,Wi nd = strong) 所属分类。P(yes| sunny ,cool ,high ,str ong )=P(yes)P(s unny |yes)P(cool |yes)P(high|yes)P(stro ng|yes)

4、/KP(no| sunny ,cool ,high ,str ong )=P( no )P(s unny|no )P(coo I |no )P(high| no )P(str ong|no)/KK为缩放因子,我们只需要知道两个概率哪个大,所以可以忽略K。P(yes)=9/14P(n o)=5/14P(su nn y|yes)=2/9 P(cool|yes)=1/3P(high|yes)=1/3 P(stro ng|yes)=1/3P(su nn y| no)=3/5P(cool| no)=1/5P(high |n o)=4/5P(stro ng|n o)=3/5P(yes| sunny ,co

5、ol ,high ,strong)=9/14*2/9*1/3*1/3*1/3=0.00529P(no| sunny ,cool ,high ,strong )=5/14*3/5*1/5*4/5*3/5=0.20571No的概率大,所以该样本实例属于no分类。2.数据结构及代码实现1属性及分类我们限定分类器的属性不大于 9个,每个属性拥有不大于 9个值。于是,我们考虑采用一个9X9的表格存储属性及其值。属性1值1值2值3值4值5值6值7值8值9属性2值1值2值3值4值5值6值7值8值9属性3值1值2值3值4值5值6值7值8值9属性4值1值2值3值4值5值6值7值8值9属性5值1值2值3值4值5值

6、6值7值8值9属性6值1值2值3值4值5值6值7值8值9属性7值1值2值3值4值5值6值7值8值9属性8值1值2值3值4值5值6值7值8值9属性9值1值2值3值4值5值6值7值8值9为了调用数据方便,我们把数据从第一行开始储存。为了充分利用存储空间,我们把第零行储存分类数据。分类1分类2分类3分类4分类5分类6分类7分类8分类9属性1值1值2值3值4值5值6值7值8值9属性2值1值2值3值4值5值6值7值8值9属性3值1值2值3值4值5值6值7值8值9属性4值1值2值3值4值5值6值7值8值9属性5值1值2值3值4值5值6值7值8值9属性6值1值2值3值4值5值6值7值8值9属性7值1值2值3

7、值4值5值6值7值8值9属性8值1值2值3值4值5值6值7值8值9属性9值1值2值3值4值5值6值7值8值9现在,我们可以采用一个10 X 10的表格来储存数据了。而每个单元格的内容需要占用一定的储存空间,我们可以用一个三维数组 char feature101010 来表示这种结构的数据。用来容纳 9个属性的9个值。第0行, 我们用来储存分类数据。而第一行的第一列没有被使用,而其中含有10个char类型的数据我们可以用它来储存 属性值的多少。如图:分类的个数属性1值的个数属性2值的个数属性9值的个数前一段的数据:分类:yesno属性 outlook:sunnyovercastrain属性 te

8、mperature :hotmildcool属性 humidity :highno rmal属性wind :stro ngweak如下图yesnooutlooksunnyovercastrainTemperahotmildcoolhumidityhighnormalwindstrongweak第0行,第0列233T2T223322代码如下:int x=1,y;printf(”请输入属性名称(小于9个字符):);gets(featurex0);printf(该属性有几种值(不多于9个值):);/把属性值储存入feature00x;feature00x是由字符格式输入的-48根据 feature0

9、0x循环输入,将属性的值存入scan f(%c,& feature00x);feature00x-=48;变为数字getchar(); system(cls);for(y=1;y=feature00x;y+) /数组printf(请输入第%d个值:,y);gets(featurexy);x+;feature 数组。通过这段代码的循环,输入属性及其值进入通过以下代码将分类数据存入数组第0行。prin tf(该事物可以被分为几种类别:”);scanf(%c,&feature000);/ 分类数目存入 feature000feature000-=48;getchar();system(cls);fo

10、r(y=1;y=feature000;y+)/ 通过循环将分类存入第0 行printf(请输入第%d种类别的名称:,y);gets(feature0y);2. 训练样本每个训练样本的属性最多有9个值,再加上分类一个值,所以,我们采用一个10列的表格储存训练样本数据。nosunnyhothighweaknosunnyhothighstro ngyesovercasthothighweakyesrainmildhighweakyesraincoolno rmalweaknoraincoolno rmalstro ngyesovercastcoolno rmalstro ngnosunnymildhighweakyessunnycoolno rmalweakyesrainmildno rmalweakyessunnymildno rmalstro ngyesovercastmildhighstro ngyesovercasthotno rmalweaknorainmildhighstro ng同样,每个单元格里限制最多有9个字符,加上一个0 终止符,共十个。而样本数量,也就是行数,可以适当的多一点,暂设为30。因此我们采用三维数组char sample301010来容纳样本数据。X的初始值为1for(y=1;y=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号