⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlab bayes判别.txt

📁 MATLAB绘制出权值wv和阀值bv确定的误差曲面
💻 TXT
字号:
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
endC
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
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -