北工大模式识别基础课程作业

合集下载

模式识别大作业

模式识别大作业

一、问题描述现有sonar 和wdbc 这两个样本数据集,取一半数据作为训练样本集,其余数据作为测试样本集,通过编程实现分别用C 均值算法对测试样本集中的数据进行分类,进行10次分类求正确率的平均值。

二、算法描述1.初始化:选择c 个代表点,...,,321c p p p p2.建立c 个空间聚类表:C K K K ...,213.按照最小距离法则逐个对样本X 进行分类:),(),,(min arg J i iK x add p x j ∂=4.计算J 及用各聚类列表计算聚类均值,并用来作为各聚类新的代表点(更新代表点)5.若J 不变或代表点未发生变化,则停止。

否则转2.),(1∑∑=∈=ci K x i i p x J δ6.计算正确率:将dtat(i,1)与trueflag(i,1)(i=1~n )进行比较,统计正确分类的样本数,并计算正确率将上述过程循环10次,得到10次的正确率,并计算平均正确率ave算法流程图三、实验数据表1 实验数据四、实验结果表2 实验结果准确率(%)注:表中准确率是十次实验结果的平均值五、程序源码用C均值算法对sonar分类(对wdbc分类的代码与之类似)clc;clear;accuracy = 0;for i = 1:10data = xlsread('sonar.xls');data = data';%初始划分2个聚类rand(:,1:size(data,2)) = data(:,randperm(size(data,2))'); %使矩阵元素按列重排A(:,1) = rand(:,1);B(:,1) = rand(:,2); %选取代表点m = 1;n = 1;for i = 3:size(rand,2)temp1 = rand(:,i) - A(:,1);temp2 = rand(:,i) - B(:,1);temp1(61,:) = [];temp2(61,:) = []; %去掉标号后再计算距离if norm(temp1) < norm(temp2)m = m + 1; %A类中样本个数A(:,m) = rand(:,i);elsen = n + 1; %B类中样本个数B(:,n) = rand(:,i);endend%划分完成m1 = mean(A,2);m2 = mean(B,2);%计算JeJ = 0;for i = 1:mtemp = A(:,i) - m1;temp(61,:) = []; %去掉标号的均值J = J + norm(temp)^2;endfor i = 1:ntemp = B(:,i) - m2;temp(61,:) = [];J = J + norm(temp)^2;endtest = [A,B];N = 0; %Je不变的次数while N < m + nrarr = randperm(m + n); %产生1-208即所有样本序号的随机不重复序列向量y = test(:,rarr(1,1));if rarr(1,1) <= m %y属于A类时if m == 1continueelsetemp1 = y - m1;temp1(61,:) = [];temp2 = y - m2;temp2(61,:) = [];p1 = m / (m - 1) * norm(temp1);p2 = n / (n + 1) * norm(temp2);if p2 < p1test = [test,y];test(:,rarr(1,1)) = [];m = m - 1;n = n + 1;endendelse %y属于B类时if n == 1continueelsetemp1 = y - m1;temp1(61,:) = [];temp2 = y - m2;temp2(61,:) = [];p1 = m / (m + 1) * norm(temp1);p2 = n / (n - 1) * norm(temp2);if p1 < p2test = [y,test];test(:,rarr(1,1)) = [];m = m + 1;n = n - 1;endendendA(:,1:m) = test(:,1:m);B(:,1:n) = test(:,m + 1:m + n);m1 = mean(A,2);m2 = mean(B,2);%计算JetempJ = 0;for i = 1:mtemp = A(:,i) - m1;temp(61,:) = []; %去掉标号的均值tempJ = tempJ + norm(temp)^2;endfor i = 1:ntemp = B(:,i) - m2;temp(61,:) = [];tempJ = tempJ + norm(temp)^2;endif tempJ == JN = N + 1;elseJ = tempJ;endend %while循环结束%判断正确率correct = 0;false = 0;A(:,1:m) = test(:,1:m);B(:,1:n) = test(:,m + 1:m + n);c = mean(A,2);if abs(c(61,1) - 1) < abs(c(61,1) - 2) %聚类A中大多为1类元素for i = 1:mif A(61,i) == 1correct = correct + 1;elsefalse = false + 1;endendfor i = 1:nif B(61,i) == 2correct = correct + 1;elsefalse = false + 1;endendelse %聚类A中大多为2类元素for i = 1:mif A(61,i) == 2correct = correct + 1;elsefalse = false + 1;endendfor i = 1:nif B(61,i) == 1correct = correct + 1;elsefalse = false + 1;endendendaccuracy = accuracy + correct / (correct + false);endaver_accuracy = accuracy / 10fprintf('用C均值算法对sonar进行十次分类的结果的平均正确率为%.2d %%.\n',aver_accuracy*100)六.实验心得本算法确定的K 个划分到达平方误差最小。

模式识别大作业

模式识别大作业

模式识别大作业1.最近邻/k近邻法一.基本概念:最近邻法:对于未知样本x,比较x与N个已知类别的样本之间的欧式距离,并决策x与距离它最近的样本同类。

K近邻法:取未知样本x的k个近邻,看这k个近邻中多数属于哪一类,就把x归为哪一类。

K取奇数,为了是避免k1=k2的情况。

二.问题分析:要判别x属于哪一类,关键要求得与x最近的k个样本(当k=1时,即是最近邻法),然后判别这k个样本的多数属于哪一类。

可采用欧式距离公式求得两个样本间的距离s=sqrt((x1-x2)^2+(y1-y2)^2)三.算法分析:该算法中任取每类样本的一半作为训练样本,其余作为测试样本。

例如iris中取每类样本的25组作为训练样本,剩余25组作为测试样本,依次求得与一测试样本x距离最近的k 个样本,并判断k个样本多数属于哪一类,则x就属于哪类。

测试10次,取10次分类正确率的平均值来检验算法的性能。

