ImageVerifierCode 换一换
格式:DOCX , 页数:64 ,大小:385.21KB ,
资源ID:12101187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12101187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《模式识别》课程实验设计matlaab.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《模式识别》课程实验设计matlaab.docx

1、模式识别课程实验设计matlaab模式识别课程实验设计(matlaab)1 线性分类器设计1.1 ESM1.1.1 问题 对于twotwolarge.m文件里的数据,用最小二乘法进行两分类。1.1.2 思路及框图 1.1.3结果1.1.4程序代码%ESM代码,见ses_pct_svm.m文件y=ones(100,1);for i=46:100 y(i,1)=-1;end;w=inv(x*x)*(x)*y;r5=-w(3)/w(1),0;r6=0,-w(3)/w(2);figure(1);plot(r1,r2,*,r3,r4,o,r5,r6);axis(0,12,0,8);hold on;%ES

2、M代码结束1.1.5讨论1.当训练样本较大的时候,(inv(X*X)*X计算很复杂,可以采用梯度下降法求解。2.Y的选取可以利用样本在两类里的数目进行比例取值,对于样本数较多的类,先验知识较多,yi可以取小。1.2单层感知器1.2.1问题 对于twotwolarge.m文件里的数据,用单层感知器进行两分类。1.2.2思路及框图1.2.3结果1.2.4程序代码%单层感知机函数代码,见ses_pct_svm.m文件e=0.001; wpct=rands(3,1); J=0; deltJ=zeros(3,1);for i=1:45 xtemp= x(i,1),x(i,2),x(i,3) ; if (

3、wpct*xtemp0) deltJ=deltJ+0.5*xtemp; J=J+wpct*xtemp; endendwhile(Je) J=0; wpct=wpct-deltJ; for i=1:45 xtemp= x(i,1),x(i,2),x(i,3) ; if (wpct*xtemp0) deltJ=deltJ+0.5*xtemp; J=J+wpct*xtemp; end endendr5=-wpct(3)/wpct(1),0;r6=0,-wpct(3)/wpct(2);figure(2);plot(r1,r2,*,r3,r4,o,r5,r6);axis(0,12,0,8);hold o

4、n;%单层感知机函数代码结束1.2.5讨论1.感知器相当于一个神经元的神经网络。2.能不能找到最优决策面与初始w选择有关,所以找到的w不一定是最优的。3.满足J的w有无穷多个,不能判断哪一个最好。1.3 SVM1.3.1问题 对于twotwolarge.m文件里的数据,用SVM进行两分类。1.3.2思路及框图 1.3.3结果1.3.4程序代码%SVM函数代码,见ses_pct_svm.m文件y=ones(100,1);for i=46:100 y(i)=-1;end;A=;b=;Aeq=;beq=;lb=;ub=;lbd0=ones(100,1);lbd=rands(100,1);%本来想用Q

5、uadprog实现,但可能设定的条件不正确,最终出现不收敛的情况lbd,fval,EXITFLAG=fmincon(myfun,lbd0,A,b,Aeq,beq,lb,ub,nonlcon);wsvm=zeros(2,1);for i=1:100 wsvm(1,1)=wsvm(1,1)+xnew(i,1)*(lbd(i,1)*y(i,1); wsvm(2,1)=wsvm(2,1)+xnew(i,2)*(lbd(i,1)*y(i,1);end;%在实验数据中,可能是由于精度的原因,浪不大不可能迭代到真实的0,该变量作为0偏epsilon = 1e-5;for i=1:100 if(lbd(i,1

6、)epsilon) lbdnozero=i; end;end;%找到的该支撑矢量必然位于后一类,故决策值度量为-1w3=-1-(wsvm(1,1)*xnew(lbdnozero,1)+wsvm(2,1)*xnew(lbdnozero,2);r5=-w3 /wsvm(1),0;r6=0,-w3 /wsvm(2);figure(3);plot(r1,r2,*,r3,r4,o,r5,r6);axis(0,12,0,8);hold on;%ses_pct_svm.m代码结束%目标函数位于一个新的myfun.m文档function f=myfun(lbd)ft=-ones(100,1);y=ones(1

7、00,1);for i=46:100 y(i)=-1;end;%数据域xnew=zeros(100,2);for i=1:45 xnew(i,1)=x1(i,1) ;end;for i=1:45 xnew(i,2)=x1(i,2) ;end;for i=46:100 xnew(i,1)=x2(i-45),1) ;end;for i=46:100 xnew(i,2)=x2(i-45),2) ;end;f=ft*lbd;for i=1:100 for j=1:100 f=f+0.5*(lbd(i,1)*lbd(j,1)*y(i,1)*y(j,1)*(xnew(i,1)*xnew(j,1)+xnew

8、(i,2)*xnew(j,2); end;end;%myfun.m代码结束%约束函数位于一个新的nonlcon.m文档function c,ceq = nonlcon (lbd)Y1=ones(45,1);Y2=-ones(55,1);Y=Y1;Y2;c = -lbd;ceq = lbd*Y;%nonlcon.m代码结束1.3.5讨论对于fmincon函数里面的第一个参数要求是二次函数,该参数必须写到一个子程序里面然后引用该函数才可以使用。同理,参数nonlcon也是一样。如果两类不是线性可分的,那么需要增加一个对于浪不大的松弛变量,不过幸好此处线性可分。2 1_k近邻法2.1 问题 对于tw

9、otwolarge.m 、ultwotwo.m 、threethree.m 的数据进行分类2.2 思路将数据随机分成两组,一组作为参考集,一组作为测试集,进行分类。2.3结果Twotwolarge结果:前图是参考集,后图是测试集,是twotwolarge的随机等分组,砖石形为错误分类的点。1近邻法的分类率为2%;k近邻法的错误分类率为0。Ultwotwo随机分组得到的参考集砖石形为错误分类的点。1近邻法的分类率为7.62%;k近邻法的错误分类率为2.86%。Threethree随机分组得到的参考集。1和k近邻法的错误分类率均为02.4 代码%twotwolarge近邻法代码;数据前略,见two

10、twolarge_1k.m文件xnewIndex=zeros(100,1);for i=1:100 xnewIndex(i,1)=i;end;xnrSize,xntSize,xnrIndex,xntIndex,xnr,xnt = sep(xnew,2,xnewIndex,0.5,100);Nt=0;Nr=0;for i=1:xntSize if(xntIndex(i,1)=45) Nt=Nt+1; end;end;for i=1:xnrSize if(xnrIndex(i,1)0) for i=1:FailCount r13(i)=xnt(FailIndex(i,1),1);end; for

11、i=1:FailCount r14(i)=xnt(FailIndex(i,1),2);end; figure(4); plot(r5,r6,*,r7,r8,o,r13,r14,bd); axis(0,12,0,8); grid on;end;%k=7Mk=7;MFailCount,MFailIndex=MulNear(Mk,Nr,Nt,xnr,xnt,xnrSize,xntSize,2,2);Mpe=MFailCount/xntSizeif(Mpe0) for i=1:MFailCount r15(i)=xnt(MFailIndex(i,1),1);end; for i=1:MFailCoun

12、t r16(i)=xnt(MFailIndex(i,1),2);end; figure(5); plot(r5,r6,*,r7,r8,o,r15,r16,bd); axis(0,12,0,8); grid on;end;%twotwolarge_1k.m代码结束%ultwotwo近邻法代码;数据前略,见ultwotwo_1k.m文件xnewIndex=zeros(210,1);for i=1:210 xnewIndex(i,1)=i;end;xnrSize,xntSize,xnrIndex,xntIndex,xnr,xnt = sep(xnew,2,xnewIndex,0.5,210);Nt=

13、0;Nr=0;for i=1:105 if(xntIndex(i,1)=100) Nt=Nt+1; end; if(xnrIndex(i,1)0) for i=1:FailCount r13(i)=xnt(FailIndex(i,1),1);end; for i=1:FailCount r14(i)=xnt(FailIndex(i,1),2);end; figure(4); plot(r5,r6,*,r7,r8,o,r13,r14,bd); axis(0,60,0,20); grid on;end;%k=7Mk=7;MFailCount,MFailIndex=MulNear(Mk,Nr,Nt,

14、xnr,xnt,xnrSize,xntSize,2,2);Mpe=MFailCount/xntSizeif(Mpe0) for i=1:MFailCount r15(i)=xnt(MFailIndex(i,1),1);end; for i=1:MFailCount r16(i)=xnt(MFailIndex(i,1),2);end; figure(5); plot(r5,r6,*,r7,r8,o,r15,r16,bd); axis(0,60,0,20); grid on; end;%ultwotwo_1k.m代码结束%threethree近邻法代码;数据前略,见threethree_1k.m文

15、件xnewIndex=zeros(270,1);for i=1:270 xnewIndex(i,1)=i;end;xnrSize,xntSize,xnrIndex,xntIndex,xnr,xnt = sep(xnew,3,xnewIndex,0.5,270);Nt1=0;Nr1=0;Nt2=0;Nr2=0;for i=1:xntSize if(xntIndex(i,1)=190) Nt1=Nt1+1; if(xntIndex(i,1)=100) Nt2=Nt2+1; end; end;end;for i=1:xnrSize if(xnrIndex(i,1)=190) Nr1=Nr1+1; i

16、f(xnrIndex(i,1)0) for k=1:FailCount r28(k)=xnt(FailIndex(k,1),1); r29(k)=xnt(FailIndex(k,1),2); r30(k)=xnt(FailIndex(k,1),3); end; figure(4); plot3(r10,r11,r12,*,r13,r14,r15,o,r16,r17,r18,.,r28,r29,r30,bd); axis(-5,15,-10,30,-10,30); grid on;end;%k=7Mk=7;MFailCount,MFailIndex=MulNear(Mk,Nr,Nt,xnr,xn

17、t,xnrSize,xntSize,3,3);Mpe=MFailCount/135if(Mpe0) for q=1:MFailCount r31(q)=xnt(MFailIndex(q,1),1); r32(q)=xnt(MFailIndex(q,1),2); r33(q)=xnt(MFailIndex(q,1),3); end; figure(5); plot3(r10,r11,r12,*,r13,r14,r15,o,r16,r17,r18,.,r31,r32,r33,bd); axis(-5,15,-10,30,-10,30); grid on;end;%threethree_1k.m代码

18、结束%随机分组函数sep.mfunction xnrSize,xntSize,xnrIndex,xntIndex,xnr,xnt = sep(x,dem,xIndex,rfa,sizepre) xntSize=double(int16(sizepre*rfa); xnrSize=sizepre-xntSize; xnt=zeros(xntSize,dem); xnr=zeros(xnrSize,dem); xntIndex=zeros(xntSize,1); xnrIndex=zeros(xnrSize,1); i=1; while(i=xntSize) rmn=xIndex(uint16(r

19、and(1,1)*sizepre)+1),1); quitflag=1; for j=1:i if(xntIndex(j,1)=rmn) quitflag=0; break; end; end; if(quitflag) xntIndex(i,1)=rmn; i=i+1; end;end;xntIndex=sort(xntIndex);xntIndexInx=zeros(xntSize,1);j=1;for i=1:xntSize while(xntIndex(i,1)=xIndex(j,1) j=j+1; end; xntIndexInx(i,1)=j;end;i=1;j=1;randex=

20、0;randpr=xntIndexInx(j,1);while(i1) xnrIndex(i,1)=xIndex(randpr-randdelt+1),1); randdelt=randdelt-1; i=i+1; end; j=j+1;end;if(dem=2) for i=1:xnrSize xnr(i,1)=x(xnrIndex(i,1),1); xnr(i,2)=x(xnrIndex(i,1),2); end; for i=1:xntSize xnt(i,1)=x(xntIndex(i,1),1); xnt(i,2)=x(xntIndex(i,1),2); end;end;if(dem

21、=3) for i=1:xnrSize xnr(i,1)=x(xnrIndex(i,1),1); xnr(i,2)=x(xnrIndex(i,1),2); xnr(i,3)=x(xnrIndex(i,1),3); end; for i=1:xntSize xnt(i,1)=x(xntIndex(i,1),1); xnt(i,2)=x(xntIndex(i,1),2); xnt(i,3)=x(xntIndex(i,1),3); end;end;%sep.m代码结束%1近邻法分类函数OneNear.mfunction FailCount,FailIndex=OneNear(xnrL,xntL,xn

22、r,xnt,xnrCount,xntCount,CountL,dem)FailCount=0; FailIndex=zeros(xntCount,1);k=1;for i=1:xntCount MinIndex=1; if(dem=2) MinOdis=(xnr(1,1)-xnt(i,1)2+(xnr(1,2)-xnt(i,2)2; end; if(dem=3) MinOdis=(xnr(1,1)-xnt(i,1)2+(xnr(1,2)-xnt(i,2)2+(xnr(1,3)-xnt(i,3)2; end; for j=1:xnrCount if(dem=2) OdisTemp=(xnr(j,1)-xnt(i,1)2+(xnr(j,2)-xnt(i,2)2; end; if(dem=3) OdisTemp=(xnr(j,1)-xnt(i,1)2+(xnr(j,2)-xnt(i,2)2+(xnr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1