Fisher分类算法

上传人:206****923 文档编号:91847350 上传时间:2019-07-02 格式:DOCX 页数:7 大小:49.99KB
返回 下载 相关 举报
Fisher分类算法_第1页
第1页 / 共7页
Fisher分类算法_第2页
第2页 / 共7页
Fisher分类算法_第3页
第3页 / 共7页
Fisher分类算法_第4页
第4页 / 共7页
Fisher分类算法_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Fisher分类算法》由会员分享,可在线阅读,更多相关《Fisher分类算法(7页珍藏版)》请在金锄头文库上搜索。

1、实验二 用身高和/或体重数据进行性别分类的实验一、实验目的 1) 加深对Fisher线性判别方法原理的理解和认识 2) 掌握Fisher线性判别方法的设计方法 二、实验数据n 训练样本集l FAMALE.TXT 50个女生的身高、体重数据l MALE.TXT 50个男生的身高、体重数据n 测试样本集l test1.txt 35个同学的身高、体重、性别数据(15个女生、20个男生)l test2.txt 300个同学的身高、体重、性别数据(50个女生、250个男生)三、实验内容试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分类器进行比较。同时采用身高和体重数据作为特征,用Fisher线

2、性判别方法求分类器,将该分类器应用到训练和测试样本,考察训练和测试错误情况。将训练样本和求得的决策边界画到图上,同时把以往用Bayes方法求得的分类器(例如: 最小错误率Bayes分类器)也画到图上,比较结果的异同。四、原理简述、程序流程图1、Fisher线性判别方法首先求各类样本均值向量,然后求各个样本的来内离散度矩阵,再求出样本的总类内离散度,根据公式求出把X投影到Y的最好的投影方向。再求出一维Y空间中各类样本均值,其中,本次实验的分界阈值我们用如下方法得到:,最后,将测试样本中的值代入,求出y,并将其与y0来进行比较来分类。2、流程图五、实验结果1、错误率表格男生错误个数女生错误个数总错

3、误男生错误率女生错误率总错误率2722910.8%4%9.67%841216%8%12%分析:用训练样本得到的分类器测试测试样本时错误率低,测试结果较好,但测试训练样本时,其错误率较高,测试结果不好。2、Fisher判别方法图像分析:从图中我们可以直观的看出对训练样本Fisher判别比最大似然Bayes判别效果更好。六、总结与分析本次实验使我们对加深Fisher判别法的理解。通过两种分类方法的比较,我们对于同一种可以有很多不同的分类方法,各个分类方法各有优劣,所以我们更应该熟知这些已经得到充分证明的方法,在这些方法的基础上通过自己的理解,创造出更好的分类方法。所以模式识别还有很多更优秀的算法等

4、着我们去学习。七、附录1. fisher.mfunction 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).);%男生的类内离散度矩阵endfor i=1:l2 S2=S2+(B(:,i)-M2)*(B(:,i)-M2).);%女生的类内离散度矩

5、阵endSw=0.5*S1+0.5*S2;%总类内离散度矩阵,先验概率0.5w=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);%求出二维男生样本集映射到一维时的量endfor i=1:l2 Y2(i)=wT(1,1)*B(1,i)+wT(1,2)*B(2,i);%求出二维女生样本集映射到一维时的量endm1=sum(Y1)/l1;m2=sum(Y2)/l2;y0=(l1*m1+l2*m2)/(l1+

6、l2);2. determine.m%用fisher线性判别函数来判断clcclear allA1 A2 = textscan(MALE.txt,%f%f);B1 B2 = textscan(FEMALE.txt,%f%f);AA = A1 A2;BB = B1 B2;w,y0 = fisher(AA,BB);wT = w;girl = 0;boy = 0;bad = 0;errorgirl = 0;errorboy = 0;error = 0;errorgirlrate = 0;errorboyrate = 0; errorrate = 0;T1 T2 = textscan(test2.tx

7、t,%f%f%*s);TT = T1 T2;T = TT;k3 l3 = size(T);for k = 1:50 y(k) = wT*T(:,k); if y(k)y0 errorgirl = errorgirl+1; else if y(k)y0 boy = boy+1; else if y(k)y0 errorboy = errorboy+1; else bad = bad+1; end endenderrorgirl;errorboy;bad;girl = errorboy+girl;boy = boy+errorgirl;error = errorgirl+errorboy;erro

8、rgirlrate = errorgirl/50;errorboyrate = errorboy/250;errorrate = error/l3;3. huatu.mA1 A2 = textread(MALE.txt,%f%f);B1 B2 = textread(FEMALE.txt,%f%f);AA=A1 A2;BB=B1 B2;A=AA;B=BB;k1,l1=size(A);k2,l2=size(B);w,y0=fisher(AA,BB);for i=1:l1 x=A(1,i); y=A(2,i);%x是身高,y是体重 plot(x,y,R.); hold onendfor i=1:l2

9、 x=B(1,i); y=B(2,i); plot(x,y,G.); hold onenda1=min(A(1,:);%男生身高最小值a2=max(A(1,:);%男生身高最大值b1=min(B(1,:);%女生身高最小值b2=max(B(1,:);%女生身高最大值a3=min(A(2,:);%男生体重最小值a4=max(A(2,:);%男生体重最大值b3=min(B(2,:);%女生体重最小值b4=max(B(2,:);%女生体重最大值if a1b2 b=a2;else b=b2;%b是所有人中身高最大值endif a3b4 d=a4;else d=b4;%d为所有人中体重最大值endx=a

10、:0.01:b;y=(y0-x*w(1,1)/w(2,1);plot(x,y,B);hold on;%身高体重相关,判别测试样本%手动先验概率P1=0.5;P2=0.5;FA=B;MA=A;a=cov(FA)*(length(FA)-1)/length(FA);b=cov(MA)*(length(MA)-1)/length(MA);W1=-1/2*inv(a);W2=-1/2*inv(b);Ave1=(sum(FA)/length(FA);Ave2=(sum(MA)/length(MA);w1=inv(a)*Ave1;w2=inv(b)*Ave2;w10=-1/2*Ave1*inv(a)*Ave1-1/2*log(det(a)+log(P1);w20=-1/2*Ave2*inv(b)*Ave2-1/2*log(det(b)+log(P2);syms x ;syms y ;h=x y;h1=h*W1*h+w1*h+w10;h2=h*W2*h+w2*h+w20 ;h=h1-h2;ezplot(h,130,200,30,100)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号