四.MATLAB代码:最近邻算实现对Iris分类clc;totalsum=0;for ii=1:10data=load('iris.txt');data1=data(1:50,1:4);%任取Iris-setosa数据的25组rbow1=randperm(50);trainsample1=data1(rbow1(:,1:25),1:4);rbow1(:,26:50)=sort(rbow1(:,26:50));%剩余的25组按行下标大小顺序排列testsample1=data1(rbow1(:,26:50),1:4);data2=data(51:100,1:4);%任取Iris-versicolor数据的25组rbow2=randperm(50);trainsample2=data2(rbow2(:,1:25),1:4);rbow2(:,26:50)=sort(rbow2(:,26:50));testsample2=data2(rbow2(:,26:50),1:4);data3=data(101:150,1:4);%任取Iris-virginica数据的25组rbow3=randperm(50);trainsample3=data3(rbow3(:,1:25),1:4);rbow3(:,26:50)=sort(rbow3(:,26:50));testsample3=data3(rbow3(:,26:50),1:4);trainsample=cat(1,trainsample1,trainsample2,trainsample3);%包含75组数据的样本集testsample=cat(1,testsample1,testsample2,testsample3);newchar=zeros(1,75);sum=0;[i,j]=size(trainsample);%i=60,j=4[u,v]=size(testsample);%u=90,v=4for x=1:ufor y=1:iresult=sqrt((testsample(x,1)-trainsample(y,1))^2+(testsample(x,2) -trainsample(y,2))^2+(testsample(x,3)-trainsample(y,3))^2+(testsa mple(x,4)-trainsample(y,4))^2); %欧式距离newchar(1,y)=result;end;[new,Ind]=sort(newchar);class1=0;class2=0;class3=0;if Ind(1,1)<=25class1=class1+1;elseif Ind(1,1)>25&&Ind(1,1)<=50class2=class2+1;elseclass3=class3+1;endif class1>class2&&class1>class3m=1;ty='Iris-setosa';elseif class2>class1&&class2>class3m=2;ty='Iris-versicolor';elseif class3>class1&&class3>class2m=3;ty='Iris-virginica';elsem=0;ty='none';endif x<=25&&m>0disp(sprintf('第%d组数据分类后为%s类',rbow1(:,x+25),ty));elseif x<=25&&m==0disp(sprintf('第%d组数据分类后为%s类',rbow1(:,x+25),'none'));endif x>25&&x<=50&&m>0disp(sprintf('第%d组数据分类后为%s类',50+rbow2(:,x),ty));elseif x>25&&x<=50&&m==0disp(sprintf('第%d组数据分类后为%s类',50+rbow2(:,x),'none'));endif x>50&&x<=75&&m>0disp(sprintf('第%d组数据分类后为%s类',100+rbow3(:,x-25),ty));elseif x>50&&x<=75&&m==0disp(sprintf('第%d组数据分类后为%s类',100+rbow3(:,x-25),'none'));endif (x<=25&&m==1)||(x>25&&x<=50&&m==2)||(x>50&&x<=75&&m==3)sum=sum+1;endenddisp(sprintf('第%d次分类识别率为%4.2f',ii,sum/75));totalsum=totalsum+(sum/75);enddisp(sprintf('10次分类平均识别率为%4.2f',totalsum/10));测试结果:第3组数据分类后为Iris-setosa类第5组数据分类后为Iris-setosa类第6组数据分类后为Iris-setosa类第7组数据分类后为Iris-setosa类第10组数据分类后为Iris-setosa类第11组数据分类后为Iris-setosa类第12组数据分类后为Iris-setosa类第14组数据分类后为Iris-setosa类第16组数据分类后为Iris-setosa类第18组数据分类后为Iris-setosa类第19组数据分类后为Iris-setosa类第20组数据分类后为Iris-setosa类第23组数据分类后为Iris-setosa类第24组数据分类后为Iris-setosa类第26组数据分类后为Iris-setosa类第28组数据分类后为Iris-setosa类第30组数据分类后为Iris-setosa类第31组数据分类后为Iris-setosa类第34组数据分类后为Iris-setosa类第37组数据分类后为Iris-setosa类第39组数据分类后为Iris-setosa类第41组数据分类后为Iris-setosa类第44组数据分类后为Iris-setosa类第45组数据分类后为Iris-setosa类第49组数据分类后为Iris-setosa类第53组数据分类后为Iris-versicolor类第54组数据分类后为Iris-versicolor类第55组数据分类后为Iris-versicolor类第57组数据分类后为Iris-versicolor类第58组数据分类后为Iris-versicolor类第59组数据分类后为Iris-versicolor类第60组数据分类后为Iris-versicolor类第61组数据分类后为Iris-versicolor类第62组数据分类后为Iris-versicolor类第68组数据分类后为Iris-versicolor类第70组数据分类后为Iris-versicolor类第71组数据分类后为Iris-virginica类第74组数据分类后为Iris-versicolor类第75组数据分类后为Iris-versicolor类第77组数据分类后为Iris-versicolor类第79组数据分类后为Iris-versicolor类第80组数据分类后为Iris-versicolor类第84组数据分类后为Iris-virginica类第85组数据分类后为Iris-versicolor类第92组数据分类后为Iris-versicolor类第95组数据分类后为Iris-versicolor类第97组数据分类后为Iris-versicolor类第98组数据分类后为Iris-versicolor类第99组数据分类后为Iris-versicolor类第102组数据分类后为Iris-virginica类第103组数据分类后为Iris-virginica类第105组数据分类后为Iris-virginica类第106组数据分类后为Iris-virginica类第107组数据分类后为Iris-versicolor类第108组数据分类后为Iris-virginica类第114组数据分类后为Iris-virginica类第118组数据分类后为Iris-virginica类第119组数据分类后为Iris-virginica类第124组数据分类后为Iris-virginica类第125组数据分类后为Iris-virginica类第126组数据分类后为Iris-virginica类第127组数据分类后为Iris-virginica类第128组数据分类后为Iris-virginica类第129组数据分类后为Iris-virginica类第130组数据分类后为Iris-virginica类第133组数据分类后为Iris-virginica类第135组数据分类后为Iris-virginica类第137组数据分类后为Iris-virginica类第142组数据分类后为Iris-virginica类第144组数据分类后为Iris-virginica类第148组数据分类后为Iris-virginica类第149组数据分类后为Iris-virginica类第150组数据分类后为Iris-virginica类k近邻法对wine分类:clc;otalsum=0;for ii=1:10 %循环测试10次data=load('wine.txt');%导入wine数据data1=data(1:59,1:13);%任取第一类数据的30组rbow1=randperm(59);trainsample1=data1(sort(rbow1(:,1:30)),1:13);rbow1(:,31:59)=sort(rbow1(:,31:59)); %剩余的29组按行下标大小顺序排列testsample1=data1(rbow1(:,31:59),1:13);data2=data(60:130,1:13);%任取第二类数据的35组rbow2=randperm(71);trainsample2=data2(sort(rbow2(:,1:35)),1:13);rbow2(:,36:71)=sort(rbow2(:,36:71));testsample2=data2(rbow2(:,36:71),1:13);data3=data(131:178,1:13);%任取第三类数据的24组rbow3=randperm(48);trainsample3=data3(sort(rbow3(:,1:24)),1:13);rbow3(:,25:48)=sort(rbow3(:,25:48));testsample3=data3(rbow3(:,25:48),1:13);train_sample=cat(1,trainsample1,trainsample2,trainsample3);%包含89组数据的样本集test_sample=cat(1,testsample1,testsample2,testsample3);k=19;%19近邻法newchar=zeros(1,89);sum=0;[i,j]=size(train_sample);%i=89,j=13[u,v]=size(test_sample);%u=89,v=13for x=1:ufor y=1:iresult=sqrt((test_sample(x,1)-train_sample(y,1))^2+(test_sample(x ,2)-train_sample(y,2))^2+(test_sample(x,3)-train_sample(y,3))^2+( test_sample(x,4)-train_sample(y,4))^2+(test_sample(x,5)-train_sam ple(y,5))^2+(test_sample(x,6)-train_sample(y,6))^2+(test_sample(x ,7)-train_sample(y,7))^2+(test_sample(x,8)-train_sample(y,8))^2+( test_sample(x,9)-train_sample(y,9))^2+(test_sample(x,10)-train_sa mple(y,10))^2+(test_sample(x,11)-train_sample(y,11))^2+(test_samp le(x,12)-train_sample(y,12))^2+(test_sample(x,13)-train_sample(y, 13))^2); %欧式距离newchar(1,y)=result;end;[new,Ind]=sort(newchar);class1=0;class 2=0;class 3=0;for n=1:kif Ind(1,n)<=30class 1= class 1+1;elseif Ind(1,n)>30&&Ind(1,n)<=65class 2= class 2+1;elseclass 3= class3+1;endendif class 1>= class 2&& class1>= class3m=1;elseif class2>= class1&& class2>= class3m=2;elseif class3>= class1&& class3>= class2m=3;endif x<=29disp(sprintf('第%d组数据分类后为第%d类',rbow1(:,30+x),m));elseif x>29&&x<=65disp(sprintf('第%d组数据分类后为第%d类',59+rbow2(:,x+6),m));elseif x>65&&x<=89disp(sprintf('第%d组数据分类后为第%d类',130+rbow3(:,x-41),m));endif (x<=29&&m==1)||(x>29&&x<=65&&m==2)||(x>65&&x<=89&&m==3) sum=sum+1;endenddisp(sprintf('第%d次分类识别率为%4.2f',ii,sum/89));totalsum=totalsum+(sum/89);enddisp(sprintf('10次分类平均识别率为%4.2f',totalsum/10));第2组数据分类后为第1类第4组数据分类后为第1类第5组数据分类后为第3类第6组数据分类后为第1类第8组数据分类后为第1类第10组数据分类后为第1类第11组数据分类后为第1类第14组数据分类后为第1类第16组数据分类后为第1类第19组数据分类后为第1类第20组数据分类后为第3类第21组数据分类后为第3类第22组数据分类后为第3类第26组数据分类后为第3类第27组数据分类后为第1类第28组数据分类后为第1类第30组数据分类后为第1类第33组数据分类后为第1类第36组数据分类后为第1类第37组数据分类后为第1类第43组数据分类后为第1类第44组数据分类后为第3类第45组数据分类后为第1类第46组数据分类后为第1类第49组数据分类后为第1类第54组数据分类后为第1类第56组数据分类后为第1类第57组数据分类后为第1类第60组数据分类后为第2类第61组数据分类后为第3类第63组数据分类后为第3类第65组数据分类后为第2类第66组数据分类后为第3类第67组数据分类后为第2类第71组数据分类后为第1类第72组数据分类后为第2类第74组数据分类后为第1类第76组数据分类后为第2类第77组数据分类后为第2类第79组数据分类后为第3类第81组数据分类后为第2类第82组数据分类后为第3类第83组数据分类后为第3类第84组数据分类后为第2类第86组数据分类后为第2类第87组数据分类后为第2类第88组数据分类后为第2类第93组数据分类后为第2类第96组数据分类后为第1类第98组数据分类后为第2类第99组数据分类后为第3类第102组数据分类后为第2类第104组数据分类后为第2类第105组数据分类后为第3类第106组数据分类后为第2类第110组数据分类后为第3类第113组数据分类后为第3类第114组数据分类后为第2类第115组数据分类后为第2类第116组数据分类后为第2类第118组数据分类后为第2类第122组数据分类后为第2类第123组数据分类后为第2类第124组数据分类后为第2类第133组数据分类后为第3类第134组数据分类后为第3类第135组数据分类后为第2类第136组数据分类后为第3类第140组数据分类后为第3类第142组数据分类后为第3类第144组数据分类后为第2类第145组数据分类后为第1类第146组数据分类后为第3类第148组数据分类后为第3类第149组数据分类后为第2类第152组数据分类后为第2类第157组数据分类后为第2类第159组数据分类后为第3类第161组数据分类后为第2类第162组数据分类后为第3类第163组数据分类后为第3类第164组数据分类后为第3类第165组数据分类后为第3类第167组数据分类后为第3类第168组数据分类后为第3类第173组数据分类后为第3类第174组数据分类后为第3类2.Fisher线性判别法Fisher 线性判别是统计模式识别的基本方法之一。

