模式識(shí)別大作業(yè)._第1頁
模式識(shí)別大作業(yè)._第2頁
模式識(shí)別大作業(yè)._第3頁
模式識(shí)別大作業(yè)._第4頁
模式識(shí)別大作業(yè)._第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、模式識(shí)別大作業(yè) 班 級 學(xué) 號姓 名一.問題重述 利用Fisher線性判別法和最近鄰算法對sonar數(shù)據(jù)進(jìn)行分類,并得出正確率。類別數(shù)維數(shù)樣本個(gè)數(shù)sonar260mine:111rock:97二.Fisher線性判別法思路用訓(xùn)練樣本求出d維空間到一維空間的投影方向w,進(jìn)而求出樣本均值,進(jìn)而可求出閾值T,帶入測試樣本得到投影點(diǎn)y,將y與T相比,即可進(jìn)行分類判別。2.1 Fisher準(zhǔn)則函數(shù)中的基本參量 <1>在d維X空間 (1)各類樣本的均值向量 =(2)樣本類內(nèi)離散度矩陣和總樣本類內(nèi)離散度矩陣 其中是對稱半正定矩陣,而且當(dāng)時(shí)通常是非奇異的。(3)樣本類間離散度矩陣 是對稱半正定矩陣

2、。<2>在一維Y空間(1)各類樣本的均值(2)樣本類內(nèi)離散度和總樣本類內(nèi)離散度 我們希望投影后,在一維Y空間中各類樣本盡可能分得開些,即希望兩類均值之差越大越好,同時(shí)希望各類樣本內(nèi)部盡量密集,即希望類內(nèi)離散度越小越好。2.2 Fisher準(zhǔn)則函數(shù)及最佳變換向量的求取其中,是兩類均值之差,是樣本類內(nèi)離散度。應(yīng)尋找使盡可能大的作為投影方向。2.3 閾值的選用三.最近鄰算法思路 在訓(xùn)練樣本中找到測試樣本的最近鄰,然后根據(jù)這個(gè)最近鄰樣本的類別來決定測試樣本的類別。最近鄰算法所選擇的鄰居都是已經(jīng)正確分類的對象。 若寫成判別函數(shù)的形式,類的判別函數(shù)可以寫作,則四.Fisher線性判別法代碼mi

3、ne_max=111; rock_max=97;d=60;load ('mines.mat'); %導(dǎo)入mine數(shù)據(jù)load ('rocks.mat'); %導(dǎo)入rock數(shù)據(jù)amine=rand(mine_max,1);m=0;for i=1:mine_max if amine(i,1)>=0.5 amine(i,1)=1; m=m+1; %記錄結(jié)果大于或等于0.5的個(gè)數(shù)(mine) else amine(i,1)=0; endendarock=rand(rock_max,1);s=0;for i=1:rock_max if arock(i,1)>=

4、0.5 arock(i,1)=1; s=s+1; %記錄結(jié)果大于或等于0.5的個(gè)數(shù)(rock) else arock(i,1)=0; endendbmine=zeros(m,1);cmine=zeros(mine_max-m,1);j=0;t=0;for i=1:mine_max if amine(i,1)=1; j=j+1; bmine(j,1)=i; %mine中下標(biāo)為1的放在一個(gè)向量中 else t=t+1; cmine(t,1)=i; %mine中下標(biāo)為0的放在一個(gè)向量中 endendbrock=zeros(s,1);crock=zeros(rock_max-s,1);j=0;t=0;

5、for i=1:rock_max if arock(i,1)=1; j=j+1; brock(j,1)=i; %rock中下標(biāo)為1的放在一個(gè)向量中 else t=t+1; crock(t,1)=i; %rock中下標(biāo)為0的放在一個(gè)向量中 endenddmine=zeros(1,60);for i=1:60 for j=1:m dmine(1,i)=dmine(1,i)+outmine(bmine(j,1),i); endendmm=dmine/m; %求解mine的類均值向量drock=zeros(1,60);for i=1:60 for j=1:s drock(1,i)=drock(1,i)

6、+outrock(brock(j,1),i); endendmr=drock/s; %求解rock的類均值向量mm=mm'mr=mr's_mine=zeros(d,d);s_rock=zeros(d,d);for i=1:m s_mine=s_mine+(outmine(bmine(i,1),:)'-mm)*(outmine(bmine(i,1),:)'-mm)'end %求解mine的類內(nèi)離散度矩陣for i=1:s s_rock=s_rock+(outrock(brock(i,1),:)'-mr)*(outrock(brock(i,1),:)

7、'-mr)'end %求解rock的類內(nèi)離散度矩陣sw=s_mine+s_rock;w_direction=sw(-1)*(mm-mr);w0=w_direction'*(mm+mr)/2;x=-1:2;y=-1:2;hold on;plot(x,y);y=w0;plot(y,y,'xk'); %閾值坐標(biāo)text(0.6,0.5,'w');text(-0.4,0,'rock');text(0.4,0.2,'mine');title('Fisher');xlabel('mine'

8、;);ylabel('rock');emine=0;erock=0;for i=1:mine_max-m y=w_direction'*outmine(cmine(i,1),:)' if y>w0 plot(y,y,'og'); %正確分類的mine樣本的坐標(biāo) else plot(y,y,'+m'); emine=emine+1; %錯(cuò)誤分類的mine樣本的個(gè)數(shù) endendfor i=1:rock_max-s y=w_direction'*outrock(crock(i,1),:)' if y<w0

