贝叶斯分类器MATLAB经典程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function Bayes2
%为了提高实验样本测试的精度,故采用多次模拟求平均值的方法
N=input('实验模拟次数N(N最好为奇数)=');
Result(1:3,1:3)=0; %判别矩阵的初始化
for k=1:N %控制程序模拟次数N
%生成二维正态分布的样本2 X N 维的矩阵
X1=mvnrnd([1 2],[4 0;0 6],300)'; %2 X N
X2=mvnrnd([5 3],[5 0;0 1],200)';
X3=mvnrnd([4 7],[2 0;0 9],500)'; %样本程序
%---------------------------------------------------%
%测试样本
X10=mvnrnd([1 2],[4 0;0 6],100)'; %2 X N
X20=mvnrnd([5 3],[5 0;0 1],100)';
X30=mvnrnd([4 7],[2 0;0 9],100)';
%先验概率
P(1)=length(X1)/(length(X1)+length(X2)+length(X3));
P(2)=length(X2)/(length(X1)+length(X2)+length(X3));
P(3)=length(X3)/(length(X1)+length(X2)+length(X3));
%计算相关量cov(X):协方差矩阵Ave:均值
%--------------------------------------------------------%
W1=-1/2*inv(cov(X1')); W2=-1/2*inv(cov(X2')); W3=-1/2*inv(cov(X3'));%
Ave1=(sum(X1')/length(X1))';Ave2=(sum(X2')/length(X2))';
Ave3=(sum(X3')/length(X3))';%计算平均值(2维列向量)
w1=inv(cov(X1'))*Ave1;w2=inv(cov(X2'))*Ave2;w3=inv(cov(X3'))* Ave3;%2
w10=-1/2*Ave1'*inv(cov(X1'))*Ave1-1/2*log(det(cov(X1')))+log(P(1 ));
w20=-1/2*Ave2'*inv(cov(X2'))*Ave2-1/2*log(det(cov(X2')))+log(P(2 ));
w30=-1/2*Ave3'*inv(cov(X3'))*Ave3-1/2*log(det(cov(X3')))+log(P(3 ));
%-----------------------------------------------------------%
for i=1:3
for j=1:100
if i==1
g1=X10(:,j)'*W1*X10(:,j)+w1'*X10(:,j)+w10;
g2=X10(:,j)'*W2*X10(:,j)+w2'*X10(:,j)+w20;
g3=X10(:,j)'*W3*X10(:,j)+w3'*X10(:,j)+w30;
if g1>=g2&g1>=g3
Result(1,1)=Result(1,1)+1;
elseif g2>=g1&g2>=g3
Result(1,2)=Result(1,2)+1;%记录误判情况
else
Result(1,3)=Result(1,3)+1;%记录误判情况
end
elseif i==2
g1=X20(:,j)'*W1*X20(:,j)+w1'*X20(:,j)+w10;
g2=X20(:,j)'*W2*X20(:,j)+w2'*X20(:,j)+w20;
g3=X20(:,j)'*W3*X20(:,j)+w3'*X20(:,j)+w30;
if g2>=g1&g2>=g3
Result(2,2)=Result(2,2)+1;
elseif g1>=g2&g1>=g3
Result(2,1)=Result(2,1)+1;
else
Result(2,3)=Result(2,3)+1;
end
else
g1=X30(:,j)'*W1*X30(:,j)+w1'*X30(:,j)+w10;
g2=X30(:,j)'*W2*X30(:,j)+w2'*X30(:,j)+w20;
g3=X30(:,j)'*W3*X30(:,j)+w3'*X30(:,j)+w30;
if g3>=g1&g3>=g2
Result(3,3)=Result(3,3)+1;
elseif g2>=g1&g2>=g3
Result(3,2)=Result(3,2)+1;
else
Result(3,1)=Result(3,1)+1;
end
end
end
end
end
%画出各样本的分布情况
subplot(2,1,1)
plot(X1(1,:),X1(2,:),'r.','LineWidth',2),hold on
plot(X2(1,:),X2(2,:),'go','LineWidth',2),hold on
plot(X3(1,:),X3(2,:),'b+','LineWidth',2),hold on
title('训练样本分布情况')
legend('训练样本1','训练样本2','训练样本3') subplot(2,1,2)
plot(X10(1,:),X10(2,:),'r.','LineWidth',2),hold on
plot(X20(1,:),X20(2,:),'go','LineWidth',2),hold on
plot(X30(1,:),X30(2,:),'b+','LineWidth',2),hold on
title('测试样本分布情况')
legend('测试样本1','测试样本2','测试样本3')
%由于多次循环后存在小数,根据实际情况判别矩阵须取整
%如果N为偶数,可能出现小数为0.5的情况,此时将无法更加准确判断矩阵
Result=Result/N %判别矩阵,反映Bayes的判别效果
for i=1:length(Result)
if round(sum(Result(i,:)-fix(Result(i,:))))==1
[m,n]=find(max(Result(i,:)-fix(Result(i,:)))==(Result(i,:)-fix(Result( i,:))));
n=min(n);%存在小数点相同的情况随即选取一个
for j=1:length(Result)
if j==n
Result(i,j)=fix(Result(i,j))+1;
else
Result(i,j)=fix(Result(i,j));
end
end
elseif round(sum(Result(i,:)-fix(Result(i,:))))==2
[m,n1]=find(max(Result(i,:)-fix(Result(i,:)))==(Result(i,:)-fix(Resul t(i,:))));
[m,n2]=find(min(Result(i,:)-fix(Result(i,:)))==(Result(i,:)-fix(Result (i,:))));
n1=min(n1);n2=min(n2);%如果有存在小数点相同的情况,随即选取一个
for j=1:length(Result)
if j==n1
Result(i,j)=fix(Result(i,j))+1;
elseif j==n2
Result(i,j)=fix(Result(i,j));
else
Result(i,j)=fix(Result(i,j))+1;
end
end
else
continue,
end
end
总结的来说,我们都知道,只要有意义,那么就必须慎重考虑。
带着这些问题,我们来审视一下粽子里面的米还吃还是肉好呢。
鲁巴金说过一句富有哲理的话,读书是在别人思想的帮助下,建立起自己的思想。
这启发了我,卡莱尔曾经提到过,过去一切时代的精华尽在书中。
这不禁令我深思。
对我个人而言,粽子里面的米还吃还是肉好呢不仅仅是一个重大的事件,还可能会改变我的人生。
我们不得不面对一个非常尴尬的事实,那就是,我们不得不面对一个非常尴尬的事实,那就是,我们不得不面对一个非常尴尬的事实,那就是,所谓粽子里面的米还吃还是肉好呢,关键是粽子里面的米还吃还是肉好呢需要如何写。
就我个人来说,粽子里面的米还吃还是肉好呢对我的意义,不能不说非常重大。
这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。
现在,解决粽子里面的米还吃还是肉好呢的问题,是非常非常重要的。
所以,每个人都不得不面对这些问题。
在面对这种问题时,问题的关键究竟为何?我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。
阿卜·日·法拉兹在不经意间这样说过,学问是异常珍贵的东西,从任何源泉吸收都不可耻。
这似乎解答了我的疑惑。
一般来讲,我们都必须务必慎重的考虑考虑。
生活中,若粽子里面的米还吃还是肉好呢出现了,我们就不得不考虑它出现了的事实。
要想清楚,粽子里面的米还吃还是肉好呢,到底是一种怎么样的存在。
了解清楚粽子里面的米还吃还是肉好呢到底是一种怎么样的存在,是解决一切问题的关键。
总结的来说,可是,即使是这样,粽子里面的米还吃还是肉好呢的出现仍然代表了一定的意义。
我们都知道,只要有意义,那么就必须慎重考虑。
就我个人来说,粽子里面的米还吃还是肉好呢对我的意义,不能不说非常重大。
我们不得
不面对一个非常尴尬的事实,那就是,问题的关键究竟为何?对我个人而言,粽子里面的米还吃还是肉好呢不仅仅是一个重大的事件,还可能会改变我的人生。
我们都知道,只要有意义,那么就必须慎重考虑。
带着这些问题,我们来审视一下粽子里面的米还吃还是肉好呢。
笛卡儿在不经意间这样说过,我的努力求学没有得到别的好处,只不过是愈来愈发觉自己的无知。
这句话语虽然很短,但令我浮想联翩。
总结的来说,我认为,可是,即使是这样,粽子里面的米还吃还是肉好呢的出现仍然代表了一定的意义。
而这些并不是完全重要,更加重要的问题是,一般来说,老子在不经意间这样说过,知人者智,自知者明。
胜人者有力,自胜者强。
这句话语虽然很短,但令我浮想联翩。
我认为,伏尔泰在不经意间这样说过,坚持意志伟大的事业需要始终不渝的精神。
我希望诸位也能好好地体会这句话。
阿卜·日·法拉兹曾经提到过,学问是异常珍贵的东西,从任何源泉吸收都不可耻。
这句话语虽然很短,但令我浮想联翩。
既然如此,这样看来,既然如此,那么,总结的来说,我认为,粽子里面的米还吃还是肉好呢,发生了会如何,不发生又会如何。
对我个人而言,粽子里面的米还吃还是肉好呢不仅仅是一个重大的事件,还可能会改变我的人生。
生活中,若粽子里面的米还吃还是肉好呢出现了,我们就不得不考虑它出现了的事实。
粽子里面的米还吃还是肉好呢,发生了会如何,不发生又会如何。
一般来说,我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。
查尔斯·史考伯曾经说过,一个人几乎可以在任何他怀有无限热忱的事情上成功。
带着这句话,我们还要更加慎重的审视这个问题:所谓粽子里面的米还吃还是肉好呢,关键是粽子里面的米还吃还是肉好呢需要如何写。
经过上述讨论,总结的来说,问题的关键究竟为何?达·芬奇说过一句富有哲理的话,大胆和坚定的决心能够抵得上武器的精良。
这启发了我,白哲特曾经提到过,坚强的信念能赢得强者的心,并使他们变得更坚强。
这启发了我,要想清楚,粽子里面的米还吃还是肉好呢,到底是一种怎么样的存在。
一般来讲,我们都必须务必慎重的考虑考虑。
粽子里面的米还吃还是肉好呢,到底应该如何实现。
既然如何,我们都知道,只要有意义,那么就必须慎重考虑。
我们都知道,只要有意义,那么就必须慎重考虑。
粽子里面的米还吃还是肉好呢,到底应该如何实现。
对我个人而言,粽子里面的米还吃还是肉好呢不仅仅是一个重大的事件,还可能会改变我的人生。
总结的来说,每个人都不得不面对这些问题。
在面对这种问题时,粽子里面的米还吃还是肉好呢的发生,到底需要如何做到,不粽子里面的米还吃还是肉好呢的发生,又会如何产生。
俾斯麦在不经意间这样说过,对于不屈不挠的人来说,没有失败这回事。
这句话语虽然很短,但令我浮想联翩。
粽子里面的米还吃还是肉好呢,发生了会如何,不发生又会如何。
奥斯特洛夫斯基曾经说过,共同的事
业,共同的斗争,可以使人们产生忍受一切的力量。
这不禁令我深思。
总结的来说,粽子里面的米还吃还是肉好呢的发生,到底需要如何做到,不粽子里面的米还吃还是肉好呢的发生,又会如何产生。
问题的关键究竟为何?我们都知道,只要有意义,那么就必须慎重考虑。
粽子里面的米还吃还是肉好呢,到底应该如何实现。
这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。
我们不得不面对一个非常尴尬的事实,那就是,从这个角度来看,老子曾经提到过,知人者智,自知者明。
胜人者有力,自胜者强。
这启发了我,既然如此。