您好,欢迎访问三七文档
--1--作业1用身高和/或体重数据进行性别分类(一)基本要求:用FAMALE.TXT和MALE.TXT的数据作为训练样本集,建立Bayes分类器,用测试样本数据对该分类器进行测试。调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。具体做法:1.应用单个特征进行实验:以(a)身高或者(b)体重数据作为特征,在正态分布假设下利用最大似然法或者贝叶斯估计法估计分布密度参数,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到测试样本,考察测试错误情况。在分类器设计时可以考察采用不同先验概率(如0.5对0.5,0.75对0.25,0.9对0.1等)进行实验,考察对决策规则和错误率的影响。图1-先验概率0.5:0.5分布曲线图2-先验概率0.75:0.25分布曲线图3--先验概率0.9:0.1分布曲线图4不同先验概率的曲线有图可以看出先验概率对决策规则和错误率有很大的影响。程序:bayesflq1.m和bayeszcx.m2.应用两个特征进行实验:同时采用身高和体重数据作为特征,分别假设二者相关或不相--2--关(在正态分布下一定独立),在正态分布假设下估计概率密度,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。比较相关假设和不相关假设下结果的差异。在分类器设计时可以考察采用不同先验概率(如0.5vs.0.5,0.75vs.0.25,0.9vs.0.1等)进行实验,考察对决策和错误率的影响。训练样本female来测试图1先验概率0.5vs.0.5图2先验概率0.75vs.0.25图3先验概率0.9vs.0.1图4不同先验概率对测试样本1进行试验得图--3--对测试样本2进行试验--4--有图可以看出先验概率对决策规则和错误率有很大的影响。程序bayesflq2.m和bayeszcx2.m3.自行给出一个决策表,采用最小风险的Bayes决策重复上面的某个或全部实验。设以ceshi1单个特征身高进行试验:决策表W1W2W100.7W20.30--5--closeall;clearall;X=120:0.1:200;%设置采样范围及精度pw1=0.9;pw2=0.1;%设置先验概率sample1=textread('FEMALE.txt')%读入样本samplew1=zeros(1,length(sample1(:,1)));u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1);%类条件概率分布figure(1);subplot(2,1,1);plot(X,y1);title('F身高类条件概率分布曲线');sample2=textread('MALE.txt')%读入样本samplew2=zeros(1,length(sample2(:,1)));u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2);%类条件概率分布subplot(2,1,2);plot(X,y2);title('M身高类条件概率分布曲线');P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);figure(2);subplot(2,1,1);plot(X,P1);title('F身高后验概率分布曲线');subplot(2,1,2);plot(X,P2);title('M身高后验概率分布曲线');--6--P11=pw1*y1;P22=pw2*y2;figure(3);subplot(3,1,1);plot(X,P11);subplot(3,1,2);plot(X,P22);subplot(3,1,3);plot(X,P11,X,P22);sample=textread('allsample.txt')%读入样本[result]=bayes(sample1(:,1),sample2(:,1),pw1,pw2);%bayes分类器function[result]=bayes(sample1(:,1),sample2(:,1),pw1,pw2);error1=0;error2=0;u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1);%类条件概率分布u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2);%类条件概率分布P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);fori=1:50ifP1(i)P2(i)result(i)=0;pe(i)=P2(i);elseresult(i)=1;pe(i)=P1(i);end--7--endfori=1:50ifresult(k)==0error1=error1+1;elseresult(k)=1error2=error2+1;endendratio=error1+error2/length(sample);%识别率,百分比形式sprintf('正确识别率为%.2f%%.',ratio)作业2用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。具体做法:同时采用身高和体重数据作为特征,用Fisher线性判别方法求分类器,将该分类器应用到训练和测试样本,考察训练和测试错误情况。将训练样本和求得的决策边界画到图上,同时把以往用Bayes方法求得的分类器也画到图上,比较结果的异同。解答:Clcclearallsample1=textread('FEMALE.txt')%读入样本sample2=textread('MALE.txt')%读入样本[length1,width1]=size(sample1);[length2,width2]=size(sample2);One1=ones(length1,1);One2=ones(length2,1);plot(sample1(:,1),sample1(:,2),'r*',sample2(:,1),sample2(:,2),'bo')--8--title('Famale和male身高体重聚类图');Y1=sample1(:,1:2);Y2=sample2(:,1:2);m1=mean(Y1);m2=mean(Y2);S1=(Y1-One1*m1)'*(Y1-One1*m1);S2=(Y2-One2*m2)'*(Y2-One2*m2);sw=S1+S2;ww=inv(sw);w=inv(sw)*(m1-m2)';Y=[Y1;Y2];z=Y*w;holdont=z*w'/norm(w)^2;plot(t(:,1),t(:,2))fori=1:length1+length2plot([Y(i,1)t(i,1)],[Y(i,2)t(i,2)],'-.')endaxis([12020040100])title('fisher线性变换后');grid--9--作业2图一作业2图二--10--利用K-L变换进行特征提取的实验一、基本要求用FAMALE.TXT和MALE.TXT的数据作为本次实验使用的样本集,利用K-L变换对该样本集进行变换,与过去用Fisher线性判别方法或其它方法得到的分类面进行比较,从而加深对所学内容的理解和感性认识。二、具体做法1.不考虑类别信息对整个样本集进行K-L变换(即PCA),并将计算出的新特征方向表示在二维平面上,考察投影到特征值最大的方向后男女样本的分布情况并用该主成分进行分类2.利用类平均向量提取判别信息,选取最好的投影方向,考察投影后样本的分布情况并用该投影方向进行分类。3.将上述投影和分类情况与以前做的各种分类情况比较,考察各自的特点和相互关系。三、实验原理K-L变换是一种基于目标统计特性的最佳正交变换。它具有一些优良的性质:即变换后产生的新的分量正交或者不相关;以部分新的分量表示原矢量均方误差最小;变换后的矢量更趋确定,能量更集中。这一方法的目的是寻找任意统计分布的数据集合之主要分量的子集。设n维矢量12,,,Tnxxxx,其均值矢量Eμx,协方差阵()TxECxu)(xu,此协方差阵为对称正定阵,则经过正交分解克表示为xTCUΛU,其中12,,,[]ndiagΛ,12,,,nuuuU为对应特征值的特征向量组成的变换阵,且满足1TUU。变换阵TU为旋转矩阵,再此变换阵下x变换为TxuyU,在新的正交基空间中,相应的协方差阵12[,,,]xndiagxUCUC。通过略去对应于若干较小特征值的特征向量来给y降维然后进行处理。通常情况下特征值幅度差别很大,忽略一些较小的值并不会引起大的误差。1.不考虑类别信息对整个样本集进行K-L变换(即PCA)(1)读入female.txt和male.txt两组数据,组成一个样本集。计算样本均值向量--11--uEx和协方差TxuxucE(2)计算协方差阵C的特征值和特征向量U(3)选取特征值最大的特征向量作为投影方向(4)选取阈值进行判断2.利用类平均信息提取判别信息(1)读入female.txt和male.txt两组数据,分别计算样本均值向量iuEx和协方差TixuxucE,及总均值向量122uuu(2)计算类间离散度矩阵Sb(21TbiiiiSpuuuu)与类内离散度矩阵Sww((21wiiiSP))(3)用TjbjjjuSuJX比较分类性能,选择最佳投影方向(4)选取阈值进行判断四、实验结果与分析1.不考虑类别信息对整个样本集进行K-L变换(即PCA)U=(0.6269,0.7791)T,P1=0.5,P2=0.5判错个数错误率采用K-L变换判别方法1414%采用Fisher线性判别方法1212%2.利用类平均信息提取判决信息U=(0.5818,0.8133)T,P1=0.5,P2=0.5判错个数错误率采用K-L变换判别方法1313%--12--采用Fisher线性判别方法1212%%不考虑类别信息clc;clearall;[FHFW]=textread('C:\Users\rengang\Desktop\homework\FEMALE.txt','%f%f');[MHMW]=textread('C:\Users\rengang\Desktop\homework\MALE.txt','%f%f');FA=[FHFW];FA=FA';MA=[MHMW];MA=MA';fork=1:50NT(:,k)=FA(:,k);endfork=51:100NT(:,k)=MA(:,k-50);endX=(sum(NT')/length(NT))';%这里NT'是一个100*2的矩阵,X为总样本均值。c=cov(NT');[u,v]=eig(c);%求矩阵c的全部特征值,构成对角阵v,并求c的特征向量构成u的列向量。[a,b]=max(v);[c,d]=max(a);U=u(:,d)x=U'*X;errorg=0;errorb=0;fork=1:100TT(:,k)=U'*NT(:,k);ifk=50ifTT(:,k)xerrorg=errorg+1;end--13--elseifTT(:,k)xerrorb=errorb+1;endendenderrorgerrorberror=errorg+errorbh=error/100%利用类平均信息clc;clearall;[FHFW]=textread('C:\Users\rengang\Desktop\h
本文标题:模式识别大作业汇总
链接地址:https://www.777doc.com/doc-1765120 .html