模式识别作业三道习题

模式识别作业三道习题
1 ( x ) 1 ( x1 , x2 ) H 0 ( x1 ) H 0 ( x2 ) 1 2 ( x ) 2 ( x1 , x2 ) H 0 ( x1 ) H1 ( x2 ) 2 x2 3 ( x ) 3 ( x1 , x2 ) H 0 ( x1 ) H 2 ( x2 ) 4 x22 2 4 ( x ) 4 ( x1 , x2 ) H1 ( x1 ) H 0 ( x2 ) 2 x1 5 ( x ) 5 ( x1 , x2 ) H1 ( x1 ) H1 ( x2 ) 4 x1 x2 6 ( x ) 6 ( x1 , x2 ) H1 ( x1 ) H 2 ( x2 ) 2 x1 (4 x22 2) 7 ( x ) 7 ( x1 , x2 ) H 2 ( x1 ) H 0 ( x2 ) 4 x21 2 8 ( x ) 8 ( x1 , x2 ) H 2 ( x1 ) H1 ( x2 ) 2 x2 (4 x21 2) 9 ( x ) 9 ( x1 , x2 ) H 2 ( x1 ) H 2 ( x2 ) (4 x21 2)(4 x22 2)
K7 ( X ) K6 ( X ) 1 第八步:取 X 4 w2 , K 7 ( X 4 ) 32 0 ,故 0 K8 ( X ) K 7 ( X ) 0 第九步:取 X 1 w1 , K8 ( X 1 ) 32 0 ,故 1 K 9 ( X ) K8 ( X ) 0 第十步:取 X 2 w1 , K9 ( X 2 ) 32 0 ,故 1 K10 ( X ) K9 ( X )
2
K ( X , X k ) exp{ || X X k || 2} exp{[( x 1 xk 1) 2 ( x 2 xk 2 ) 2]} x1 X = x2 ,训练样本为 X k 。 其中

模式识别作业

模式识别作业

(1)先用C-均值聚类算法程序,并用下列数据进行聚类分析。

在确认编程正确后,采用蔡云龙书的附录B中表1的Iris数据进行聚类。

然后使用近邻法的快速算法找出待分样本X (设X样本的4个分量x1=x2=x3=x4=6;子集数l=3)的最近邻节点和3-近邻节点及X与它们之间的距离。

并建议适当对书中所述算法进行改进。

并分别画出流程图、写出算法及程序。

x1=(0,0) x2=(1,0) x3=(0,1) x4=(1,1) x5=(2,1) x6=(1,2) x7=(2,2) x8=(3,2) x9=(6,6) x10=(7,6) x11=(8,6) x12=(6,7) x13=(7,7) x14=(8,7) x15=(9,7) x16=(7,8) x17=(8,8) x18=(9,8) x19=(8,9) x20=(9,9)
(2)写一篇论文。

内容可以包含下面四个方面中的一个:
①新技术(如数据挖掘等)在模式识别中的应用;
②模式识别最新的研究方向;
③一个相关系统的分析;
④一个算法的优化;
(3)书142页,描述近邻法的快速算法,写个报告。

《模式识别》课程2019年度大作业

《模式识别》课程2019年度大作业

《模式识别》课程2019年度大作业注意事项:(请务必详细阅读所有注意事项)1.本作业发布时间2019.5.5,交作业时间:2018.5.30日第一节课下课后,第二节课上课前(即上午9点整)。

与平时作业不同,不允许迟交,迟交则成绩以0分计。

2.与平时作业不同,大作业只有研究生同学完成,保送本系的本科同学也需要完成,但其他本科生无需完成。

请在作业的开始部分写上姓名、学号,缺少该信息的,本次作业总分扣除10分。

如果是已经完成保送手续,先修研究生课程的本校本科生,请一定每次作业在姓名后加注“(本科保送)”,否则无法拿到学分。

3.与平时作业不同,作业评分以电子版为准。

需要提交代码,具体的提交要求请仔细阅读作业说明。

总体文件大小不超过5MB(可以提交压缩文件)。

上传地址为/。

初始用户名和密码为学号。

研究生学号以MP18开头的暂时无法登陆,可将电子版email给助教(wangguohua@, yik@),其余同学务必使用网站系统上传。

是否迟交以cslabcms系统的时间戳或电子邮件的时间戳为准。

大作业:1.仔细阅读以下网页的内容(/weixs/project/DDT/DDT.html),包括其中提供链接的英文论文,理解DDT方法的运行步骤。

2.自行实现DDT算法。

实现时可以参考上述网页提供的Matlab代码以加深对DDT方法的理解,但是不可以使用MatConvNet这一深度学习框架,除此以外的其余任意深度学习软件框架都可以使用。

3.如尚未有深度学习、CNN的编程经验,请搜索网络资源完成自学。

4.如有可供使用的GPU加速卡资源,可以自由使用。

如无这种资源,可在编程中指定使用CPU(即,不使用GPU)来完成计算。

DDT方法的计算量很小,使用CPU也可完成计算。

5.在上述网页提供下载的代码链接里有少量图片可供使用,利用这些图片完成DDT方法的学习,利用可视化技术(参考论文和代码)直观考察DDT方法的效果。

6.请提交完成上述任务的文档和代码,需提交的内容如下:a.说明文档:自行组织文档的格式,保证文档的内容能让助教清晰地理解你的代码运行环境、实现的主要思路、你通过实现并运行代码后对DDT方法的理解等。

模式识别_作业5

模式识别_作业5

作业一:试用感知器算法实现逻辑“或”的功能(初始加权值、阈值和训练速率系数可自己设定)答案:输入为k x 1、k x 2,输出为y k 。

当k x 1和k x 2均为0时,y k 为0,否则y k 为1。

