• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 2 次
    发布日期: 2021-12-10
  • 语言: Matlab
  • 标签: matlab  

资源简介

用matlab fisher分类方法 对数据进行简单的分类

资源截图

代码片段和文件信息

%w1中数据点的坐标
x1 =[9 7 10 8 9 8 7];
x2 =[8 6 7 4 9 6 5];
x3 =[7 6 8 5 3 7 6];
%将x1、x2、x3变为行向量
x1=x1(:);x2=x2(:);x3=x3(:);
%计算第一类的样本均值向量m1
m1(1)=mean(x1);m1(2)=mean(x2);m1(3)=mean(x3);
%计算第一类样本类内离散度矩阵S1
S1=zeros(33);
for i=1:7
    S1=S1+[-m1(1)+x1(i) -m1(2)+x2(i) -m1(3)+x3(i)]‘*[-m1(1)+x1(i) -m1(2)+x2(i) -m1(3)+x3(i)];
end
%w2的数据点坐标
x4 =[8 3 6 6 8 6 3];
x5 =[4 6 3 4 2 3 5];
x6 =[4 6 3 5 2 4 6];
x4=x4(:);x5=x5(:);x6=x6(:);
%计算第二类的样本均值向量m2
m2(1)=mean(x4);m2(2)=mean(x5);m2(3)=mean(x6);
%计算第二类样本类内离散度矩阵S2
S2=zeros(33);
for i=1:7
    S2=S2+[-m2(1)+x4(i) -m2(2)+x5(i) -m2(3)+x6(i)]‘*[-m2(1)+x4(i) -m2(2)+x5(i) -m2(3)+x6(i)];
end
%总类内离散度矩阵Sw
Sw=zeros(33);
Sw=S1+S2;
%样本类间离散度矩阵Sb
Sb=zeros(33);
Sb=(m1-m2)‘*(m1-m2);
%最优解W
W=Sw^-1*(m1-m2)‘
%将W变为单位向量以方便计算投影
W=W/sqrt(sum(W.^2));
%计算一维Y空间中的各类样本均值M1及M2
for i=1:7
    y(i)=W‘*[x1(i) x2(i) x3(i)]‘;
end
M1=mean(y)
for i=1:7
    y(i)=W‘*[x4(i) x5(i) x6(i)]‘;
end
M2=mean(y)
%利用当P(w1)与P(w2)已知时的公式计算W0
p1=0.6;p2=0.4;
W0=-(M1+M2)/2+

评论

共有 条评论