2022年模式识别实验二 .pdf

上传人:Q****o 文档编号:27199148 上传时间:2022-07-23 格式:PDF 页数:20 大小:234.87KB
返回 下载 相关 举报
2022年模式识别实验二 .pdf_第1页
第1页 / 共20页
2022年模式识别实验二 .pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《2022年模式识别实验二 .pdf》由会员分享,可在线阅读,更多相关《2022年模式识别实验二 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验二用身高和 / 或体重数据进行性别分类姓名:学号:班级:姓名:学号:班级:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 一、实验目的和要求(一)加深对非参数估计的认识, 和对它与参数估计在适用情况、估计结果方面的异同的理解。(二)掌握直接设计线性分类器的方法,并与基于概率密度估计的贝叶斯分类器进行比较。(三)掌握留一法估计错误率的方法。二、实验内容(一)在第一次实验中, 挑选一次用身高 (身高与体重 )作为特征, 并且先

2、验概率分别为男生 0.5 ,女生 0.5 的情况。改用 Parzen 窗法或者 kn近邻法估计概率密度函数,得出贝叶斯分类器,对测试样本进行测试,比较与参数估计(最大似然法)基础上得到的分类器和分类性能的差别。(二)同时采用身高和体重数据作为特征,用Fisher 线性判别方法求分类器,将该分类器应用到训练和测试样本,考察训练和测试错误情况。 将训练样本和求得的决策边界画到图上, 同时把以往用 Bayes方法求得的分类器也画到图上, 比较结果的异同。(三)选择上述 Bayes 分类器和 Fisher 分类器 ,用留一法在训练集上估计错误率,与在测试集上得到的错误率进行比较。三、原理简述及程序框图

3、(一)挑选身高 ( 身高与体重 ) 为特征,选择先验概率为男生0.5 女生 0.5 的一组1. 用 Parzen 窗法来求概率密度函数,再用贝叶斯分类器进行分类。Parzen 窗法,窗函数为211( )exp22uu,我们选用正态函数窗 ,窗宽为/NhhN(h 是调节的参量, N是样本个数)dNNVh, (d 表示维度)。因为区域是一维的,所以体积为NnVh。Parzen 公式为?NPx111NiiNNxxNVh。因此,女生的条件概率密度为11111111NiinxxpNVNh男生的条件概率密度为22122211NiinxxpNVNh名师资料总结 - - -精品资料欢迎下载 - - - - -

4、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 根据贝叶斯决策规则1122g xp x wp wp x wp w知:如果12*(1)pppp,则1x,否则,2x。2. 流程图如下:(二)要求是同时采用身高和体重数据作为特征,用Fisher 线性判别方法求分类器,将该分类器应用到训练和测试样本,考察训练和测试错误情况。 将训练样本和求得的决策边界画到图上, 同时把以往用 Bayes 方法求得的分类器也画到图上,比较结果的异同。1. 取男生和女生的先验概率分别为0.5,0.5 。在设计贝叶

5、斯分类器时,首先求各类样本均值向量2, 1,1ixNmixii,然后求各个样本的类内离散度矩阵2, 1,imxmxsTiwxiii, 再 求 出 样 本 的 总 类 内 离 散 矩 阵21sss,根据公式211mms求出把二维 X空间投影到一维Y 空 间 的 最 好 的 投 影 方 向 。 再 求 出 一 维Y 空 间 中 各 类 样 本 均 值选择窗函数及窗宽求出样本类别为男或女的类条件概率密度得出决策规则并对测试样本进行判别确定特征及先验概率名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -

6、 - 第 3 页,共 20 页 - - - - - - - - - 2, 1,1iyNmiyii,其中xy*。再根据决策规则,当0yy时,1xw,当0yy时,2xw,这样就可判断出x 属于什么类别了。本 次 实 验 为 二 维 , 所 以 分 界 阈 值0y我 们 用 如 下 方 法 得 到 :2122110NNmNmNy。2. 将测试样本中的值代入, 求出一维空间投影y,并将其与分界阈值0y来进行比较来分类。3. 根据课本对 Fisher 线性判别法的介绍,得到的算法流程图如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -

7、名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - (三)选择上述或以前实验的任意一种方法,用留一法在训练集上估计错误率,并与在测试集上得到的错误率进行比较。1. 用 Fisher线性判别法,并用留一法来估计它在训练集上的错误率,并将结果与 Fisher 线性判别法对测试集进行判别时得到的错误率进行比较。2. 具体流程图如下:求各类样本均值向量求类内离散度矩阵用公式求最好的变换向量*w二维空间向一维y 空间投影一维空间样本均值求取阈值0y决策判断计算各类样本的错误率名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

8、- - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 四、实验结果及分析总结问题(一)实验结果及分析以下 h 为窗宽,若 h 过大,使估计量?NPx变成 N个宽度较大且函数值变化缓慢的函数的叠加, 从而使它是P x的一个平均的估计, 使估计的分辨率降低;反之,若 h 很小,趋近于 0,则使?NPx就成了 N个以样本为中心的尖峰函数的叠加,使估计的统计变动很大。因此,h 的选取,对估计量?NPx有很大影响。经过多次测试, 我们表 1 选择 h=4, 表 2 选择 h=7.另外,先验概率的改变通过手动输入改变。导

