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

📄 linjinfa1.m

📁 这是一个模式识别中的最近邻分类算法的一个简单仿真分类实例
💻 M
字号:
clear all;
%PCA判决法,这个是把样本放在一起计算其协方差矩阵,然后求特征向量,最大特征值所对应的特征向量是投影的方向,最近邻法判决分类
M = load('E:\研究生课程\模式识别课程\homework1_1007\FEMALE.TXT');
N = load('E:\研究生课程\模式识别课程\homework1_1007\MALE.TXT');
MIX=[M;N];
m=mean(MIX);
s=cov(MIX);
MIX=MIX';
m=m';
s=s';
[A,U]=eig(s)% A是特征向量U是特征值对角阵

p1=A(:,1);
p2=A(:,2);
w=p2;
M=M';
N=N';
 

%把test1.txt的值读出来,放如数组[a1,a2,a3]中进行测试
[a1,a2,a3]=textread('E:\研究生课程\模式识别课程\homework1_1007\test1.TXT','%d %d %c',35);
 right=0;
 wrong=0;
 a=[a1,a2];
 a=a';
%把样本数据转到w方向上,二维变成一维
for i=1:100
    yangben(i)=w'*MIX(:,i);
end
for i=1:35
    a_w(i)=w'*a(:,i) ;
end

for i=1:35
    for j=1:100
        cha(j)=norm(a_w(i)-yangben(j));
    end
    [y,I]=min(cha);
 
    if(I==50|I<50)
       result='f';
       plot(a(1,i),a(2,i),'r*');
       hold on;
    end;
    if(I>50)
        result='m';
        plot(a(1,i),a(2,i),'b+');
        hold on;
     end
     
    if(strcmp(a3(i,1),result)==1)
     right=right+1;
    elseif(strcmp(a3(i,1),result)==0)
     wrong=wrong+1;
    end
end
 xlabel('测试样本身高值');
 ylabel('测试样本体重值');
 title('最邻近法的分类结果,红色*表示被分为女生点,蓝色+表示被分为男生的点');
 
right
wrong
       
        



    
    







 

⌨️ 快捷键说明

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