版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《模式识别》实验一贝叶斯分类器设计一、实验意义及目的掌握贝叶斯判别原理,能够利用MATLAB编制程序实现贝叶斯分类器设计,熟悉基于MATLAB的算法处理函数,并能够利用算法解决简单问题。二、实验内容1.设正态分布的均值分别为μ1=11T和μ2=1.51.5T,协方差矩阵均为0.2I2.基于朴素贝叶斯分类器实现手写数字识别。手写数字如图1所示,训练图像和测试图像见附件。图1手写数字图像示例三、参考设计1.最小风险贝叶斯分类器设计1)设计思路根据给定的参数生成服从正态分布的数据;分为训练样本和测试样本,利用训练样本估计两类类条件概率函数参数;计算各测试样本的后验概率,对应决策的条件风险,求最小风险并决策。2)参考代码clc,clear,closeall;%生成数据N=1000;N1=200;P=[0.50.5];mu1=[11];mu2=[1.51.5];I=[10;01];sigma1=0.2*I;sigma2=0.2*I;rng('default')R1=mvnrnd(mu1,sigma1,N);R2=mvnrnd(mu2,sigma2,N);%获取训练样本和测试样本序号random=randperm(N,N1);testing_idx=ismember(1:N,random);training_idx=~testing_idx;%利用训练样本估计两类正态分布参数,各属性独立,分别估计Phat1=zeros(2,2);training=R1(training_idx,1);Phat1(:,1)=mle(training);training=R1(training_idx,2);Phat1(:,2)=mle(training);Emu1=Phat1(1,:);Esigma1=[Phat1(2,1)^2,0;0Phat1(2,2)^2];Phat2=zeros(2,2);training=R2(training_idx,1);Phat2(:,1)=mle(training);training=R2(training_idx,2);Phat2(:,2)=mle(training);Emu2=Phat2(1,:);Esigma2=[Phat2(2,1)^2,0;0Phat2(2,2)^2];%计算各测试样本对应的后验概率,用先验概率和类条件概率密度的乘积代替testing1=R1(testing_idx,:);testing2=R2(testing_idx,:);postp1=zeros(2,N1);fori=1:N1 cur=testing1(i,:);postp1(1,i)=P(1)*…exp(-(cur-Emu1)/Esigma1*(cur-Emu1)'/2)/sqrt(det(Esigma1));postp1(2,i)=P(2)*…exp(-(cur-Emu2)/Esigma2*(cur-Emu2)'/2)/sqrt(det(Esigma2));end[~,pos1]=max(postp1,[],1);postp2=zeros(2,N1);fori=1:N1 cur=testing2(i,:);postp2(1,i)=P(1)*…exp(-(cur-Emu1)/Esigma1*(cur-Emu1)'/2)/sqrt(det(Esigma1));postp2(2,i)=P(2)*…exp(-(cur-Emu2)/Esigma2*(cur-Emu2)'/2)/sqrt(det(Esigma2));end[~,pos2]=max(postp2,[],1);ratio1=(sum(pos1==1)+sum(pos2==2))/(2*N1)%计算各决策对应的风险,确定最小风险,进行决策lamda=[01;0.50];R1=zeros(2,N1);fori=1:N1 R1(1,i)=postp1(1,i)*lamda(1,1)+postp1(2,i)*lamda(2,1);R1(2,i)=postp1(1,i)*lamda(1,2)+postp1(2,i)*lamda(2,2);end[~,pos1]=min(R1,[],1); R2=zeros(2,N1);fori=1:N1 R2(1,i)=postp2(1,i)*lamda(1,1)+postp2(2,i)*lamda(2,1); R2(2,i)=postp2(1,i)*lamda(1,2)+postp2(2,i)*lamda(2,2);end[~,pos2]=min(R2,[],1);ratio2=(sum(pos1==1)+sum(pos2==2))/(2*N1)程序的运行结果如下:ratio1=0.7775ratio2=0.76252.手写数字识别生成训练样本读取图像文件,反色,将数字目标变为白色;通过确定数字的外接矩形截取数字所在区域;将数字区域归一化为16×16的子图像;将16×16的数据变换为1×256的一维数据,生成训练样本。clc;clear;closeall;fmt={'*.jpg','JPEGimage(*.jpg)';'*.*','AllFiles(*.*)'};[FileName,FilePath]=uigetfile(fmt,'导入数据','*.jpg','MultiSelect','on');if~isequal([FileName,FilePath],[0,0]) FileFullName=strcat(FilePath,FileName);else return;endN=length(FileFullName);Image=zeros(50);n=16;n1=20;BWI=zeros(n);training=zeros(N,n*n);labeltrain=[];forj=1:N Image=imread(FileFullName{j}); Image=255-Image;Image=imbinarize(Image,0.2);;[y,x]=find(Image==1); BWI=Image(min(y):max(y),min(x):max(x)); BWI=imresize(BWI,[n,n]); training(j,:)=double(BWI(:)');[pathstr,namestr,ext]=fileparts(FileName{j}); labeltrain=[labeltrain;str2num(namestr(1))];end2)训练贝叶斯分类器采用fitcnb函数训练朴素贝叶斯分类器。3)对训练样本进行决策归类利用所创建的贝叶斯分类器对象,采用predict函数对训练样本进行判别,将各样本对应判断类别与原始类别进行比对,测定识别率。4)对未知类别的数据进行决策归类对测试图像进行预处理,生成测试样本,利用所创建的贝叶斯分类器对象,采用predict函数对测试样本进行判别,将各测试样本对应判断类别与原始类别进行比对,测定识别率。四、实验要求1.熟悉贝叶斯决策方法原理,熟悉MATLAB函数,读懂参考代码。2.参考教材【例2-16】(不同字体数字识别)方法,修改【例2-16】的程序,进行相应的训练、测试及识别率统计。五、实验考核考勤(20%)、课堂表现(40%)、实验报告成绩(40%)。六、实验报告实验结束后,撰写实验报告,实验报告主题部分应包括:算法原理、程序流程、算法各部分主要函数代码以及功能注释、运行结果四部分,每部分占实验报告的25%,按照撰写情况打分。
《模式识别》实验二Fisher线性判别一、实验意义及目的掌握线性判别原理,能够利用Matlab编制程序实现Fisher线性判别函数的设计,熟悉基于Matlab的算法处理函数,并能够利用算法解决简单问题。二、实验内容1.针对3类数据ω1:-5-5,-5-4,-4-5,-5-6,-6-52.基于SVM实现手写数字识别。训练图像和测试图像见附件。三、参考设计1.Fisher线性分类器解决3类分类问题1)设计思路获取训练数据,分别对每类数据计算均值、类内离散度矩阵;针对其中两两组合,按照Fisher线性判别原理,确定投影方向,计算一维阈值点;对待测数据,分别按不同组合的投影方向投影,投影值和对应一维阈值点比较,若在某一类和其他类的所有组合中,待测数据都判为该类,则最终决策该数据归为这一类。2)参考代码clc,clear,closeall;training=[-5-5;-5-4;-4-5;-5-6;-6-5;55;54;45;56;65;...-55;-54;-45;-56;-65]';species=[000001111122222];sta=tabulate(species);[c,k]=size(sta);n=2;cpmean=zeros(n,c);cpcov=zeros(n,n,c);figure,holdon;pointtype=['o';'*';'+'];%计算各类的均值和协方差矩阵fori=1:cindex=find(species==sta(i,1));plot(training(1,index),training(2,index),pointtype(i));N=length(index);aver=mean(training(:,index),2);cpmean(:,i)=aver; cpcov(:,:,i)=(training(:,index)-aver*ones(1,N))*... (training(:,index)-aver*ones(1,N))';endlinetype=['r';'g';'m'];num=1;x=[-2-2]';plot(x(1),x(2),'rp');xsign=zeros(c,c);z0=zeros(c,c);%一对一训练Fisher分类器fori=1:c-1forj=i+1:cm1=cpmean(:,i);m2=cpmean(:,j);S1=cpcov(:,:,i);S2=cpcov(:,:,j);Sw=S1+S2;w=Sw\(m1-m2);z1=w'*m1;z2=w'*m2;z0(i,j)=(z1+z2)/2;z0(j,i)=-z0(i,j);%绘制分界线ifw(1)==0x2=z0(i,j)/w(2);plot([-10,10],[x2x2],linetype(num));elseifw(2)==0x1=z0(i,j)/w(1);plot([x1x1],[-10,10],linetype(num));elsex1=-10:0.01:10;x2=-(w(1)*x1-z0(i,j))/(w(2));plot(x1,x2,linetype(num));endnum=num+1;ifnum==4num=1;endxsign(i,j)=w'*x;xsign(j,i)=-xsign(i,j);endend%决策归类fori=1:cifxsign(i,:)>=z0(i,:)result=strcat('(',num2str(x'),')','属于第',num2str(i),'类');endendtitle('Fisher线性判别');line1='x1';line2=result;xlabel({line1;line2});ylabel('x2');holdoff;boxon程序的运行结果如图2所示。图2Fisher线性分类器实现3类分类四、实验要求1.熟悉线性判别原理,读懂参考代码,进一步理解Fisher线性判别原理;2.参考教材【例4-15】方法,修改【例4-15】的程序,进行相应的训练、测试及识别率统计。五、实验考核考勤(20%)、课堂表现(40%)、实验报告成绩(40%)。六、实验报告实验结束后,撰写实验报告,实验报告主题部分应包括:算法原理、程序流程、算法各部分主要函数代码以及功能注释、运行结果四部分,每部分占实验报告的25%,按照撰写情况打分。
《模式识别》实验三C均值聚类一、实验意义及目的掌握C均值聚类算法原理,能够利用MATLAB编制程序实现C均值聚类,熟悉基于MATLAB的算法处理函数,并能够利用算法解决简单问题。二、实验内容1.采用和实验一中同样的预处理方法,直接将处理后图像的像素值作为特征,随机选择初始聚类中心,采用汉明距离作为相似性测度,基于C均值聚类算法实现手写数字图像聚类。2.修改程序,将预处理后的数字图像分块,提取块均值作为特征,采用相关系数为相似性度量,根据经验指定初始聚类中心,使用C均值聚类算法实现手写数字图像聚类。三、参考设计1.预处理并提取特征读取图像文件,反色,将数字目标变为白色;通过确定数字的外接矩形截取数字所在区域;将数字区域归一化为16×16的子图像;将16×16的数据变换为1×256的一维数据,生成样本。(见实验一)2.实现聚类随机选择初始聚类中心,采用汉明距离作为相似性测度,利用kmeans函数实现聚类。[idx,C]=kmeans(training,10,'Distance','hamming');3.绘制聚类结果根据idx中的聚类结果,将聚为同一类的图像拼接到一起显示。fori=1:10idbw=training(idx==i,:);num=size(idbw,1);showResult=zeros(n1,n1*num);forj=1:numresult=reshape(idbw(j,:),n,n);showResult((n1-n)/2+1:n+(n1-n)/2,(j-1)*n1+1:(j-1)*n1+n)=result;endstr=[num2str(i)'.jpg'];imwrite(showResult,str);figure,imshow(showResult),title(['第'num2str(i)'类图像']);end程序运行结果如图3所示,聚类效果并不理想。且由于受初值影响,每次运行,聚类结果可能会发生变化。图3手写数字C均值聚类四、实验要求1.熟悉C均值聚类原理,熟悉MATLAB函数,读懂参考代码;2.修改参考代码,更改提取的特征以及聚类算法的相关参数,实现聚类。五、实验考核考勤(20%)、课堂表现(40%)、实验报告成绩(40%)。六、实验报告实验结束后,撰写实验报告,实验报告主题部分应包括:算法原理、程序流程、算法各部分主要函数代码以及功能注释、运行结果四部分,每部分占实验报告的25%,按照撰写情况打分。
《模式识别》实验四主成分分析一、实验意义及目的掌握主成分分析原理,能够利用MATLAB编制程序实现主成分分析,熟悉基于MATLAB的算法处理函数,并能够利用算法解决简单问题。二、实验内容1.对ionosphere数据进行降维并设计SVM。采用留出法将ionosphere数据集中的数据分为训练集和测试集,对训练样本进行主成分分析,根据累积贡献率确定低维度,降低维数,并设计基于SVM的分类器;对测试集数据利用降维变换阵降维并进行预测分类。2.对手写数字图像进行PCA降维及重建。三、参考设计1.生成训练和测试样本集clc,clear,closeall;loadionosphere[N,n]=size(X);label=ones(size(Y));Y=cell2mat(Y);label(Y=='b')=2;C=cvpartition(Y,'HoldOut');trIdx=training(C);teIdx=test(C);2.主成分分析%实现PCA降维,并计算累积贡
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖北师范大学文理学院管理岗招聘备考题库附答案详解
- 2025年杭州市妇产科医院高层次、紧缺专业人才招聘12人的备考题库有答案详解
- 2025年武汉某国有企业招聘备考题库及1套参考答案详解
- 2025年第十四师昆玉市学校引进高层次人才备考题库及一套答案详解
- 2025年中国安科院安全生产风险监测预警中心招聘5人备考题库及1套完整答案详解
- 2025年武汉科技大学附属老年病医院招聘30人备考题库有答案详解
- 2025年华中师范大学人工智能教育学部合同聘用制人员招聘备考题库含答案详解
- 2025年潮州市潮安区招聘签约兽医备考题库及答案详解参考
- 2025年北滘镇碧江小学招聘语文、数学、信息技术等临聘教师10人备考题库及答案详解1套
- 中国医科大学附属医院2026年公开招聘高层次和急需紧缺人才备考题库附答案详解
- 供水管网工程风险评估与应对方案
- 2025东方航空校招面试题及答案
- 室内设计装饰施工方案
- 军队安全行车课件
- 铅锭贸易专业知识培训课件
- 人教精通版(2024)四年级上册英语 Unit 1 Sports Lesson 3 教学设计
- 2025一建《建筑工程管理与实务》案例简答300问
- 变电安规三种人课件
- TCACM1020.103-2019道地药材第103部分广地龙
- 农村集体经济发展模式讲座
- 口腔全口义齿病例讨论
评论
0/150
提交评论