设阈值θ=0.06,训练速率系数η=0.02,初始设置加权为058.0)0(1=w ,065.0)0(2=w 。

由于只有一个输出,得加权修正公式为:k k i i x n w n w ηδ+=+)()1(k k k y T -=δ第一步:w(0)=(0.058, 0.065),加入x 1=(0, 0),06.01221111-=-+=θx w x w s ,则y 1=0。

由于T 1=0,δ1= T 1- y 1=0,故w(1)=(0.058, 0.065)第二步:加入x 2=(0, 1),005.02222112=-+=θx w x w s ,则y 2=1。

由于T 2=1,δ1= T 1- y 1=0,故 w(2)=w(1)=(0.058, 0.065)第三步:加入x 3=(1, 0),002.0-3223113=-+=θx w x w s ,则y 3=0。

由于T 3=1,则δ3= T 3- y 3=1,故w(3)=w(2)+0.02(1)x 3=(0.078, 0.065)第四步:加入x 4=(1, 1),083.04224114=-+=θx w x w s ,则y 4=1。

由于T 4=1,则δ4= T 4- y 4=0,故w(4)=w(3)=(0.078, 0.065)第五步:加入x1=(0, 0),S1=-0.06,则y1=0。

由于T1=0,δ1=0,故w(5)=(0.078, 0.065)第六步:加入x2=(0, 1),S2=0.005,则y2=1。

由于T2=1,δ2=0,故w(6)=(0.078, 0.065)第七步:加入x3=(1, 0),S3=0.018,则y3=1。

由于T3=1,δ3=0,故w(7)=(0.078, 0.065)第八步:加入x4=(1, 1),S4=0.083,则y4=1。

模式识别大作业1

模式识别大作业1

模式识别大作业--fisher线性判别和近邻法学号:021151**姓名:**任课教师:张**I. Fisher线性判别A. fisher线性判别简述在应用统计方法解决模式识别的问题时,一再碰到的问题之一是维数问题.在低维空间里解析上或计算上行得通的方法,在高维里往往行不通.因此,降低维数就成为处理实际问题的关键.我们考虑把维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维.这样,必须找一个最好的,易于区分的投影线.这个投影变换就是我们求解的解向量.B.fisher线性判别的降维和判别1.线性投影与Fisher准则函数各类在维特征空间里的样本均值向量:,(1)通过变换映射到一维特征空间后,各类的平均值为:,(2)映射后,各类样本“类内离散度”定义为:,(3)显然,我们希望在映射之后,两类的平均值之间的距离越大越好,而各类的样本类内离散度越小越好。

因此,定义Fisher准则函数:(4)使最大的解就是最佳解向量,也就是Fisher的线性判别式。

2.求解从的表达式可知,它并非的显函数,必须进一步变换。

已知:,, 依次代入上两式,有:,(5)所以:(6)其中:(7)是原维特征空间里的样本类内离散度矩阵,表示两类均值向量之间的离散度大小,因此,越大越容易区分。

将(4.5-6)和(4.5-2)代入(4.5-4)式中:(8)其中:,(9)因此:(10)显然:(11)称为原维特征空间里,样本“类内离散度”矩阵。

是样本“类内总离散度”矩阵。

为了便于分类,显然越小越好,也就是越小越好。

将上述的所有推导结果代入表达式:可以得到:其中,是一个比例因子,不影响的方向,可以删除,从而得到最后解:(12)就使取得最大值,可使样本由维空间向一维空间映射,其投影方向最好。

是一个Fisher线性判断式.这个向量指出了相对于Fisher准则函数最好的投影线方向。

C.算法流程图左图为算法的流程设计图。

II.近邻法A. 近邻法线简述K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。

大学模式识别考试题及答案详解完整版

大学模式识别考试题及答案详解完整版

大学模式识别考试题及答案详解HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】一、填空与选择填空(本题答案写在此试卷上,30分)1、模式识别系统的基本构成单元包括:模式采集、特征提取与选择和模式分类。

2、统计模式识别中描述模式的方法一般使用特真矢量;句法模式识别中模式描述方法一般有串、树、网。

3、聚类分析算法属于(1);判别域代数界面方程法属于(3)。

(1)无监督分类 (2)有监督分类(3)统计模式识别方法(4)句法模式识别方法4、若描述模式的特征量为0-1二值特征量,则一般采用(4)进行相似性度量。

(1)距离测度(2)模糊测度(3)相似测度(4)匹配测度5、下列函数可以作为聚类分析中的准则函数的有(1)(3)(4)。

(1)(2) (3)(4)6、Fisher线性判别函数的求解过程是将N维特征矢量投影在(2)中进行。

(1)二维空间(2)一维空间(3)N-1维空间7、下列判别域界面方程法中只适用于线性可分情况的算法有(1);线性可分、不可分都适用的有(3)。

(1)感知器算法(2)H-K算法(3)积累位势函数法8、下列四元组中满足文法定义的有(1)(2)(4)。

(1)({A, B}, {0, 1}, {A01, A 0A1 , A 1A0 , B BA , B 0}, A)(2)({A}, {0, 1}, {A0, A 0A}, A)(3)({S}, {a, b}, {S 00S, S 11S, S 00, S 11}, S)(4)({A}, {0, 1}, {A01, A 0A1, A 1A0}, A)二、(15分)简答及证明题(1)影响聚类结果的主要因素有那些?(2)证明马氏距离是平移不变的、非奇异线性变换不变的。

答:(1)分类准则,模式相似性测度,特征量的选择,量纲。

(2)证明:(2分)(2分)(1分)设,有非奇异线性变换:(1分)(4分)三、(8分)说明线性判别函数的正负和数值大小在分类中的意义并证明之。

模式识别_作业1

模式识别_作业1

作业一:作业二:对如下5个6维模式样本,用最小聚类准则进行系统聚类分析: x 1: 0, 1, 3, 1, 3, 4 x 2: 3, 3, 3, 1, 2, 1 x 3: 1, 0, 0, 0, 1, 1 x 4: 2, 1, 0, 2, 2, 1 x 5: 0, 0, 1, 0, 1, 01、 计算D (0)=⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛0 12 3 5 2612 0 7 15 243 7 0 24 55 15 24 0 2326 24 5 23 0,因为x3与x5的距离最近,则将x3与x5分为一类。

同时可以求出x1,x2,x4与x3,5的距离,如x1到x3,5的距离为x1到x3的距离与x1与x5的距离中取最小的一个距离。

2、 则D (1)=⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛0 7 15 2470 24 515 24 0 2324 5 23 0,同样现在该矩阵中x4与x3,5的距离最近,则可以将x3,4,5分为一类,这样分类结束,总共可以将x1,x2,x3,x4,x5分为三类,其中:x1为第一类;x2为第二类;x3和x4和x5为第三类。

• 作业三:(K-均值算法)• 选k=2,z 1(1)=x 1,z 2(1)=x 10,用K-均值算法进行聚类分析由图可以看出这二十个点的坐标:x1(0,0),x2(1,0),x3(0,1),x4(1,1),x5(2,1),x6(1,2),x7(2,2),x8( 3,2),x9(6,6),x10(7,6),x11(8,6),x12(6,7),x13(7,7),x14(8,7),x 15(9,7),x16(7,8),x17(8,8),x18(9,8),x19(8,9),x20(9,9)。

1、选2个初始聚类中心,z1(1)=x1,z2(1)=x10.2、求取其它十八个点分别到x1与x10的距离:x2到x1的距离为1;x2到x10的距离为6x3到x1的距离为1;x3到x10的距离为x4到x1的距离为;x4到x10的距离为x5到x1的距离为;x5到x10的距离为5x6到x1的距离为;x6到x10的距离为x7到x1的距离为2;x7到x10的距离为x8到x1的距离为;x8到x10的距离为4x9到x1的距离为6;x9到x10的距离为1x11到x1的距离为10;x11到x10的距离为1x12到x1的距离为;x12到x10的距离为x13到x1的距离为7;x13到x10的距离为1x14到x1的距离为;x14到x10的距离为x15到x1的距离为;x15到x10的距离为x16到x1的距离为;x16到x10的距离为2x17到x1的距离为8;x17到x10的距离为x18到x1的距离为;x18到x10的距离为2x19到x1的距离为;x19到x10的距离为x20到x1的距离为9;x20到x10的距离为所以其中x2到x8距离x1近些,则可以将x2到x8与x1分为一类,而x9与x11到x20与x10分为另一类;3、通过将第一类中的所有x1到x8的坐标求取平均来计算该类别的中心坐标,求取新的类别的中心坐标z1(2)= (5/4,9/8),同理可以求出另一类的中心坐标z2(2)= (92/12,22/3)4、然后重新计算各点距离这二点中心坐标的距离,最后可以得出x1到x8仍然为第一类,x9到x20仍然为第二类。

模式识别作业

模式识别作业

第二章主要内容:几种常见的聚类算法已经所使用的准则函数。

作业1:对如下5个6维模式样本,用最小聚类准则进行系统聚类分析 已知样本如下:x1: 0, 1, 3, 1, 3, 4;x2: 3, 3, 3, 1, 2, 1;x3: 1, 0, 0, 0, 1, 1;x4: 2, 1, 0, 2, 2, 1;x5: 0, 0, 1, 0, 1, 0 第1步:将每一样本看成单独一类,得(0)(0)(0)112233(0)(0)4455{},{},{}{},{}G x G x G x Gx Gx =====计算各类之间的欧式距离,可得距离矩阵(0)D第2步:矩阵(0)D,它是(0)3G 和(0)5G 之间的距离,将他们合并为一类,得新的分类为(1)(0)(1)(0)(1)(0)(0)(1)(0)112233544{},{},{,},{}G G G G G G G G G ====计算聚类后的距离矩阵(1)D 第3步:由于(1)D 它是(1)3G 与(1)4G 之间的距离,于是合并(1)3G 和(1)4G ,得新的分类为(2)(1)(2)(2)(2)(1)(1)1122334{},{},{,}G G G G G G G ===同样,按最小距离准则计算距离矩阵(2)D,得第4步:同理得(3)(2)(3)(2)(2)11223{},{,}G G G G G == 满足聚类要求,如聚为2类,聚类完毕。

系统聚类算法介绍:第一步:设初始模式样本共有N 个,每个样本自成一类,即建立N 类。

G 1(0), G 2(0) , ……,G N (0)为计算各类之间的距离(初始时即为各样本间的距离),得到一个N*N 维的距离矩阵D(0)。

这里,标号(0)表示聚类开始运算前的状态。

第二步:假设前一步聚类运算中已求得距离矩阵D(n),n 为逐次聚类合并的次数,则求D(n)中的最小元素。

如果它是Gi(n)和Gj(n)两类之间的距离,则将Gi(n)和Gj(n)两类合并为一类G ij (n+1),由此建立新的分类:G 1(n+1), G 2(n+1)……第三步:计算合并后新类别之间的距离,得D(n+1)。

模式识别大作业

模式识别大作业

模式识别大作业(总21页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--作业1 用身高和/或体重数据进行性别分类(一)基本要求:用和的数据作为训练样本集,建立Bayes分类器,用测试样本数据对该分类器进行测试。

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

具体做法:1.应用单个特征进行实验:以(a)身高或者(b)体重数据作为特征,在正态分布假设下利用最大似然法或者贝叶斯估计法估计分布密度参数,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到测试样本,考察测试错误情况。

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

图1-先验概率:分布曲线图2-先验概率:分布曲线图3--先验概率:分布曲线图4不同先验概率的曲线有图可以看出先验概率对决策规则和错误率有很大的影响。

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

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

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

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

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

W1W2W10W20close all;clear all;X=120::200; %设置采样范围及精度pw1=;pw2=; %设置先验概率sample1=textread('') %读入样本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('') %读入样本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 ') %读入样本[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 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。

模式识别_作业4

模式识别_作业4

第五章作业: 作业一:设有如下三类模式样本集ω1,ω2和ω3,其先验概率相等,求S w 和S bω1:{(1 0)T , (2 0) T , (1 1) T } ω2:{(-1 0)T , (0 1) T , (-1 1) T }ω3:{(-1 -1)T , (0 -1) T , (0 -2) T }答案:由于三类样本集的先验概率相等,则概率均为1/3。

多类情况的类内散布矩阵,可写成各类的类内散布矩阵的先验概率的加权和,即:∑∑===--=cii i Ti i cii w C m x m x E P S 11}|))(({)(ωω 其中C i 是第i 类的协方差矩阵。

其中1m =,2m =则=++=321S w w w w S S S 1/3++=类间散布矩阵常写成:Ti i cii b m m m m P S ))(()(001--=∑=ω其中,m 0为多类模式(如共有c 类)分布的总体均值向量,即:c i m P x E m i cii i ,,2,1,,)(}{10 =∀==∑=ωω0m ==则Ti i cii b m m m m P S ))(()(001--=∑=ω=++=作业二:设有如下两类样本集,其出现的概率相等:ω1:{(0 0 0)T , (1 0 0) T ,(1 0 1) T , (1 1 0) T }ω2:{(0 0 1)T , (0 1 0) T ,(0 1 1) T , (1 1 1) T }用K-L 变换,分别把特征空间维数降到二维和一维,并画出样本在该空间中的位置。

答案:=+=∑∑==iiN jj N jj x x m 1211)4141(21将所有这些样本的各分量都减去0.5,便可以将所有这些样本的均值移到原点,即(0,0,0)点。

新得到的两类样本集为:ω1:{(-0.5-0.5-0.5)T , (0.5-0.5-0.5) T ,(0.5-0.50.5) T , (0.50.5-0.5) T }ω2:{(-0.5-0.50.5)T , (-0.50.5-0.5) T ,(-0.50.50.5) T , (0.50.50.5) T }I 25.041214121}{)(4122411121=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡==∑∑∑===j T j j j Tjj i Ti x x x x xx E P R ω解特征值方程|R-λI|=0,求R 的特征值。

模式识别_作业2

模式识别_作业2

作业一:在一个10类的模式识别问题中,有3类单独满足多类情况1,其余的类别满足多类情况2。

问该模式识别问题所需判别函数的最少数目是多少?答案:将10类问题可看作4类满足多类情况1的问题,可将3类单独满足多类情况1的类找出来,剩下的7类全部划到4类中剩下的一个子类中。

再在此子类中,运用多类情况2的判别法则进行分类,此时需要7*(7-1)/2=21个判别函数。

故共需要4+21=25个判别函数。

作业二:一个三类问题,其判别函数如下:d1(x)=-x1, d2(x)=x1+x2-1, d3(x)=x1-x2-11. 设这些函数是在多类情况1条件下确定的,绘出其判别界面和每一个模式类别的区域。

2. 设为多类情况2,并使:d12(x)= d1(x), d13(x)= d2(x), d23(x)=d3(x)。

绘出其判别界面和多类情况2的区域。

3. 设d1(x), d2(x)和d3(x)是在多类情况3的条件下确定的,绘出其判别界面和每类的区域。

答案:123作业三:两类模式,每类包括5个3维不同的模式,且良好分布。

如果它们是线性可分的,问权向量至少需要几个系数分量?假如要建立二次的多项式判别函数,又至少需要几个系数分量?(设模式的良好分布不因模式变化而改变。

)答案:如果它们是线性可分的,则至少需要4个系数分量;如果要建立二次的多项式判别函数,则至少需要个系数分量。

作业四:用感知器算法求下列模式分类的解向量w:ω1: {(0 0 0)T, (1 0 0)T, (1 0 1)T, (1 1 0)T}ω2: {(0 0 1)T, (0 1 1)T, (0 1 0)T, (1 1 1)T}答案:将属于ω2的训练样本乘以(-1),并写成增广向量的形式。

x①=(0 0 0 1)T,x②=(1 0 0 1)T,x③=(1 0 1 1)T,x④=(1 1 0 1)Tx⑤=(0 0 -1 -1)T,x⑥=(0 -1 -1 -1)T,x⑦=(0 -1 0 -1)T,x⑧=(-1 -1 -1 -1)T第一轮迭代:取C=1,w(1)=(0 0 0 0)T因wT(1)x① =(0 0 0 0)(0 0 0 1)T=0≯0,故w(2)=w(1)+x①=(0 0 0 1)因wT(2)x②=(0 0 0 1)(1 0 0 1)T =1>0,故w(3)=w(2)=(0 0 0 1)T因wT(3)x③=(0 0 0 1)(1 0 1 1)T=1>0,故w(4)=w(3)=(0 0 0 1)T因wT(4)x④=(0 0 0 1)(1 1 0 1)T=1>0,故w(5)=w(4)=(0 0 0 1)T因wT(5)x⑤=(0 0 0 1)(0 0 -1 -1)T=-1≯0,故w(6)=w(5)+x⑤=(0 0 -1 0)T因wT(6)x⑥=(0 0 -1 0)(0 -1 -1 -1)T=1>0,故w(7)=w(6)=(0 0 -1 0)T因wT(7)x⑦=(0 0 -1 0)(0 -1 0 -1)T=0≯0,故w(8)=w(7)+x⑦=(0 -1 -1 -1)T因wT(8)x⑧=(0 -1 -1 -1)(-1 -1 -1 -1)T=3>0,故w(9)=w(8)=(0 -1 -1 -1)T因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第二轮迭代。

实验指导书(模式识别)

实验指导书(模式识别)

《模式识别》实验指导书河北工业大学信息工程学院《模式识别》课程组2008年1月前言模式识别是电子信息工程专业的一门重要的专业选修课。

其目的是通过对模式识别基本理论、概念和方法的学习,使学生能够灵活运用所学知识,借助计算机解决实际工程应用中的自动识别问题。

而模式识别实验是本门课程重要的教学环节,其目的是使学生掌握统计模式识别中常见分类方法的算法设计及其验证方法,通过接受实验的训练,以提高学生的分析和解决问题的能力。

为此,河北工业大学信息工程学院编写了《模式识别实验指导书》。

在编写中由于可供参考的实验指导资料有限,因此本书肯定存在不少不妥之处,恳请读者予以批评指正。

本实验指导书共包含三个实验。

第一个实验为安装并使用模式识别工具箱,通过本次实验可以让学生了解模式识别软件的具体形态、基本设置以及运行流程,了解一些基本识别方法的工作过程。

第二个实验为用人工神经网络对二维样本进行分类,通过本次实验可以让学生掌握人工神经网络的运行机理,了解神经网络在解决实际问题时如何进行参数设置和模型选择。

第三个实验为用支持向量机进行人脸识别,通过本次实验可以让学生掌握支持向量机的运行机理、参数选择与快速算法等,了解在实际分类中学习样本库的重要性。

目录实验一安装并使用模式识别工具箱----------------------------------------------------------4 实验二用人工神经网络对二维样本分类---------------------------------------------------13 实验三用支持向量机进行人脸识别---------------------------------------------------------22实验一安装并使用模式识别工具箱(2学时)一、实验目的1.掌握安装模式识别工具箱的技巧,能熟练使用工具箱中的各项功能;2.熟练使用最小错误率贝叶斯决策器对样本分类;3.熟练使用感知准则对样本分类;4.熟练使用最小平方误差准则对样本分类;5.了解近邻法的分类过程,了解参数K值对分类性能的影响(选做);6.了解不同的特征提取方法对分类性能的影响(选做)。

模式识别_作业3

模式识别_作业3

作业一:设以下模式类别具有正态概率密度函数: ω1:{(0 0)T , (2 0)T , (2 2)T , (0 2)T }ω2:{(4 4)T , (6 4)T , (6 6)T , (4 6)T }(1)设P(ω1)= P(ω2)=1/2,求这两类模式之间的贝叶斯判别界面的方程式。

(2)绘出判别界面。

答案:(1)模式的均值向量m i 和协方差矩阵C i 可用下式估计:2,111==∑=i x N m i N j ij i i2,1))((11=--=∑=i m x m x N C i N j Ti ij i ij i i 其中N i 为类别ωi 中模式的数目,x ij 代表在第i 个类别中的第j 个模式。

由上式可求出:T m )11(1= T m )55(2= ⎪⎪⎭⎫ ⎝⎛===1 00 121C C C ,⎪⎪⎭⎫⎝⎛=-1 00 11C 设P(ω1)=P(ω2)=1/2,因C 1=C 2,则判别界面为:24442121)()()(2121211112121=+--=+--=----x x m C m m C m x C m m x d x d T T T(2)作业二:编写两类正态分布模式的贝叶斯分类程序。

程序代码:#include<iostream>usingnamespace std;void inverse_matrix(int T,double b[5][5]){double a[5][5];for(int i=0;i<T;i++)for(int j=0;j<(2*T);j++){ if (j<T)a[i][j]=b[i][j];elseif (j==T+i)a[i][j]=1.0;elsea[i][j]=0.0;}for(int i=0;i<T;i++){for(int k=0;k<T;k++){if(k!=i){double t=a[k][i]/a[i][i];for(int j=0;j<(2*T);j++){double x=a[i][j]*t;a[k][j]=a[k][j]-x;}}}}for(int i=0;i<T;i++){double t=a[i][i];for(int j=0;j<(2*T);j++)a[i][j]=a[i][j]/t;}for(int i=0;i<T;i++)for(int j=0;j<T;j++)b[i][j]=a[i][j+T];}void get_matrix(int T,double result[5][5],double a[5]) {for(int i=0;i<T;i++){for(int j=0;j<T;j++){result[i][j]=a[i]*a[j];}}}void matrix_min(int T,double a[5][5],int bb){for(int i=0;i<T;i++){for(int j=0;j<T;j++)a[i][j]=a[i][j]/bb;}}void getX(int T,double res[5],double a[5],double C[5][5]) {for(int i=0;i<T;i++)double sum=0.0;for(int j=0;j<T;j++)sum+=a[j]*C[j][i];res[i]=sum;}}int main(){int T;int w1_num,w2_num;double w1[10][5],w2[10][5],m1[5]={0},m2[5]={0},C1[5][5]={0},C2[5][5]={0};cin>>T>>w1_num>>w2_num;for(int i=0;i<w1_num;i++){for(int j=0;j<T;j++){cin>>w1[i][j];m1[j]+=w1[i][j];}}for(int i=0;i<w2_num;i++){for(int j=0;j<T;j++){cin>>w2[i][j];m2[j]+=w2[i][j];}}for(int i=0;i<w1_num;i++)m1[i]=m1[i]/w1_num;for(int i=0;i<w2_num;i++)m2[i]=m2[i]/w2_num;for(int i=0;i<w1_num;i++){double res[5][5],a[5];for(int j=0;j<T;j++)a[j]=w1[i][j]-m1[j];get_matrix(T,res,a);for(int j=0;j<T;j++){for(int k=0;k<T;k++)C1[j][k]+=res[j][k];}matrix_min(T,C1,w1_num);for(int i=0;i<w2_num;i++){double res[5][5],a[5];for(int j=0;j<T;j++)a[j]=w2[i][j]-m2[j];get_matrix(T,res,a);for(int j=0;j<T;j++){for(int k=0;k<T;k++)C2[j][k]+=res[j][k];}}matrix_min(T,C2,w2_num);inverse_matrix(T,C1);inverse_matrix(T,C2);double XX[5]={0},C_C1[5]={0},C_C2[5]={0};double m1_m2[5];for(int i=0;i<T;i++){m1_m2[i]=m1[i]-m2[i];}getX(T,XX,m1_m2,C1);getX(T,C_C1,m1,C1);getX(T,C_C2,m2,C1);double resultC=0.0;for(int i=0;i<T;i++)resultC-=C_C1[i]*C_C1[i];for(int i=0;i<T;i++)resultC+=C_C2[i]*C_C2[i];resultC=resultC/2;cout<<"判别函数为:"<<endl;cout<<"d1(x)-d2(x)=";for(int i=0;i<T;i++)cout<<XX[i]<<"x"<<i+1;if(resultC>0)cout<<"+"<<resultC<<endl;elseif(resultC<0)cout<<resultC<<endl;return 0;}运行截图:。

模式识别习题及答案-精品资料

模式识别习题及答案-精品资料

第一章绪论1 •什么是模式?具体事物所具有的信息。

模式所指的不是事物本身,而是我们从事物中获得的—信息__。

2. 模式识别的定义? 让计算机来判断事物。

3. 模式识别系统主要由哪些部分组成? 数据获取一预处理一特征提取与选择一分类器设计/分类决策。

第二章贝叶斯决策理论P ( W 2 ) / p ( w 1 ) _,贝V X1. 最小错误率贝叶斯决策过程?答:已知先验概率,类条件概率。

利用贝叶斯公式 得到后验概率。

根据后验概率大小进行决策分析。

2 .最小错误率贝叶斯分类器设计过程?答:根据训练数据求出先验概率P ( W i ), i类条件概率分布p ( x | W i ), i 1 , 2 利用贝叶斯公式得到后验概率P (W i | x)P(X | W j )P(W j )j 1如果输入待测样本 X ,计算X 的后验概率根据后验概率大小进行分类决策分析。

3. 最小错误率贝叶斯决策规则有哪几种常用的表示形式?决策规则的不同形式(董点)C1^ 如vr, | JV ) = max 戶(vr ] WJ A * U vtvEQ 如杲尹a H ; )2^(ir, ) = max |沪0輕』),则x e HpCx |=尸4 "J"匕< 4) 如!4i= — 1IL | /( JV )] = — 111 戸(兀 | w”. ) -+- 11111r a4. 贝叶斯决策为什么称为最小错误率贝叶斯决策?答:最小错误率Bayes 决策使得每个观测值下的条件错误率最小因而保证了 (平均)错误率最小。

