w12=xlsread('fisher数据样本.xlsx','C2:F16'); %分别选取类1和类2、测试样本的数据
w1=w12(1:5,:);
w2=w12(6:12,:);
sample=w12(13:15,:); %计算类1和类2的样本数
r1=size(w1,1);
r2=size(w2,1);
r3=size(sample,1); %计算类1和类2的均值(矩阵)
m1=mean(w1);
m2=mean(w2); %各类类内离散度矩阵(协方差矩阵)
s1=cov(w1)*(r1-1);
s2=cov(w2)*(r2-1); %总类内离散度矩阵
sw=s1+s2; %投影向量的计算公式
w=inv(sw)*(m1-m2)'; %计算投影后的一位空间内,各类的均值
y1=w'*m1';
y2=w'*m2'; %计算阈值
w0=-1/2*(y1+y2);%和类相同符号被归为同类
for i=1:r3
y(i)=sample(i,:)*w+w0;
if y(i)*(w'*w1(1,:)'+w0)>0
y(i)=1;
else
y(i)=2;
end
end
w1=w12(1:5,:);
w2=w12(6:12,:);
sample=w12(13:15,:); %计算类1和类2的样本数
r1=size(w1,1);
r2=size(w2,1);
r3=size(sample,1); %计算类1和类2的均值(矩阵)
m1=mean(w1);
m2=mean(w2); %各类类内离散度矩阵(协方差矩阵)
s1=cov(w1)*(r1-1);
s2=cov(w2)*(r2-1); %总类内离散度矩阵
sw=s1+s2; %投影向量的计算公式
w=inv(sw)*(m1-m2)'; %计算投影后的一位空间内,各类的均值
y1=w'*m1';
y2=w'*m2'; %计算阈值
w0=-1/2*(y1+y2);%和类相同符号被归为同类
for i=1:r3
y(i)=sample(i,:)*w+w0;
if y(i)*(w'*w1(1,:)'+w0)>0
y(i)=1;
else
y(i)=2;
end
end
y
样本数据为:
结果 :
1 2 2
本文通过Matlab代码演示了如何从Excel文件中读取Fisher数据样本,并利用这些数据进行两类样本的分类处理。该过程包括计算样本均值、协方差矩阵、投影向量等关键步骤。
2万+

被折叠的 条评论
为什么被折叠?