9、plot(y,y,'oc'); %正確分類的rock樣本的坐標(biāo) else plot(y,y,'+r'); erock=erock+1; %錯(cuò)誤分類的rock樣本的個(gè)數(shù) endendtext(-0.2,0.63,'errmine:' num2str(emine*100/(111-m) '%');text(-0.2,-0.43,'errrock:' num2str(emine*100/(97-s) '%');5 最近鄰算法代碼load Mine.txt; %導(dǎo)入mine數(shù)據(jù)load Rock.txt;

10、%導(dǎo)入rock數(shù)據(jù)Max=10; for i=1:Max %用于計(jì)數(shù),進(jìn)行十次試驗(yàn) %從Mine中選出55個(gè)隨機(jī)數(shù) out_1 = round(randperm(111); data_1=out_1(1:55); Mine_1= Mine(data_1,1:60); %從Rock中選出48個(gè)隨機(jī)數(shù) out_2 = round(randperm(97); data_2=out_2(1:48); Rock_1 = Rock(data_2,1:60); %Mine中測試樣本 m=1;n=1; for i=1:111 if find(data_1=i) %Mine中訓(xùn)練樣本 Mine_1(m,:)=M

11、ine(i,:); m=m+1; else Mine_2(n,:)=Mine(i,:); %Mine中測試樣本 n=n+1; end end %Rock中測試樣本 m=1;n=1; for i=1:97 if find(data_2=i) %Rock中訓(xùn)練樣本 Rock_1(m,:)=Rock(i,:); m=m+1; else Rock_2(n,:)=Rock(i,:); %Rock中測試樣本 n=n+1; end end %求Mine_2中各測試樣本到訓(xùn)練樣本Mine_1和Rock_1的歐氏距離 for i=1:56 a1=Mine_2(i,:); b1=Mine_2(i,:); for

12、j=1:55 c11=Mine_1(j,:); d1_1(i,j)=norm(a1-c11); end %Mine_2中的測試樣本到Mine_1中訓(xùn)練樣本的距離矩陣 for j=1:48 c12=Rock_1(j,:); d1_2(i,j)=norm(b1-c12); end %Mine_2中的測試樣本到Rock_1中訓(xùn)練樣本的距離矩陣 end for i=1:56 d11(i,1)=min(d1_1(i,:); end %取距離待測點(diǎn)最近的點(diǎn)作為判別點(diǎn) for i=1:56 d12(i,1)=min(d1_2(i,:); end %取距離待測點(diǎn)最近的點(diǎn)作為判別點(diǎn) e1=d11-d12; h1

13、=find(e1<=0); s1=numel(h1); %正確分類的Mine_2中的元素個(gè)數(shù) %求Rock_2中各測試樣本到訓(xùn)練樣本Mine_1和Rock_1的歐氏距離 for i=1:49 a2=Rock_2(i,:); b2=Rock_2(i,:); for j=1:55 c21=Mine_1(j,:); d2_1(i,j)=norm(a2-c21); end %Rock_2中的測試樣本到Mine_1中訓(xùn)練樣本的距離矩陣 for j=1:48 c22=Rock_1(j,:); d2_2(i,j)=norm(b2-c22); end %Rock_2中的測試樣本到Rock_1中訓(xùn)練樣本的

14、距離矩陣 end for i=1:49 d21(i,1)=min(d2_1(i,:); end %取距離待測點(diǎn)最近的點(diǎn)作為判別點(diǎn) for i=1:49 d22(i,1)=min(d2_2(i,:); end %取距離待測點(diǎn)最近的點(diǎn)作為判別點(diǎn) e2=d21-d22; h2=find(e2>=0); s2=numel(h2); %正確分類的Rock_2中的元素個(gè)數(shù) r=(s1+s2)/105; end 六.MATLAB運(yùn)行截圖1.將數(shù)據(jù)導(dǎo)入MATLAB中,并整理2.一維空間投影方向w的確定3.對測試樣本進(jìn)行分類,得到分類結(jié)果及正確率 下圖為第一次Fisher的結(jié)果:mine的正確率約為73.

15、68%,rock的正確率約為71.70% 下圖為第一次最近鄰算法的結(jié)果:mine的正確率約為89.27%,rock的正確率約為71.43%最近鄰算法運(yùn)行次數(shù)正確率(%)minerock189.2771.43280.3677.55382.6773.47488.6872.63582.1475.51678.5769.39787.585.71882.1376.24979.571.041086.7585.32平均正確率83.7675.86Fisher線性判別法運(yùn)行次數(shù)正確率(%)minerock173.6871.7268.5460.12365.0560.28468.5161.33572.8769.3966460.06776.3873.1867.7561.69970.6465.721066.5760.28平均正確率69.464.37七.心得體會(huì) Fisher線性判別法在一些情況下,并不比最近鄰算法更優(yōu)。因?yàn)榫蜕鲜鼋Y(jié)果而言,最近鄰算法還是有自己的正確率優(yōu)勢,但是二者平均正確率都不是很高。對于Fisher線性判別法來

溫馨提示

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

評論

0/150

提交評論