Bayes 决策是最优决策:即,能使决策错误率最小。

5 .贝叶斯决策是 由先验概率和(类条件概率)概率,推导(后验概率)概率,然后利用这 个概率进行决策。

6.利用乘法法则和全概率公式证明贝叶斯公式p(AB) p(A|B)p(B) p(B|A)p(A)P (A」B )答:m所以推出贝叶斯公式p(B) p(B|Aj)p(Aj)j 17. 朴素贝叶斯方法的条件独立D (1P (x | W i ) P(W i )i i入)2P(x | W j ) P (w j )j 11 ,2P (x | W i )P(W i )如果 I (x)P(B |A i )P(AJ P ( B ) P ( B | A i ) P ( A i ) 7MP ( B | A j ) P ( A j )2假设是( P(x| 3 i) =P(x1, x2, …,xn | co i)19.=P(x1|3 i) P(x2| 3 i)…P(xn| 3 i))8•怎样利用朴素贝叶斯方法获得各个属性的类条件概率分布?答:假设各属性独立,P(x| 3 i) =P(x1, x2, …,xn |3 i) = P(x1| 3 i) P(x2| 3 i)P(xn| 3 i)后验概率:P( 3 i|x) = P( 3 i) P(x1|3 i) P(x2| 3 i)…P(xn| 3 i)类别清晰的直接分类算,如果是数据连续的,假设属性服从正态分布,算出每个类的均值方 差,最后得到类条件概率分布。

模式识别作业(全)

模式识别作业(全)

模式识别大作业一.K均值聚类(必做,40分)1.K均值聚类的基本思想以及K均值聚类过程的流程图;2.利用K均值聚类对Iris数据进行分类,已知类别总数为3。

给出具体的C语言代码,并加注释。

例如,对于每一个子函数,标注其主要作用,及其所用参数的意义,对程序中定义的一些主要变量,标注其意义;3.给出函数调用关系图,并分析算法的时间复杂度;4.给出程序运行结果,包括分类结果(只要给出相对应的数据的编号即可)以及循环迭代的次数;5.分析K均值聚类的优缺点。

二.贝叶斯分类(必做,40分)1.什么是贝叶斯分类器,其分类的基本思想是什么;2.两类情况下,贝叶斯分类器的判别函数是什么,如何计算得到其判别函数;3.在Matlab下,利用mvnrnd()函数随机生成60个二维样本,分别属于两个类别(一类30个样本点),将这些样本描绘在二维坐标系下,注意特征值取值控制在(-5,5)范围以内;4.用样本的第一个特征作为分类依据将这60个样本进行分类,统计正确分类的百分比,并在二维坐标系下将正确分类的样本点与错误分类的样本点用不同标志(正确分类的样本点用“O”,错误分类的样本点用“X”)画出来;5.用样本的第二个特征作为分类依据将这60个样本再进行分类,统计正确分类的百分比,并在二维坐标系下将正确分类的样本点与错误分类的样本点用不同标志画出来;6.用样本的两个特征作为分类依据将这60个样本进行分类,统计正确分类的百分比,并在二维坐标系下将正确分类的样本点与错误分类的样本点用不同标志画出来;7.分析上述实验的结果。

8.60个随即样本是如何产生的的;给出上述三种情况下的两类均值、方差、协方差矩阵以及判别函数;三.特征选择(选作,15分)1.经过K均值聚类后,Iris数据被分作3类。

从这三类中各选择10个样本点;2.通过特征选择将选出的30个样本点从4维降低为3维,并将它们在三维的坐标系中画出(用Excell);3.在三维的特征空间下,利用这30个样本点设计贝叶斯分类器,然后对这30个样本点利用贝叶斯分类器进行判别分类,给出分类的正确率,分析实验结果,并说明特征选择的依据;。

大学模式识别考试习题及答案详解

大学模式识别考试习题及答案详解

一、填空与选择填空(本题答案写在此试卷上,30分)1、模式识别系统的基本构成单元包括:模式采集、特征提取与选择和模式分类。

2、统计模式识别中描述模式的方法一般使用特真矢量;句法模式识别中模式描述方法一般有串、树、网。

3、聚类分析算法属于(1);判别域代数界面方程法属于(3)。

(1)无监督分类 (2)有监督分类(3)统计模式识别方法(4)句法模式识别方法45、(3)(4)6、7(4)({A}, {0, 1}, {A?01, A? 0A1, A? 1A0}, A)二、(15分)简答及证明题(1)影响聚类结果的主要因素有那些?(2)证明马氏距离是平移不变的、非奇异线性变换不变的。

答:(1)分类准则,模式相似性测度,特征量的选择,量纲。

(2)证明:(2分)(2分)(1分)设,有非奇异线性变换:(1分)三、(8答:(1分)的绝对值正比于到超平面的距离平面的方程可以写成式中。

于是是平面的单位法矢量,上式可写成设是平面中的任一点,是特征空间中任一点,点到平面的距离为差矢量在上的投影的绝对值,即(1-1)上式中利用了在平面中,故满足方程式(1-1)的分子为判别函数绝对值,上式表明,的值正比于到超平面的距离,一个特征矢量代入判别函数后所得值的绝对值越大表明该特征点距判别界面越远。

(2)(4分)的正(负)反映在超平面的正(负)侧夹角小于时,即指向的那个半空间中,>0和时,在背向的那个半空间中,<0由于,和在指向的半空间中时,;当在五、(12::(1)(2)(3)表1解:由题可知:,,,,(1)(4分)根据贝叶斯最小误判概率准则知:,则可以任判;,则判为;,则判为;(2)(4分)由题可知:则,判为;(3已知,有,则拒判;,则拒判;,拒判。

1.如聚类,确定其分布的主分量等。

(实例:道路图)就道路图像的分割而言,监督学习方法则先在训练用图像中获取道路象素与非道路象素集,进行分类器设计,然后用所设计的分类器对道路图像进行分割。

模式识别作业

模式识别作业

模式识别作业2.6给出K-均值算法的程序框图,编写程序,自选一组分别属于三类的三维模式样本,并对它们进行聚类分析。

开始输入样本矩阵绘制样本数据的散点图输入聚类数目k 得到样本矩阵的大小聚类数目大于样本个数随机选取k 个样本作为初始聚类中心N 迭代次数=1计算各点到聚类中心的距离输出迭代次数,聚类中心,聚类结果按最短距离原则分配各点迭代次数+1计算各聚类中心的新向量值判断前后两次聚类中心是否变化结束N Y 输入错误,要求重新输入kYMATLAB程序代码clear all;clc;data=input('请输入样本数据矩阵:');X=data(:,1);Y=data(:,2);figure(1);plot(X,Y,'r*','LineWidth',3);axis([0 9 0 8])xlabel('x');ylabel('y');hold on;grid on;m=size(data,1);n=size(data,2);counter=0;k=input('请输入聚类数目:');if k>mdisp('输入的聚类数目过大,请输入正确的k值');k=input('请输入聚类数目:');endM=cell(1,m);for i=1:kM{1,i}=zeros(1,n);endMold=cell(1,m);for i=1:kMold{1,i}=zeros(1,n);end%随机选取k个样本作为初始聚类中心%第一次聚类,使用初始聚类中心p=randperm(m);%产生m个不同的随机数for i=1:kM{1,i}=data(p(i),:);while truecounter=counter+1;disp('第');disp(counter);disp('次迭代');count=zeros(1,k);%初始化聚类CC=cell(1,k);for i=1:kC{1,i}=zeros(m,n);end%聚类for i=1:mgap=zeros(1,k);for d=1:kfor j=1:ngap(d)=gap(d)+(M{1,d}(j)-data(i,j))^2;endend[y,l]=min(sqrt(gap));count(l)=count(l)+1;C{1,l}(count(l),:)=data(i,:);endMold=M;disp('聚类中心为:');for i=1:kdisp(M{1,i});enddisp('聚类结果为:');for i=1:kdisp(C{1,i});sumvar=0;for i=1:kE=0;disp('单个误差平方和为:');for j=1:count(i)for h=1:nE=E+(M{1,i}(h)-C{1,i}(j,h))^2;endenddisp(E);sumvar=sumvar+E;enddisp('总体误差平方和为:');disp(sumvar);%计算新的聚类中心,更新M,并保存旧的聚类中心for i=1:kM{1,i}=sum(C{1,i})/count(i);end%检查前后两次聚类中心是否变化,若变化则继续迭代;否则算法停止;tally=0;for i=1:kif abs(Mold{1,i}-M{1,i})<1e-5*ones(1,n)tally=tally+1;continue;elsebreak;endendif tally==kbreak;endEnd3.11给出感知器算法程序框图,编写算法程序.MATLAB 程序代码clear all;clc; disp('感知器算法求解两类训练样本的判别函数'); Data1=input('请输入第一类样本数据:'); Data2=input('请输入第二类样本数据:'); 开始输入两类样本数据及初始权向量值写成增广向量形式并进行规范化处理迭代次数=0校正增量系数=1计算判别函数判别函数>0校正权向量迭代次数+1输出权向量N Y 绘制判别函数结束W=input('请输入权向量初始值W(1)='); Expand=cat(1,Data1,Data2);ExpandData1=cat(2,Data1,ones(4,1));ExpandData2=cat(2,Data2.*-1,ones(4,1).*-1);ExpandData=cat(1,ExpandData1,ExpandData2); X=Expand(:,1);Y=Expand(:,2);Z=Expand(:,3);[ro,co]=size(ExpandData);Step=0;CountError=1;while CountError>0;CountError=0;for i=1:roTemp=W*ExpandData(i,:)';if Temp<=0W=W+ExpandData(i,:);disp(W)CounterError=CountError+1;endendStep=Step+1;enddisp(W)figure(1)plot3(X,Y,Z,'ks','LineWidth',2);grid on;hold on;xlabel('x');ylabel('y');zlabel('z');f=@(x,y,z)W(1)*x+W(2)*y+W(3)*z+W(4); [x,y,z]=meshgrid(-1:.2:1,-1:.2:1,0:.2:1);v=f(x,y,z);h=patch(isosurface(x,y,z,v ));isonormals(x,y,z,v,h)set(h,'FaceColor','r','EdgeColor','none');。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:学号:
2.1 设有10个二维模式样本,如图2.13所示。

若21=θ,试用最大最小距离算 法对他们进行聚类分析。

1 3 5 7 9
X 1
解:① 取T 11]0,0[==X Z 。

②选离1Z 最远的样本作为第二聚类中心2Z 。

()()201012221=-+-=D ,831=D ,5841=D ,4551=D 5261=D ,7471=D ,4581=D ,5891=D ,651,10=D ∵ 最大者为D 71,∴T 72]7,5[==X Z
742
121=-=Z Z θT ③计算各样本与{}21,Z Z 间距离,选出其中的最小距离。

7412=D ,5222=D ,3432=D ,…,132,10=D
}13,20,17,0,2,5,4,8,2,0{),min(21=i i D D ④742
120)},max{min(9221=>==T D D D i i ,T 93]3,7[==∴X Z ⑤继续判断是否有新的聚类中心出现:
⎪⎩⎪⎨⎧===58740131211D D D ,⎪⎪⎩⎪⎪⎨⎧===40522232221D D D ,…⎪⎪⎩⎪⎪⎨⎧===1
13653,102,101,10D D D
}1,0,1,0,2,5,4,8,2,0{),,min(321=i i i D D D
742
18)},,max{min(31321=
<==T D D D D i i i 寻找聚类中心的步骤结束。

⑥按最近距离分到三个聚类中心对应的类别中:
3211,,:X X X ω;76542,,,:X X X X ω;10983,,:X X X ω
代码附录:
clear all
close all
clc
%坐标点,初始化选定比例系数
num = 10;eta = 0.5;
axis([0 10 0 10]);
hold on
%c = zeros(10,1);z = zeros(10,2);
x1 = [0,0];x2 = [1,1];x3 = [2,2];x4 = [3,7];
x5 = [3,6];x6 = [4,4];x7 = [5,7];x8 = [6,3];
x9 = [7,3];x10 = [7,4];
W = [x1;x2;x3;x4;x5;x6;x7;x8;x9;x10];
%% step1 任选一个坐标点作为第一个聚类中心z1
R= randperm(num);
c(1) = R(1);
z(1,:) = W(c(1),:);
%% step2 从数据中选取一个距离z1最远的坐标点,作为第二个聚类中心z2 d = zeros(num,1);
for i = 1:num
d(i) = norm(z(1,:)-W(i,:));
end
[~,c(2)] = max(d);%距离,位置
z(2,:)= W(c(2),:);
%% step3 计算剩余数据与z1,z2之间的距离,并求其最小距离
d =zeros(num,2);
for i = 1:num
d(i,1) = norm(z(1,:)-W(i,:));
d(i,2) = norm(z(2,:)-W(i,:));
end
D = zeros(num,1);
for i = 1:num
D(i) = min(d(i,:));
end
%% step4 确定是否存在第三个聚类中心
[m,n] = max(D);%最大值,位置
if m>eta*norm(z(2,:)-z(1,:));
c(3) = n;
z(3,:) = W(c(3),:);
jump = 1;%转至step5
else
jump = 2;
end
switch (jump)
case 1
k = 4;
%% step5 继续确定是否存在聚类中心
for p = 1:num
d =zeros(num,length(c));
for i = 1:length(c)
for j = 1:num
d(j,i) = norm(z(i,:)-W(j,:));
end
end
for i = 1:num
D(i) = min(d(i,:));
end
[m,n] = max(D);%最大值,位置if m>eta*norm(z(2,:)-z(1,:));
c(k) = n;
z(k,:) = W(c(k),:);
k = k+1;
else
break %没有新的聚类中心end
end
case 2
break
end
%% step6 最小距离法进行分类
%首先计算数据到每个聚类中心的距离
D =zeros(num,length(c));
for i = 1:length(c)
for j = 1:num
D(j,i) = norm(z(i,:)-W(j,:));
end
end
%归类,判断坐标点属于的类别
k = zeros(length(c),1);
for i = 1:num
[m,n] = min(D(i,:));
k(i,1) = n;%归类标识
end
%设置颜色
colour = zeros(length(c),3);
for i = 1:length(c)
colour(i,:) = rand(1,3);
end
for i = 1:length(c)
v = find(k == i);%位置
u = length(v);%个数
M = zeros(u,2);%用来存储所属同一类的点for j = 1:u
M(j,:) = W(v(j),:);
end
P = plot(M(:,1),M(:,2),'<');
set(P,'color',colour(i,:));
end。

相关文档
最新文档