📄 linjinfa1.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 + -