?? 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 + -