9、入两个训练样本集依次将女生样本集中的每一个样本当做测试集,余下的所有样本做训练集用 Fisher 法判断被选出来的样本,若判断错误,计数一次将男生按照以上方法再进行判别,计数,得到错误率再将以上方法用以测试集,得到错误率名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 训练样本为 FEMALE.txt MALE.txt ,测试样本为 test2.txt 表 1. 以身高为特征的各估计方法的判别错误率(h=4)女生先验概率男生先验

10、概率男生错误个数女生错误个数总错误个数男生错误率女生错误率总错误率Parzen窗法0.25 0.75 22 8 30 16% 8.8% 10% 0.5 0.5 34 4 38 13.6% 8% 12.67% 0.75 0.25 80 2 82 32% 4% 27.33% 最大似然Bayes 0.25 0.75 20 6.667% 0.5 0.5 27 9% 0.75 0.25 60 20% 训练样本为 FEMALE.txt MALE.txt ,测试样本为 test2.txt、表2. 以身高与体重作为特征的各估计方法的判别错误率(h=7)女生先验概率男生先验概率男生错误个数女生错误个数总错误个数

11、男生错误率女生错误率总错误率Parzen窗 法 估计0.25 0.75 7 22 29 14% 8.8% 9.67% 0.5 0.5 38 2 40 15.2% 4% 13.33% 0.75 0.25 2 46 48 18.4% 4% 16% 最大似然估计0.25 0.75 8 6 14 3.2% 12% 4.67% 0.5 0.5 29 3 32 11.6% 6% 10.67% 0.75 0.2 59 1 60 23.6% 2% 20% 分析:由表中数据可知,最大似然估计这种参数估计方法和Parzen 窗这种非参数估计方法用来进行分类时,最大似然估计判别的错误率低。问题(二)实验结果及分析名

12、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 1. 用 Fisher线性判别方法求分类器,训练样本为MALE.txt,FAMALE.txt ,将分类器分别应用到训练样本和测试样本(test2.txt)上,比较其错误率表 3. 用 Fisher 线性判别方法的错误率判别对象男生错误个数女生错误个数总错误个数男生错误率女生错误率总错误率测试样本26 2 29 10.8% 4% 9.6% 训练样本8 3 12 16% 7% 11%

13、分析:由表中数据可以看出, 用训练样本得到的分类器在对测试样本进行测试时错误率较低,测试结果较好,但测试训练样本时,其错误率较高,测试结果不好。2. 将训练样本和求得的决策边界画到图上(1) 男生女生先验概为0.5,0.5 ;(曲线代表最大似然决策边界, 直线代表 fisher决策边界,红点和绿点分别表示训练样本中女生和男生)图 1 决策样本和决策边界分析:从图中可以看出, 直线判错的曲线判错的个数少,我们可以比较得出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20

14、页 - - - - - - - - - 对训练样本 Fisher 判别比最大似然判别效果更好。问题(三)实验结果及分析留一法测试结果如下:表 4. 留一法错误率判别对象男生错误个数女生错误个数错误率测试样本81 3 28% 训练样本8 4 12% 分析:由表中可以直接看出, 用留一法在训练样本集上估计错误率时小于它在测试样本集上估计的错误率, 此外留一法在测试样本集上女生错误个数远低于男生错误个数。五、体会本次实验,我们用了接近三天的时间来完成。首先,我们了解了题目要求,在确保对题目完全理解的基础上,开始一步一步分析,求解。对每个小题,及其每一问,我们都经过查书,查资料,编代码几个步骤,仔细分

15、析每一步算法,得出流程图。 经过第一次作业的编程, 本次编程我们觉得轻松了很多,但还会出现一些细节上的错误,不过, 这些在我们经过不断的调试之后问题都被发现并解决。总体而言,本次试验,让我们对Parzen 窗法求类条件概率密度,以及Fisher线性判别法都有了更大的了解。六、附录Matlab 程序源代码 : % 特征是身高,先验概率为 0.5 、0.5 时用Parzen窗法,贝叶斯分类器。clc; clear all; FH FW=textread(FEMALE.txt,%f%f); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

