实验二用身高和/或体重数据进行性别分类的实验
一、实验目的
1) 加深对Fisher线性判别方法原理的理解和认识 2) 掌握Fisher线性判别方法的设计方法
二、实验数据
? 训练样本集
? FAMALE.TXT 50个女生的身高、体重数据 ? MALE.TXT 50个男生的身高、体重数据 ? 测试样本集
? test1.txt 35个同学的身高、体重、性别数据(15个女生、20个男生) ? test2.txt 300个同学的身高、体重、性别数据(50个女生、250个男生)
三、实验内容
试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分类器进行比较。 同时采用身高和体重数据作为特征,用Fisher线性判别方法求分类器,将该分类器应用到训练和测试样本,考察训练和测试错误情况。将训练样本和求得的决策边界画到图上,同时把以往用Bayes方法求得的分类器(例如: 最小错误率Bayes分类器)也画到图上,比较结果的异同。
四、原理简述、程序流程图
1、Fisher线性判别方法
mi?首先求各类样本均值向量
1Nix?x,i?1,2??i,
Tiisi?然后求各个样本的来内离散度矩阵
x?wi??x?m??x?m?,i?1,2,
s再求出样本的总类内离散度??p??1?s1?p??2?s2,
1Ni??1??s??m1?m2?求出把X投影到Y的最好的投影方向。 根据公式
mi'?再求出一维Y空间中各类样本均值
y?y,i?1,2??i?y??*x,
,其中
N1m1'?N2m2'y0?N1?N2,
本次实验的分界阈值我们用如下方法得到:
最后,将测试样本中的值代入,求出y,并将其与y0来进行比较来分类。
2、流程图
求各类样本均
值向量求类内离散度
矩阵用公式求最好的变换向量W*二维空间向一维y空间投影一维空间样本
均值
求取阈值y0
决策判断
计算各类样本的错误率
五、实验结果
1、错误率表格 男生错误个数 女生错误个数 总错误 男生错误率 女生错误率 总错误率 27 8 2 4 29 12 10.8% 16% 4% 8% 9.67% 12% 分析:用训练样本得到的分类器测试测试样本时错误率低,测试结果较好,但测试训练样本时,其错误率较高,测试结果不好。 2、Fisher判别方法图像
分析:从图中我们可以直观的看出对训练样本Fisher判别比最大似然Bayes判别效果更好。
六、总结与分析
本次实验使我们对加深Fisher判别法的理解。通过两种分类方法的比较,我们对于同一种可以有很多不同的分类方法,各个分类方法各有优劣,所以我们更应该熟知这些已经得到充分证明的方法,在这些方法的基础上通过自己的理解,创造出更好的分类方法。所以模式识别还有很多更优秀的算法等着我们去学习。
七、附录
1. fisher.m
function [w,y0]=fisher(AA,BB) A=AA'; B=BB';
[k1,l1]=size(A); [k2,l2]=size(B); M1=sum(AA); M1=M1';
M1=M1/l1;%男生均值向量 M2=sum(BB); M2=M2';
M2=M2/l2;%女生均值向量 S1=zeros(k1,k1);%建立矩阵 S2=zeros(k2,k2); for i=1:l1
S1=S1+(A(:,i)-M1)*((A(:,i)-M1).');%男生的类内离散度矩阵 end
for i=1:l2
S2=S2+(B(:,i)-M2)*((B(:,i)-M2).');%女生的类内离散度矩阵 end
Sw=0.5*S1+0.5*S2;%总类内离散度矩阵,先验概率0.5 w=inv(Sw)*(M1-M2);%两列
wT=w';%wT就是使Fisher准则函数JF(w)取极大值时的解,也就是d维X空间到1维Y空间的最好的投影方向 for i=1:l1
Y1(i)=wT(1,1)*A(1,i)+wT(1,2)*A(2,i);%求出二维男生样本集映射到一维时的量 end
for i=1:l2
Y2(i)=wT(1,1)*B(1,i)+wT(1,2)*B(2,i);%求出二维女生样本集映射到一维时的量 end
m1=sum(Y1)/l1; m2=sum(Y2)/l2;
y0=(l1*m1+l2*m2)/(l1+l2);
相关推荐: