当前位置:文档之家› 模式识别——用身高和或体重数据进行性别分类

模式识别——用身高和或体重数据进行性别分类

用身高和/或体重数据进行性别分类1、【实验目的】(1)掌握最小错误率Bayes 分类器的决策规则 (2)掌握Parzen 窗法(3)掌握Fisher 线性判别方法 (4)熟练运用matlab 的相关知识。

2、【实验原理】(1)、最小错误率Bayes 分类器的决策规则如果在特征空间中观察到某一个(随机)向量x = ( x 1 , x 2 ,…, x d )T,已知类别状态的先验概率为:()i P w 和类别的条件概率密度为(|)1,2,3...i P x w i c =,根据Bayes 公式得到状态的后验概率 有:1(|)()(|)(|)()i i i cjjj p P P p P ωωωωω==∑x x x基本决策规则:如果1,...,(|)max (|)i j j cP P ωω==x x ,则i ω∈x ,将 x 归属后验概率最大的类别 。

(2)、掌握Parzen 窗法对于被估计点X :其估计概率密度的基本公式(x)Nk NN Np V =,设区域 R N 是以 h N 为棱长的 d 维超立方体,则立方体的体积为dNN V h =;选择一个窗函数(u)ϕ,落入该立方体的样本数为x x 1()iNNN h i k ϕ-==∑,点 x 的概率密度:x x 111(x)()Ni NNk NNN V h i Np V Nϕ-===∑其中核函数:x x 1i K(x,x )()i N NV h ϕ-=,满足的条件:i (1) K(x,x )0≥;i (2) K(x,x )dx 1=⎰。

(3)、Fisher 线性判别方法Fisher 线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。

Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。

线性判别函数的一般形式可表示成0)(w X W X g T += ,其中⎪⎪⎪⎭⎫⎝⎛=d x x X 1 ⎪⎪⎪⎪⎪⎭⎫⎝⎛=d w w w W 21 根据Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,用以评价投影方向W 的函数为:2221221~~)~~()(S S m m W J F +-= )(211*m m S W W -=-上面的公式是使用Fisher 准则求最佳法线向量的解,该式比较重要。

另外,该式这种形式的运算,我们称为线性变换,其中21m m -式一个向量,1-W S 是W S 的逆矩阵,如21m m -是d 维,W S 和1-W S 都是d ×d 维,得到的*W 也是一个d 维的向量。

向量*W 就是使Fisher 准则函数)(W J F 达极大值的解,也就是按Fisher 准则将d 维X 空间投影到一维Y 空间的最佳投影方向,该向量*W 的各分量值是对原d 维特征向量求加权和的权值。

以上讨论了线性判别函数加权向量W 的确定方法,并讨论了使Fisher 准则函数极大的d 维向量0W 的计算方法,但是判别函数中的另一项0W 尚未确定,一般可采用以下几种方法确定0W 如2~~210m m W +-= 或者 m N N m N m N W ~~~2122110=++-= 或当1)(ωp 与2)(ωp 已知时可用[]⎥⎦⎤⎢⎣⎡-+-+=2)(/)(ln 2~~2121210N N p p m m W ωω当W0确定之后,则可按以下规则分类:2010ωω∈→->∈→->X w X W X w X W TT3、【实验内容及要求】(1)、实验对象Datasetf1.TXT 女生的身高、体重数据 Datasetm1.TXT 男生的身高、体重数据----- 训练样本集Dataset1.txt 328个同学的身高、体重、性别数据 Dataset2.txt 124个同学的身高、体重、性别数据----- 测试样本集(2)基本要求:(1) 用Datasetf1.TXT 和Datasetm1.TXT 的数据作为训练样本集,建立Bayes 分类器,用测试样本数据对该分类器进行测试。

调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。

(试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较)(2) 试验非参数估计,体会与参数估计在适用情况、估计结果方面的异同。

4、【实验结果与分析】(1)、Bayes 分类器的实验结果与分析A 、对于Dataset1.txt 328个同学的身高、体重、性别数据的测试样本集:A1、当先验概率为:男0.5,女0.5时:身高分类错误个数: 15 身高分类错误率为: 12.10% 体重分类错误个数: 15 体重分类错误率为: 12.10%【实验结果:】A2、当先验概率为:男0.75,女0.25时:身高分类错误个数: 19 身高分类错误率为: 15.32%体重分类错误个数: 14 体重分类错误率为: 11.29%B、对于Dataset2.txt 124个同学的身高、体重、性别数据的测试样本集:B1、当先验概率为:男0.5,女0.5时:身高分类错误个数: 16 身高分类错误率为: 12.90%体重分类错误个数: 21 体重分类错误率为: 16.94%【实验结果:】B2、当先验概率为:男0.75,女0.25时:身高分类错误个数: 31 身高分类错误率为: 25.00% 体重分类错误个数: 35 体重分类错误率为: 28.23%【结果分析:】Dataset1.txt样本数据集中,男女先验概率为(0.71vs0.29);Dataset2.txt样本数据集中,男女先验概率为(0.66vs0.34)。

对比实验结果,可以发现身高的分类错误率都小于体重的分类错误率,样本集越大,各个特征对应的分类错误率就越小。

假设先验概率为(0.5vs0.5)的分类错误率小于假设先验概率为(0.75vs0.25)的分类集,就算假设的先验概率与实际的很相近,可是结果不准确。

程序框图导入样本数据计算二维正态分布参数求类条件概率密度计算先验概率和后验概率构成分类器测试训练样本结果判断满意不满意调整参数Bayes分类器源程序实验代码:clear all;load datasetf1.txt;load datasetm1.txt;%样本的分析figure;for i=1:250if(i<79)plot(datasetf1(i,2),datasetf1(i,1),'r+'); endplot(datasetm1(i,2),datasetm1(i,1),'k*'); hold on;endtitle('样本数据');xlabel('体重(Kg)'),ylabel('身高(cm)');legend('男生','女生');fid=fopen('dataset1.txt','r');test1=fscanf(fid,'%f %f %s',[3,inf]);test=test1';fclose(fid);Fmean = mean(datasetf1);Mmean = mean(datasetm1);Fvar = std(datasetf1);Mvar = std(datasetm1);preF = 0.5;preM = 0.5;error = 0;Nerror = 0;%身高的决策figure;for i = 1:124PFheight = normpdf(test(i,1),Fmean(1,1),Fvar(1,1)) ;PMheight = normpdf(test(i,1),Mmean(1,1),Mvar(1,1)) ;pFemale = preF*PFheight;pMale = preM*PMheight;if(pFemale<pMale)plot(i,test(i,1),'k*');if (test(i,3)=='f')Nerror = Nerror +1;endelseplot(i,test(i,1),'r+');if (test(i,3)=='M')Nerror = Nerror +1;endendhold on;end;error = Nerror/124*100;title('身高最小错误率Bayes分类');xlabel('测试序号'),ylabel('身高(cm)');sprintf('%s %d %s %0.2f%s','身高分类错误个数:',Nerror,'身高分类错误率为:',error,'%')%体重决策figure;error = 0;Nerror = 0;for j= 1:124PFweight = normpdf(test(j,2),Fmean(1,2),Fvar(1,2)) ;PMweight = normpdf(test(j,2),Mmean(1,2),Mvar(1,2)) ;pwFemale = preF*PFweight;pwMale = preM*PMweight;if(pwFemale<pwMale)plot(j,test(j,2),'k*');if (test(j,3)=='f')Nerror = Nerror +1;endelseplot(j,test(j,2),'r+');if (test(j,3)=='M')Nerror = Nerror +1;endendhold on;end;error = Nerror/124*100;title('体重最小错误率Bayes分类');xlabel('测试序号'),ylabel('体重(kg)');sprintf('%s %d %s %0.2f%s','体重分类错误个数:',Nerror,'体重分类错误率为:',error,'%')(2)、Parzen窗法的实验结果与分析(先验概率为0.5vs0.5)A、对于Dataset1.txt中有78个女生和250个男生,共328个同学的身高、体重、性别数据的测试样本集的结果:女生人数为:84;男生人数为:244;拒分人数:0;女生错分人数:4;男生错分人数:33;总的错分人数:37;女生分类错误率: 0.0800;男生分类错误率:0.1320;总的分类错误率:0.1128;B、对于Dataset2.txt中有40个女生和84个男生,共124个同学的身高、体重、性别数据的测试样本集:女生人数为:41;男生人数为:83;拒分人数:0;女生错分人数:15;男生错分人数:6;总的错分人数:21;女生分类错误率: 0.3000;男生分类错误率:0.0240 ;总的分类错误率: 0.1694 ;结果分析:Parzen窗法的分类结果比较准确,样本集越大,错误率就越小。

相关主题