预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

模式识别实验 题目:Bayes分类器的设计 学院计算机科学与技术 专业计算机科学与技术 学号2012436034 姓名顾文远 指导教师李凯 2015年10月14日 实验一Bayes分类器设计 一、教学要求 理解基于Bayes决策理论的随机模式分类的原理和方法,掌握基于最小错误率的贝叶斯决策和基于最小风险的贝叶斯决策,并能够对贝叶斯规则给出具体的实现。 二、知识点提示 知识点:错误率、风险、先验概率、概率密度函数、最小错误率贝叶斯决策规则、最小风险贝叶斯决策规则。 重点:最小错误率贝叶斯决策规则和最小风险贝叶斯决策规则的实现。 难点:最小风险贝叶斯决策规则的实现。 三、教学内容 Bayes分类器的基本思想是依据类别先验概率和条件概率密度,按照某种准则使分类结果从统计上讲是最佳的。换言之,根据类别先验概率和条件概率密度将模式空间划分成若干个子空间,在此基础上形成模式分类的判决规则。准则函数不同,所导出的判决规则就不同,分类结果也不同;使用哪种准则或方法应根据具体问题来确定。 1.产生二维正态分布模式,并将产生的样本集随机地分为训练集和测试集; 2.分别设计最小错误率的Bayes分类器和最小风险Bayes分类器,并对测试集进行分类,观察代价函数的设置对分类结果的影响; 3.统计错分概率。 四、实验原理 以Bayes公式为基础,利用测量到的对象特征配合必要的先验信息,求出各种可能决策情况(分类情况)的后验概率,选取后验概率最大的,或者决策风险最小的决策方式(分类方式)作为决策(分类)的结果。也就是说选取最有可能使得对象具有现在所测得特性的那种假设,作为判别的结果。 五、实验步骤 1、首先产生二维正态分布模式的数据,设定产生均值为2,标准差为0.5的100个随机数据和均值为-2,标准差为2的100个随机数据,其中一个产生的正态密度曲线图如下: 2、设计最小错误率的Bayes分类器,将两类数据分别根据先验概率和类条件概率密度计算后验概率,选择后验概率大的为一类,得出测试集正确率和错误率为(其中worng1是将第一类错分到第二类的错误率,worng2是将第二类错分到第一类的错误率): rightRate1= 0.9800 worng1= 0.0200 rightRate2= 0.9200 worng2= 0.0800 3、设计最小风险Bayes分类器,根据前面计算的后验概率,利用决策表计算出条件风险R,决策选择风险小的,即对于第一类数据如果算出的R1风险小根据分类器设定选择第一类分类,则分类正确,对于第二类数据如果算出的R2风险小即选择第二类分类,分类正确,否则分类错误,根据这一标准计算分类决策的正确率和错误率。 决策表 决策ω1ω2α104α220 这里worng3是最小风险Bayes分类器将第一类错分到第二类的错误率,worng4是将第二类错分到第一类的错误率: rightRate3= 0.9500 worng3= 0.0500 rightRate4= 0.9400 worng4= 0.0600 当改变代价函数,分类结果也随之改变,这里仅仅将λ12的值和λ21的值互换,分类结果就不同了。λ21增大,即将第一类数据错分到第二类里面的风险就变大了,一些数据因为风险大了所以会分到第一个类别中去,相应的第一类的数据分类错误率减小,当然同时第二类的数据分类错误率增加了。 rightRate3= 1 worng3= 0 rightRate4= 0.8700 worng4= 0.1300 六、思考题 1.如何获得类条件概率密度? 类条件概率是已知的,也就是这里是自己设定的,pw1=pw2=0.5. 2.按照最小错误率的贝叶斯决策规则和最小风险的贝叶斯决策规则对测试集中的样本分类,结果一致吗? 不一致,最小错误率的贝叶斯决策规则关心的是让出现的错误最小,而最小风险的贝叶斯决策规则关心的是决策结果带来的损失最小。最小风险的贝叶斯决策的决策表是人为给定的,决策表不同导致的结果不同。当决策与状态相同时损失为0,不同时损失为1时最小风险等于最小错误率贝叶斯决策。 七、附录 clear e1=2;a1=0.5; e2=-2;a2=2; pw1=0.5;pw2=0.5; %%%%最小错误率贝叶斯分类 s1=normrnd(e1,a1,1,100);%产生二维正态分布100个数据 histfit(s1); s2=normrnd(e2,a2,1,100);%产生二维正态分布100个数据 p1=zeros(1,100); p2=zeros(1,100); p3=zeros(1,100); p4=zeros(1,100); right1=0;right2=0; %对第一类进行分类 fori=1:100