📄 kl2.m
字号:
clear;
load MALE.txt
load FEMALE.txt
data1=[MALE];
data2=[FEMALE];
data=[MALE;FEMALE];
k1=mean(data1); %第一类均值
k2=mean(data2); %第二类均值
k=mean(data);
R1=cov(data1(:,1),data1(:,2)); %协方差矩阵
R2=cov(data2(:,1),data2(:,2));
R=cov(data(:,1),data(:,2));
SW=0.5*(R1+R2);
[V,D] = eig(SW);
%[V1,D1] = eig(R1);
%[V2,D2] = eig(R2);
sb=0.5*((k1-k)'*(k1-k)+(k2-k)'*(k2-k))
J1(:,1)=V(:,1)'*sb*V(:,1)/D(1,1);
J2(:,2)=V(:,2)'*sb*V(:,2)/D(2,2);
i=1;
if J1(:,1)<J2(:,2)
i=2;
end
%namida=D(i,i)
w=V(i,:)
y0=(w*k1'+w*k2')/2 % y=w'*data';
L=length(data)
for j=1:L
xr(j,1:2)=w*data(j,:)'*w; %/norm(w,2)data(j,:)-
end
figure
plot(MALE(:,1),MALE(:,2),'*',FEMALE(:,1),FEMALE(:,2),'*',xr(1:50,1),xr(1:50,2),'*',xr(51:100,1),xr(51:100,2),'*')
% error=L-length(find((test(:,3)-result')==0));
% errorrate=error/L % test1=0.0286; test2=0.0967
error=0;
for i=1:L
X=data(i,1:2);
H=w*X'; %计算判别函数值
if (H<y0 & i<51) | (H>y0 & i>50)
error=error+1;
end
end
errorrate=error/L % test1=0.0286; test2=0.0967
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -