模式識別 最近鄰法和k近鄰法MATLAB實現(xiàn)_第1頁
模式識別 最近鄰法和k近鄰法MATLAB實現(xiàn)_第2頁
模式識別 最近鄰法和k近鄰法MATLAB實現(xiàn)_第3頁
模式識別 最近鄰法和k近鄰法MATLAB實現(xiàn)_第4頁
模式識別 最近鄰法和k近鄰法MATLAB實現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

..最近鄰法和k-近鄰法學(xué)號:02105120:吳林一.根本概念:最近鄰法:對于未知樣本x,比擬x與N個類別的樣本之間的歐式距離,并決策x與距離它最近的樣本同類。K近鄰法:取未知樣本x的k個近鄰,看這k個近鄰中多數(shù)屬于哪一類,就把x歸為哪一類。K取奇數(shù),為了是防止k1=k2的情況。二.問題分析:要判別x屬于哪一類,關(guān)鍵要求得與x最近的k個樣本〔當(dāng)k=1時,即是最近鄰法〕,然后判別這k個樣本的多數(shù)屬于哪一類??刹捎脷W式距離公式求得兩個樣本間的距離s=sqrt〔〔x1-x2〕^2+(y1-y2)^2〕三.算法分析:該算法中任取每類樣本的一半作為訓(xùn)練樣本,其余作為測試樣本。例如iris中取每類樣本的25組作為訓(xùn)練樣本,剩余25組作為測試樣本,依次求得與一測試樣本x距離最近的k個樣本,并判斷k個樣本多數(shù)屬于哪一類,那么x就屬于哪類。測試10次,取10次分類正確率的平均值來檢驗算法的性能。四.MATLAB代碼:最近鄰算實現(xiàn)對Iris分類clc;totalsum=0;forii=1:10data=load('iris.txt');data1=data(1:50,1:4);%任取Iris-setosa數(shù)據(jù)的25組rbow1=randperm(50);trainsample1=data1(rbow1(:,1:25),1:4);rbow1(:,26:50)=sort(rbow1(:,26:50));%剩余的25組按行下標(biāo)大小順序排列testsample1=data1(rbow1(:,26:50),1:4);data2=data(51:100,1:4);%任取Iris-versicolor數(shù)據(jù)的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數(shù)據(jù)的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組數(shù)據(jù)的樣本集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=4forx=1:ufory=1:iresult=sqrt((testsample(x,1)-trainsample(y,1))^2+(testsample(x,2)-trainsample(y,2))^2+(testsample(x,3)-trainsample(y,3))^2+(testsample(x,4)-trainsample(y,4))^2);%歐式距離newchar(1,y)=result;end;[new,Ind]=sort(newchar);class1=0;class2=0;class3=0;ifInd(1,1)<=25class1=class1+1;elseifInd(1,1)>25&&Ind(1,1)<=50class2=class2+1;elseclass3=class3+1;endifclass1>class2&&class1>class3m=1;ty='Iris-setosa';elseifclass2>class1&&class2>class3m=2;ty='Iris-versicolor';elseifclass3>class1&&class3>class2m=3;ty='Iris-virginica';elsem=0;ty='none';endifx<=25&&m>0disp(sprintf('第%d組數(shù)據(jù)分類后為%s類',rbow1(:,x+25),ty));elseifx<=25&&m==0disp(sprintf('第%d組數(shù)據(jù)分類后為%s類',rbow1(:,x+25),'none'));endifx>25&&x<=50&&m>0disp(sprintf('第%d組數(shù)據(jù)分類后為%s類',50+rbow2(:,x),ty));elseifx>25&&x<=50&&m==0disp(sprintf('第%d組數(shù)據(jù)分類后為%s類',50+rbow2(:,x),'none'));endifx>50&&x<=75&&m>0disp(sprintf('第%d組數(shù)據(jù)分類后為%s類',100+rbow3(:,x-25),ty));elseifx>50&&x<=75&&m==0disp(sprintf('第%d組數(shù)據(jù)分類后為%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));測試結(jié)果:第3組數(shù)據(jù)分類后為Iris-setosa類第5組數(shù)據(jù)分類后為Iris-setosa類第6組數(shù)據(jù)分類后為Iris-setosa類第7組數(shù)據(jù)分類后為Iris-setosa類第10組數(shù)據(jù)分類后為Iris-setosa類第11組數(shù)據(jù)分類后為Iris-setosa類第12組數(shù)據(jù)分類后為Iris-setosa類第14組數(shù)據(jù)分類后為Iris-setosa類第16組數(shù)據(jù)分類后為Iris-setosa類第18組數(shù)據(jù)分類后為Iris-setosa類第19組數(shù)據(jù)分類后為Iris-setosa類第20組數(shù)據(jù)分類后為Iris-setosa類第23組數(shù)據(jù)分類后為Iris-setosa類第24組數(shù)據(jù)分類后為Iris-setosa類第26組數(shù)據(jù)分類后為Iris-setosa類第28組數(shù)據(jù)分類后為Iris-setosa類第30組數(shù)據(jù)分類后為Iris-setosa類第31組數(shù)據(jù)分類后為Iris-setosa類第34組數(shù)據(jù)分類后為Iris-setosa類第37組數(shù)據(jù)分類后為Iris-setosa類第39組數(shù)據(jù)分類后為Iris-setosa類第41組數(shù)據(jù)分類后為Iris-setosa類第44組數(shù)據(jù)分類后為Iris-setosa類第45組數(shù)據(jù)分類后為Iris-setosa類第49組數(shù)據(jù)分類后為Iris-setosa類第51組數(shù)據(jù)分類后為Iris-versicolor類第53組數(shù)據(jù)分類后為Iris-versicolor類第54組數(shù)據(jù)分類后為Iris-versicolor類第55組數(shù)據(jù)分類后為Iris-versicolor類第57組數(shù)據(jù)分類后為Iris-versicolor類第58組數(shù)據(jù)分類后為Iris-versicolor類第59組數(shù)據(jù)分類后為Iris-versicolor類第60組數(shù)據(jù)分類后為Iris-versicolor類第61組數(shù)據(jù)分類后為Iris-versicolor類第62組數(shù)據(jù)分類后為Iris-versicolor類第68組數(shù)據(jù)分類后為Iris-versicolor類第70組數(shù)據(jù)分類后為Iris-versicolor類第71組數(shù)據(jù)分類后為Iris-virginica類第74組數(shù)據(jù)分類后為Iris-versicolor類第75組數(shù)據(jù)分類后為Iris-versicolor類第77組數(shù)據(jù)分類后為Iris-versicolor類第79組數(shù)據(jù)分類后為Iris-versicolor類第80組數(shù)據(jù)分類后為Iris-versicolor類第84組數(shù)據(jù)分類后為Iris-virginica類第85組數(shù)據(jù)分類后為Iris-versicolor類第92組數(shù)據(jù)分類后為Iris-versicolor類第95組數(shù)據(jù)分類后為Iris-versicolor類第97組數(shù)據(jù)分類后為Iris-versicolor類第98組數(shù)據(jù)分類后為Iris-versicolor類第99組數(shù)據(jù)分類后為Iris-versicolor類第102組數(shù)據(jù)分類后為Iris-virginica類第103組數(shù)據(jù)分類后為Iris-virginica類第105組數(shù)據(jù)分類后為Iris-virginica類第106組數(shù)據(jù)分類后為Iris-virginica類第107組數(shù)據(jù)分類后為Iris-versicolor類第108組數(shù)據(jù)分類后為Iris-virginica類第114組數(shù)據(jù)分類后為Iris-virginica類第118組數(shù)據(jù)分類后為Iris-virginica類第119組數(shù)據(jù)分類后為Iris-virginica類第124組數(shù)據(jù)分類后為Iris-virginica類第125組數(shù)據(jù)分類后為Iris-virginica類第126組數(shù)據(jù)分類后為Iris-virginica類第127組數(shù)據(jù)分類后為Iris-virginica類第128組數(shù)據(jù)分類后為Iris-virginica類第129組數(shù)據(jù)分類后為Iris-virginica類第130組數(shù)據(jù)分類后為Iris-virginica類第133組數(shù)據(jù)分類后為Iris-virginica類第135組數(shù)據(jù)分類后為Iris-virginica類第137組數(shù)據(jù)分類后為Iris-virginica類第138組數(shù)據(jù)分類后為Iris-virginica類第142組數(shù)據(jù)分類后為Iris-virginica類第144組數(shù)據(jù)分類后為Iris-virginica類第148組數(shù)據(jù)分類后為Iris-virginica類第149組數(shù)據(jù)分類后為Iris-virginica類第150組數(shù)據(jù)分類后為Iris-virginica類k近鄰法對wine分類:clc;otalsum=0;forii=1:10%循環(huán)測試10次data=load('wine.txt');%導(dǎo)入wine數(shù)據(jù)data1=data(1:59,1:13);%任取第一類數(shù)據(jù)的30組rbow1=randperm(59);trainsample1=data1(sort(rbow1(:,1:30)),1:13);rbow1(:,31:59)=sort(rbow1(:,31:59));%剩余的29組按行下標(biāo)大小順序排列testsample1=data1(rbow1(:,31:59),1:13);data2=data(60:130,1:13);%任取第二類數(shù)據(jù)的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);%任取第三類數(shù)據(jù)的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組數(shù)據(jù)的樣本集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=13forx=1:ufory=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_sample(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_sample(y,10))^2+(test_sample(x,11)-train_sample(y,11))^2+(test_sample(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;class2=0;class3=0;forn=1:kifInd(1,n)<=30class1=class1+1;elseifInd(1,n)>30&&Ind(1,n)<=65class2=class2+1;elseclass3=class3+1;endendifclass1>=class2&&class1>=class3m=1;elseifclass2>=class1&&class2>=class3m=2;elseifclass3>=class1&&class3>=class2m=3;endifx<=29disp(sprintf('第%d組數(shù)據(jù)分類后為第%d類',rbow1(:,30+x),m));elseifx>29&&x<=65disp(sprintf('第%d組數(shù)據(jù)分類后為第%d類',59+rbow2(:,x+6),m));elseifx>65&&x<=89disp(sprintf('第%d組數(shù)據(jù)分類后為第%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組數(shù)據(jù)分類后為第1類第4組數(shù)據(jù)分類后為第1類第5組數(shù)據(jù)分類后為第3類第6組數(shù)據(jù)分類后為第1類第8組數(shù)據(jù)分類后為第1類第10組數(shù)據(jù)分類后為第1類第11組數(shù)據(jù)分類后為第1類第14組數(shù)據(jù)分類后為第1類第16組數(shù)據(jù)分類后為第1類第19組數(shù)據(jù)分類后為第1類第20組數(shù)據(jù)分類后為第3類第21組數(shù)據(jù)分類后為第3類第22組數(shù)據(jù)分類后為第3類第26組數(shù)據(jù)分類后為第3類第27組數(shù)據(jù)分類后為第1類第28組數(shù)據(jù)分類后為第1類第30組數(shù)據(jù)分類后為第1類第33組數(shù)據(jù)分類后為第1類第36組數(shù)據(jù)分類后為第1類第37組數(shù)據(jù)分類后為第1類第43組數(shù)據(jù)分類后為第1類第44組數(shù)據(jù)分類后為第3類第45組數(shù)據(jù)分類后為第1類第46組數(shù)據(jù)分類后為第1類第49組數(shù)據(jù)分類后為第1類第52組數(shù)據(jù)分類后為第1類第54組數(shù)據(jù)分類后為第1類第56組數(shù)據(jù)分類后為第1類第57組數(shù)據(jù)分類后為第1類第60組數(shù)據(jù)分類后為第2類第61組數(shù)據(jù)分類后為第3類第63組數(shù)據(jù)分類后為第3類第65組數(shù)據(jù)分類后為第2類第66組數(shù)據(jù)分類后為第3類第67組數(shù)據(jù)分類后為第2類第71組數(shù)據(jù)分類后為第1類第72組數(shù)據(jù)分類后為第2類第74組數(shù)據(jù)分類后為第1類第76組數(shù)據(jù)分類后為第2類第77組數(shù)據(jù)分類后為第2類第79組數(shù)據(jù)分類后為第3類第81組數(shù)據(jù)分類后為第2類第82組數(shù)據(jù)分類后為第3類第83組數(shù)據(jù)分類后為第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論