- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贝叶斯的matlab程序
Bayes判别matlab源程序
2008年07月15日 星期二 22:11 在分类判别中,bayes判别的确具有明显的优势,与模糊,灰色,物元可拓相比,
判别准确率一般都会高些,而BP神经网络由于调试麻烦,在调试过程中需要人
工参与,而且存在明显的问题,局部极小点和精度与速度的矛盾,以及训练精度
和仿真精度间的矛盾,等,尽管是非线性问题的一种重要方法,但是在我们项目
中使用存在一定的局限,基于此,最近两天认真的研究了bayes判别,并写出
bayes判别的matlab程序,与spss非逐步判别计算结果一致。现对外共享下:
clear;clc;
yangben=[
1 4.1 70 1.8 2.1 1.3 6.6
1 4.4 78 2.2 1.9 1.5 2.8
1 2.8 84 1.6 2.7 1.6 10.6
1 6.4 88 2 2.3 1.2 8.3
2 8.2 74 3.7 1.9 1.1 2.9
2 10.2 81 3.5 1.8 1.7 2.7
2 14.2 70 2.9 2 0.9 3.2
2 9.8 78 2.5 1.9 0.7 3.4
2 16.6 92 6.5 2.4 0.6 3
3 19.4 50 8.2 1.1 1.5 3.2
3 22.6 46 9.8 1.1 0.8 3.5
3 23.8 35 8.8 1.5 1.3 4.3
];
g=3;
[m,n]=size(yangben);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:g
groupNum(i)=0;
group(i)=0;
for j=1:m
if yangben(j,1)==i
group(i)=group(i)+1;
end
end
if i==1
groupNum(i)=group(i);
else
groupNum(i)=groupNum(i-1)+group(i);
end
end
group
groupNum; %计算分类个数数组
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GroupMean=[];
for i=1:g
if i==1
low=1;
up=groupNum(i);
else
low=groupNum(i-1)+1;
up=groupNum(i);
end
matrix=yangben(low:up,:);
MatrixMean=mean(matrix); %各分类组平均值
GroupMean=[GroupMean;MatrixMean];
for i=low:up
for j=2:n
C(i,j-1)=yangben(i,j)-MatrixMean(j);
end
end
end
C
GroupMean
V=C*C/(m-g);
V_inv=inv(V) %对矩阵V求逆 GroupMean=GroupMean(:,2:n) Q1=GroupMean*V_inv
for i=1:g
lnqi(i)=log(group(i)/m);
tmp=GroupMean(i,:);
Q2(i)=lnqi(i)-0.5*tmp*V_inv*tmp;
end
lnqi
Q2
b=[
3.2 70 2.3 2.1 1.6 2.8 2 88 1.6 1.5 1.2 3.2
8.2 69 2.9 1.7 0.9 3.1 21.1 43 5.6 0.8 0.6 2.7 23.6 85 8.3 1.5 1.1 3.3 ]; % 判别的样本
[u,v]=size(b)
result=[]
for i=1:u
x=b(i,:)
y=Q1*x+Q2
result=[result y];
end
result
文档评论(0)