失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 最小错误率贝叶斯分类器(包含matlab程序)

最小错误率贝叶斯分类器(包含matlab程序)

时间:2022-03-17 10:48:09

相关推荐

最小错误率贝叶斯分类器(包含matlab程序)

最小错误率贝叶斯分类器(包含matlab程序)

1. 最小错误贝叶斯分类器原理2.最小错误率贝叶斯分类器的图形表示3.三类最小错误率贝叶斯分类器实验实验代码

1. 最小错误贝叶斯分类器原理

在对模式进行识别时,在存在模棱两可的情况下,任何决策都存在判别错误的可能性。最小错误贝叶斯决策就是以错误率为自小的分类规则。使用p(e)表示错误概率,那么最小错误贝叶斯分类器的目的就是minp(e).

对于两种模式,其中:

即x属于第一类,判别为第二类的概率,x属于第二类,判别为第一类的概率。

可以看出使错误率最小的决策就是使后验概率最大的决策,因此最小错误率贝叶斯决策可写为:

其中,后验概率的计算使用贝叶斯公式计算,因此要已知先验概率p(ωi)以及类条件概率密度p(x|wi)。

判决公式还有很多等价公式。

2.最小错误率贝叶斯分类器的图形表示

错误率:

对于多类问题的决策,思路跟两类问题类似,不同的只是计算量加重了许多;可以把每一类的后验概率当做是该类的一个判别函数gi(x),决策的过程就是各类的判别函数进行比较,最后取最大的那个。使用图形表示为:

3.三类最小错误率贝叶斯分类器实验

(1)使用函数产生mvnrnd三类服从高斯分布的样本点。高斯函数的参数作为输入参数输入,包括均值,协方差,个数,先验概率。

(2)为了区分三类样本,第一类使用蓝色,第二类使用绿色,第三类使用红色。

第一类错分的点使用黑色三角表示下来,第二类错分的店使用黄色+表示下来,第三类使用粉红色正方形表示出来。

(3)使用函数mvnpdf()实现高斯密度函数值的计算

(4)比较高斯密度值的大小,选取最大的一类,分到那一类。

输入参数分别为:

实验结果:

实验代码

function self_mvnrnd1(varargin)%可自定义参数的函数if(nargin==12)%判定输入参数是否为12w1=mvnrnd(varargin{1},varargin{2},varargin{3});%第一类高斯函数密度值w2=mvnrnd(varargin{5},varargin{6},varargin{7});%第二类w3=mvnrnd(varargin{9},varargin{10},varargin{11});figure(1);plot(w1(:,1),w1(:,2),'bo');%蓝色o为第一类hold onplot(w2(:,1),w2(:,2),'g*');%绿色*为第二类hold onplot(w3(:,1),w3(:,2),'r^')title('300个随机样本,蓝色o为第一类,绿色*为第二类,红色-为第三类');w=[w1;w2;w3];n1=0;%第一类正确个数n2=0;%第二类正确个数n3=0;%第三类正确的个数figure(2);%贝叶斯分类器for i=1:(varargin{3}+varargin{7}+varargin{11})x=w(i,1);y=w(i,2);g1=mvnpdf([x,y],varargin{1},varargin{2})*varargin{4};g2=mvnpdf([x,y],varargin{5},varargin{6})*varargin{8};g3=mvnpdf([x,y],varargin{9},varargin{10})*varargin{12};if g1>g3&&g1>g2if 1<=i&&i<=varargin{3}n1=n1+1;%第一类正确个数plot(x,y,'bo');%蓝色o表示正确分为第一类的样本hold on;elseplot(x,y,'k^');%红色的上三角形表示第一类错误分为第二类hold on;end endif g2>g3&&g2>g1if varargin{3}<=i&&i<=(varargin{3}+varargin{7})n2=n2+1;%第一类正确个数plot(x,y,'g*');%绿色o表示正确分为第二类的样本hold on;elseplot(x,y,'y+');%红色的上三角形表示第一类错误分为第二类hold on;end endif g3>g1&&g3>g2if (varargin{3}+varargin{7})<=i&&i<=(+varargin{7}+varargin{3}+varargin{11})n3=n3+1;%第一类正确个数plot(x,y,'r^');%绿色o表示正确分为第二类的样本hold on;elseplot(x,y,'ms');%红色的上三角形表示第一类错误分为第二类hold on;end endendr1_rate=0;r2_rate=0;r3_rate=0;r1_rate=n1/varargin{3}r2_rate=n2/varargin{7}r3_rate=n3/varargin{11}print(r1_rate)print(r2_rate)print(r3_rate)end%%%%%%%%%main.mself_mvnrnd1([1 3],[1.5,0;0,1],100,0.2,[3,1],[1,0.5;0.5,2],100,0.4,[-1,-2],[ 1,0.5;0.5,2],100,0.4)

/

如果觉得《最小错误率贝叶斯分类器(包含matlab程序)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。