您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 《模式识别》实验报告
《模式识别》实验报告一、数据生成与绘图实验1.高斯发生器。用均值为m,协方差矩阵为S的高斯分布生成N个l维向量。设置均值Tm=-1,0,协方差为[1,1/2;1/2,1];代码:m=[-1;0];S=[1,1/2;1/2,1];mvnrnd(m,S,8)结果显示:ans=-0.46233.36780.83393.3153-3.2588-2.2985-0.13783.0594-0.68120.7876-2.3077-0.7085-1.43360.4022-0.6574-0.00622.高斯函数计算。编写一个计算已知向量x的高斯分布(m,s)值的Matlab函数。均值与协方差与第一题相同,因此代码如下:x=[1;1];z=1/((2*pi)^0.5*det(S)^0.5)*exp(-0.5*(x-m)'*inv(S)*(x-m))显示结果:z=0.06233.由高斯分布类生成数据集。编写一个Matlab函数,生成N个l维向量数据集,它们是基于c个本体的高斯分布(mi,si),对应先验概率Pi,i=1,……,c。M文件如下:function[X,Y]=generate_gauss_classes(m,S,P,N)[r,c]=size(m);X=[];Y=[];forj=1:ct=mvnrnd(m(:,j),S(:,:,j),fix(P(j)*N));X=[Xt];Y=[Yones(1,fix(P(j)*N))*j];endend调用指令如下:m1=[1;1];m2=[12;8];m3=[16;1];S1=[4,0;0,4];S2=[4,0;0,4];S3=[4,0;0,4];m=[m1,m2,m3];S(:,:,1)=S1;S(:,:,2)=S2;S(:,:,3)=S3;P=[1/3,1/3,1/3];N=10;[X,Y]=generate_gauss_classes(m,S,P,N)二、贝叶斯决策上机实验1.(a)由均值向量m1=[1;1],m2=[7;7],m3=[15;1],方差矩阵S的正态分布形成三个等(先验)概率的类,再基于这三个类,生成并绘制一个N=1000的二维向量的数据集。(b)当类的先验概率定义为向量P=[0.6,0.3,0.1],重复(a)。(c)仔细分析每个类向量形成的聚类的形状、向量数量的特点及分布参数的影响。M文件代码如下:functionplotData(P)m1=[1;1];S1=[12,0;0,1];m2=[7;7];S2=[8,3;3,2];m3=[15;1];S3=[2,0;0,2];N=1000;r1=mvnrnd(m1,S1,fix(P(1)*N));r2=mvnrnd(m2,S2,fix(P(2)*N));r3=mvnrnd(m3,S3,fix(P(3)*N));figure(1);plot(r1(:,1),r1(:,2),'r.');holdon;plot(r2(:,1),r2(:,2),'g.');holdon;plot(r3(:,1),r3(:,2),'b.');end(a)调用指令:P=[1/3,1/3,1/3];plotData(P)实验结果如下:-10-505101520-4-2024681012(b)调用指令:P=[0.6,0.3,0.1];plotData(P)实验结果如下:-10-505101520-4-2024681012图(1)红色代表第一类,绿色代表第二类,蓝色代表第三类(c)分析:比较(a)和(b)两个实验可以得出(1)协方差矩阵直接影响了聚类的形状.(2)在第一种情况下,每一类有大致相同数量的向量,在后一种情况下,最左边和最右边的类分别比前一种情况更“密集”和更“稀疏”。2.M文件如下:functionplotData2(m1,m2,m3,S1,S2,S3)P=[1/3,1/3,1/3];N=1000;r1=mvnrnd(m1,S1,fix(P(1)*N));r2=mvnrnd(m2,S2,fix(P(2)*N));r3=mvnrnd(m3,S3,fix(P(3)*N));figure(1);plot(r1(:,1),r1(:,2),'r.');holdon;plot(r2(:,1),r2(:,2),'g.');holdon;plot(r3(:,1),r3(:,2),'b.');End(a)调用指令:m1=[1,1];m2=[12,8];m3=[16,1];S1=[4,0;0,4];S2=[4,0;0,4];S3=[4,0;0,4];plotData2(m1,m2,m3,S1,S2,S3)实验结果如下:-10-50510152025-6-4-202468101214(b)调用指令:m1=[1,1];m2=[14,7];m3=[16,1];S1=[5,3;3,4];S2=[5,3;3,4];S3=[5,3;3,4];plotData2(m1,m2,m3,S1,S2,S3)实验结果如下:-10-50510152025-10-5051015(c)调用指令如下:m1=[1,1];m2=[8,6];m3=[13,1];S1=[6,0;0,6];S2=[6,0;0,6];S3=[6,0;0,6];plotData2(m1,m2,m3,S1,S2,S3)实验结果如下:-10-50510152025-6-4-202468101214(d)调用指令:m1=[1,1];m2=[10,5];m3=[11,1];S1=[7,4;4,5];S2=[7,4;4,5];S3=[7,4;4,5];plotData2(m1,m2,m3,S1,S2,S3)实验结果如下:-10-505101520-10-50510152.对X1~X4分别重复以下实验,并仔细分析实验结果,得出结论。(1)对X应用贝叶斯分类、欧几里德距离以及Mahalanobis距离分类。(2)计算每种分类器的分类误差,绘制数据集的分类结果,错分的向量加圆圈表示。M文件如下(贝叶斯分类):functionz=Bayes_classifier(m,S,P,a)[n,r]=size(a);[r,c]=size(m);fori=1:nforj=1:ct(j)=P(j)*comp_gauss_dens_val(m(:,j),S(:,:,j),a(i,:)');end[num,z(i)]=max(t);endEndM文件如下(欧几里得分类器):functionz=Euclidean_classifier(m,a)[n,r]=size(a);[r,c]=size(m);fori=1:nforj=1:ct(j)=sqrt((a(i,:)'-m(:,j))'*(a(i,:)'-m(:,j)));end[num,z(i)]=min(t);endendM文件如下(Mahalanobis距离分类器):functionz=Mahalanobis_classifier(m,S,a)[n,r]=size(a);[r,c]=size(m);fori=1:nforj=1:ct(j)=sqrt((a(i,:)'-m(:,j))'*inv(S(:,:,j))*(a(i,:)'-m(:,j)));end[num,z(i)]=min(t);endendM文件如下(对数据集X1分别使用三种分类器作图)functionerror=plotX1(m1,m2,m3,S1,S2,S3)m=[m1,m2,m3];S(:,:,1)=S1;S(:,:,2)=S2;S(:,:,3)=S3;P=[1/3,1/3,1/3];N=1000;numArray=fix(P*N);a=[];[r,c]=size(m);pale1=['r.';'g.';'b.'];pale2=['ko';'ko';'ko'];[X,Y]=generate_gauss_classes(m,S,P,N);fori=1:numArray(1)forj=1:2a(i,j)=X(i,j);endendfori=1:numArray(2)forj=1:2a(i+numArray(1),j)=X(i,j+2);endendfori=1:numArray(3)forj=1:2a(i+numArray(1)+numArray(2),j)=X(i,j+4);endend[k,r]=size(a);z1=Bayes_classifier(m,S,P,a);z2=Euclidean_classifier(m,a);z3=Mahalanobis_classifier(m,S,a);error(1)=0;error(2)=0;error(3)=0;figure(1);title('贝叶斯分类器');holdon;forn=1:kif(Y(n)~=z1(n))error(1)=error(1)+1;plot(a(n,1),a(n,2),pale2(Y(n),:));holdon;endplot(a(n,1),a(n,2),pale1(Y(n),:));holdon;endfigure(2);title('欧几里得距离分类器');holdon;forn=1:kif(Y(n)~=z2(n))error(2)=error(2)+1;plot(a(n,1),a(n,2),pale2(Y(n),:));holdon;endplot(a(n,1),a(n,2),pale1(Y(n),:));holdon;endfigure(3);title('Mahalaobis距离分类器');holdon;forn=1:kif(Y(n)~=z3(n))error(3)=error(3)+1;plot(a(n,1),a(n,2),pale2(Y(n),:));holdon;endplot(a(n,1),a(n,2),pale1(Y(n),:));holdon;endend(a)对X1分别使用贝叶斯分类器,欧几里得距离分类器以及Mahalanobis分类器进行分类,程序以及结果如下:调用指令:m1=[1;1];m2=[12;8];m3=[16;1];S1=[4,0;0,4];S2=[4,0;0,4];S3=[4,0;0,4];plotX(m1,m2,m3,S1,S2,S3)结果显示(对X1数据集分别用三种分类器产生的错误数):ans=171717-50510152025-10-5051015贝叶斯分类器-50510152025-10-5051015欧几里得距离分类器-50510152025-10-5051015Mahalaobis距离分类器(b)对X2分别使用贝叶斯分类器,欧几里得距离分类器以及Mahalanobis分类器进行分类,程序以及结果如下:m1=[1;1];m2=[14;7];m3=[16;1];S1=[5,3;3,4];S2=[5,3;3,4];S3=[5,3;3,4];plotX(m1,m2,m3,S1,S2,S3)结果显示:ans=8218-50510152025-10-5051015贝叶斯分类器-50510152025-10-5051015欧几里得距离分类器-50510152025-10-5051015Mahalaobis距离分类器(c)对X3分别使用贝叶斯分类器,欧几里得距离分类器以及Mahalanobis分类器进行分类,程序以及结果如下:指令调用:m1=[1;1];m2=[8;6];m3=[13;1];S1=[6,0;0,6];S2=[6,0;0,6];S3=[6,0;0,6];plotX(m1,m2,m3,S1,S2,S3)结果显示:ans=747474-10-50510152025-6-4-202468101214贝叶斯分类器-10-50510152025-6-4-202468101214欧几里得距离分类器-10-50510152025-6-4-202468101214Mahalaobis距离分类器(d)对X4分别使用贝叶斯分类器,欧几里得距离分类器以及Mahalanobis分类器进行分类,程序以及结果如下:m1=[1;1];m2
本文标题:《模式识别》实验报告
链接地址:https://www.777doc.com/doc-4402089 .html