16、- 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - MH MW=textread(MALE.txt,%f%f); FA=FH FW; MA=MH MW; N1=max(size(FA); h1=4; hn1=h1/(sqrt(N1); VN1=h1/(sqrt(N1); N2=max(size(MA); h2=4; hn2=h2/(sqrt(N2); VN2=h2/(sqrt(N2); tH tW=textread(test2.txt,%f%f%*s); X=tH tW; M N=size(X); s=zeros(M,1); A=X(:,

17、1) X(:,2) s; error=0; errorgirl=0; errorboy=0; errorrate=0; errorgirlrate=0; errorboyrate=0; girl=0; boy=0; bad=0; for k=1:M %测试集 x=A(k); p=0.5;%p为属于女生的先验概率,则1-p为男生的先验概率 for i=1:N1 pp(i)=1/sqrt(2*pi)*exp(-0.5*(abs(x-FA(i)2/(hn12);%pp(i )是窗函数 end p1=sum(1/VN1*pp); y1=1/N1*p1;%是女生的条件概率密度函数 for j=1:N2

18、qq(j)=1/sqrt(2*pi)*exp(-0.5*(abs(x-MA(j)2/(hn22); end q1=sum(1/VN2*qq); y2=1/N2*q1;%男生的概率密度函数,即其条件概率 g=p*y1-(1-p)*y2;%g为判别函数 if g0 if k=50 s(k,1)=0;%判为女生 girl=girl+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - else errorboy=errorboy+

19、1; end elseif g0 if k0 if k=50 s(k,1)=0;%判为女生 girl=girl+1; else errorboy=errorboy+1; end elseif g0 if ky0 errorgirl=errorgirl+1; else if y(k)y0 boy=boy+1; else if y(k)y0 errorboy=errorboy+1; else bad=bad+1; end end end errorgirl errorboy bad girl=errorboy+girl boy=boy+errorgirl error=errorgirl+error

20、boy errorgirlrate=errorgirl/50 errorboyrate=errorboy/250 errorrate=error/l3 % 画图filename,pathname,filterindex = uigetfile(MALE.txt, 请读入男生训练集); fileAddrs = pathname,filename; A1 A2=textread(fileAddrs,%f%f); filename,pathname,filterindex = uigetfile(FEMALE.txt, 请读入女生训练集 ); fileAddrs = pathname,filenam

21、e; B1 B2=textread(fileAddrs,%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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 20 页 - - - - - - - - - for i=1:l1 x=A(1,i); y=A(2,i);%x是身高, y是体重 plot(x,y,R.); hold on end for i

22、=1:l2 x=B(1,i); y=B(2,i); plot(x,y,G.); hold on end a1=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是所有人中身高最大值end if a3b4 d=a4; else d=b4;%d为所

23、有人中体重最大值end x=a:0.01:b; y=(y0-x*w(1,1)/w(2,1); plot(x,y,B); hold on; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 20 页 - - - - - - - - - % 身高体重相关 , 判别测试样本% 自行输入先验概率P1=0.5; P2=0.5; FA=A; MA=B; a=cov(FA)*(length(FA)-1)/length(FA); b=cov(MA)*(length(MA)-1)/leng

24、th(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; e

25、zplot(h,130,200,30,100) % 功能:应用 Fisher 准则判断一个身高体重二维数据的性别vector=x;y; yy=(w.)*vector; if yyy0 value=2;%表示样本是男生else value=1;%表示样本是女生end % 功能:使用留一法求训练样本错误率A1 A2=textread(MALE.txt,%f%f); B1 B2=textread(FEMALE.txt,%f%f); AA=A1 A2; BB=B1 B2; A=AA; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师

26、精心整理 - - - - - - - 第 17 页,共 20 页 - - - - - - - - - B=BB; m1=2; m2=2; n1=50; n2=50; tempA=zeros(m1,n1-1); count=0; for i=1:n1 for j=1:(i-1) tempA(:,j)=A(:,j); end for j=(i+1):n1 tempA(:,j-1)=A(:,j); end w,y0=fisher(tempA.),BB); flag=classify_CH(A(1,i),A(2,i),w,y0); if flag=1 count=count+1; end end te

27、mpB=zeros(m2,n2-1); for i=1:n2 for j=1:(i-1) tempB(:,j)=B(:,j); end for j=(i+1):n2 tempB(:,j-1)=B(:,j); end w,y0=fisher(AA,(tempB.); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 20 页 - - - - - - - - - flag=classify_CH(B(1,i),B(2,i),w,y0); if flag=2 count=cou

28、nt+1; end end error_ratio=count/(n1+n2) % 使用留一法求测试样本错误率T1 T2=textread(test2.txt,%f%f%*s); TT=T1 T2; T=TT; k3 l3=size(T); TG=zeros(2,50); TB=zeros(2,250); for i=1:50 TG(:,i)=T(:,i); end for j=51:l3 TB(:,j-50)=T(:,j); end m1=2; m2=2; n1=50; n2=250; tempA=zeros(m1,n1-1); count=0; for i=1:n1 for j=1:(i-

29、1) tempA(:,j)=TG(:,j); end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 20 页 - - - - - - - - - for j=(i+1):n1 tempA(:,j-1)=TG(:,j); end w,y0=fisher(tempA.),TB); flag=classify_CH(TG(1,i),TB(2,i),w,y0); if flag=1 count=count+1; end end tempB=zeros(m2,n2-1); fo

30、r i=1:n2 for j=1:(i-1) tempB(:,j)=TB(:,j); end for j=(i+1):n2 tempB(:,j-1)=TB(:,j); end w,y0=fisher(TG,(tempB.); flag=classify_CH(TB(1,i),TB(2,i),w,y0); if flag=2 count=count+1; end end error_ratio=count/(n1+n2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 20 页 - - - - - - - - -

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

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