当前位置:文档之家› 模式识别大作业

模式识别大作业

作业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.应用两个特征进行实验:同时采用身高和体重数据作为特征,分别假设二者相关或不相关(在正态分布下一定独立),在正态分布假设下估计概率密度,建立最小错误率Bayes 分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。

比较相关假设和不相关假设下结果的差异。

在分类器设计时可以考察采用不同先验概率(如0.5 vs. 0.5, 0.75 vs. 0.25, 0.9 vs. 0.1等)进行实验,考察对决策和错误率的影响。

训练样本female来测试图1先验概率0.5 vs. 0.5 图2先验概率0.75 vs. 0.25图3先验概率0.9 vs. 0.1 图4不同先验概率对测试样本1进行试验得图对测试样本2进行试验有图可以看出先验概率对决策规则和错误率有很大的影响。

程序bayesflq2.m和bayeszcx2.m 3.自行给出一个决策表,采用最小风险的Bayes决策重复上面的某个或全部实验。

W1 W2W1 0 0.7W2 0.3 0close all;clear all;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身高后验概率分布曲线');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('all sample.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);for i = 1:50if P1(i)>P2(i)result(i)=0;pe(i)=P2(i);elseresult(i)=1;pe(i)=P1(i);endendfor i=1:50if result(k)==0error1=error1+1;else result(k)=1error2=error2+1;endendratio = error1+error2/length(sample); %识别率,百分比形式sprintf('正确识别率为%.2f%%.',ratio)作业2 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。

具体做法:同时采用身高和体重数据作为特征,用Fisher线性判别方法求分类器,将该分类器应用到训练和测试样本,考察训练和测试错误情况。

将训练样本和求得的决策边界画到图上,同时把以往用Bayes方法求得的分类器也画到图上,比较结果的异同。

解答:Clcclear allsample1=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')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;hold ont = z*w'/norm(w)^2;plot(t(:,1), t(:,2))for i = 1:length1+length2plot([Y(i,1) t(i,1)], [Y(i,2) t(i,2)], '-.')endaxis([120 200 40 100])title('fisher线性变换后');grid作业2图一作业2图二利用K-L 变换进行特征提取的实验一、基本要求用FAMALE.TXT 和MALE.TXT 的数据作为本次实验使用的样本集,利用K-L 变换对该样本集进行变换,与过去用Fisher 线性判别方法或其它方法得到的分类面进行比较,从而加深对所学内容的理解和感性认识。

二、具体做法1. 不考虑类别信息对整个样本集进行K-L 变换(即PCA ),并将计算出的新特征方向表示在二维平面上,考察投影到特征值最大的方向后男女样本的分布情况并用该主成分进行分类2. 利用类平均向量提取判别信息,选取最好的投影方向,考察投影后样本的分布情况并用该投影方向进行分类。

3. 将上述投影和分类情况与以前做的各种分类情况比较,考察各自的特点和相互关系。

三、实验原理K-L 变换是一种基于目标统计特性的最佳正交变换。

它具有一些优良的性质:即变换后产生的新的分量正交或者不相关;以部分新的分量表示原矢量均方误差最小;变换后的矢量更趋确定,能量更集中。

这一方法的目的是寻找任意统计分布的数据集合之主要分量的子集。

设n 维矢量12,,,Tn x x x ⎡⎤⎣⎦=x L ,其均值矢量E ⎡⎤⎣⎦=μx ,协方差阵()Tx E ⎡⎤⎣⎦=--C x u)(x u ,此协方差阵为对称正定阵,则经过正交分解克表示为x =TC U ΛU ,其中12,,,[]n diag λλλ=ΛL ,12,,,n u u u ⎡⎤⎣⎦=U L 为对应特征值的特征向量组成的变换阵,且满足1T -=U U 。

变换阵T U 为旋转矩阵,再此变换阵下x 变换为()T -=x u y U ,在新的正交基空间中,相应的协方差阵12[,,,]x n diag λλλ==x UC U C L 。

通过略去对应于若干较小特征值的特征向量来给y 降维然后进行处理。

通常情况下特征值幅度差别很大,忽略一些较小的值并不会引起大的误差。

1.不考虑类别信息对整个样本集进行K-L 变换(即PCA )(1)读入female.txt 和male.txt 两组数据,组成一个样本集。

计算样本均值向量u E x ⎡⎤⎣⎦=和协方差()()T x u x u c E ⎡⎤--⎣⎦= (2)计算协方差阵C 的特征值Λ和特征向量U (3)选取特征值最大的特征向量作为投影方向 (4)选取阈值进行判断 2.利用类平均信息提取判别信息(1)读入female.txt 和male.txt 两组数据,分别计算样本均值向量i u E x ⎡⎤⎣⎦=和协方差()()Ti x u x u c E ⎡⎤--⎣⎦=,及总均值向量()122u u u += (2)计算类间离散度矩阵S b (()()()21Tb i i i i S p u u u u ω==--∑)与类内离散度矩阵S w(21w i i i S P ==∑∑)(3)用()T j b jj ju S u J X λ=比较分类性能,选择最佳投影方向(4)选取阈值进行判断 四、实验结果与分析1.不考虑类别信息对整个样本集进行K-L 变换(即PCA ) U=(0.6269,0.7791)T ,P 1=0.5, P 2=0.52.利用类平均信息提取判决信息 U=(0.5818,0.8133)T ,P 1=0.5, P 2=0.5%不考虑类别信息clc;clear all;[FH FW]=textread('C:\Users\rengang\Desktop\homework\FEMALE.txt','%f %f');[MH MW]=textread('C:\Users\rengang\Desktop\homework\MALE.txt','%f %f');FA=[FH FW];FA=FA';MA=[MH MW];MA=MA';for k=1:50NT(:,k)=FA(:,k);endfor k=51:100NT(:,k)=MA(:,k-50);endX=(sum(NT')/length(NT))';%这里NT'是一个100*2的矩阵,X为总样本均值。

相关主题