MATLAB模糊聚類分析案例程序_第1頁
MATLAB模糊聚類分析案例程序_第2頁
MATLAB模糊聚類分析案例程序_第3頁
MATLAB模糊聚類分析案例程序_第4頁
MATLAB模糊聚類分析案例程序_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、3. 數(shù)據(jù)標準化(1) 數(shù)據(jù)矩陣設(shè)論域12345678910,1112u=,x xx xx xx xxx xx為被分類的對象,每個對 象 又 由 指 標1234567y = ,yyyyyyyyy表 示 其 性 狀 即1234567891x= ,iiiiiiiiiiiiixxxxxxxxxxxx(i=1,2,12)于是得到原是數(shù)據(jù)矩陣 7 5 2 5 0 1 3 4 2 12 17 8 21 9 2 38 4 37 83 29 59 65 37 20 54 13 26 53 13 31 36 21 a = 23 12 18 14 178 69 112 78 104 36 94 31 47 23

2、25 36 11 12 11 24 6 16 101 32 53 52 86 52 41 38 94 28 6 7 8 8 2 0 3 29 169 51 58 72 49 30 48 37 146 327 91 126 92 89 69 79 29 49 93 27 54 64 24 17 23 11 49 18 7 9 5 1 2 18 3 8 (2) 數(shù)據(jù)標準化將模糊矩陣的每一個數(shù)據(jù)壓縮到0,1上,采用平移 .極差變換進行數(shù)據(jù)標準化1in1in1ina (i,k)-a (i,k )b (i,k)=a (i,k)-a (i,k)m inm axm in(k=1,2,m) 運用 matlab

3、 編程由函數(shù) f_jisjbzh.m【見附錄 3.4】的標準化矩陣是附錄 3.4 function x=f_jisjbzh(cs,x) % 模糊聚類分析數(shù)據(jù)標準化變換%x 原始數(shù)據(jù)矩陣; cs=0,不變換; cs=1,標準差變換%cs=2,極差變換if(cs=0) return ;end n,m=size(x);% 獲得矩陣的行列數(shù)if(cs=1) % 平移極差變換 for(k=1:m) xk=0; for(i=1:n) xk=xk+x(i,k);end xk=xk/n;sk=0; for(i=1:n) sk=sk+(x(i,k)-xk)2;end sk=sqrt(sk/n); for(i=1

4、:n) x(i,k)=(x(i,k)-xk)/sk;end end else % 平移*極差變換 for(k=1:m) xmin=x(1,k);xmax=x(1,k); for(i=1:n) if(xminx(i,k) xmin=x(i,k);end if(xmaxx(i,k) xmax=x(i,k);end end for(i=1:n) x(i,k)=(x(i,k)-xmin)/(xmax-xmin);end end end 0 0 0 0 0 0 0.0319 0.0286 0 0.0156 0.1395 0.0484 0.1839 0.0865 0.0147 0.4043 0.b=028

5、6 0.2431 0.2375 0.2791 0.4597 0.6897 0.3558 0.2794 0.5745 0.2857 0.1667 0.1437 0.0930 0.2339 0.3563 0.2019 0.3235 0.1277 0.4286 0.0833 0.5344 0.7442 0.8871 0.8391 1.0000 0.5147 1.0000 0.8000 0.3125 0.0500 0.2326 0.2742 0.0690 0.1154 0.1471 0.2553 0.0857 0.0972 0.2938 0.3140 0.4113 0.5402 0.8269 0.75

6、00 0.4362 1.0000 0.6389 0.0656 0.0116 0.0403 0.0345 0.0769 0.0147 0 0 0.1875 0.5062 0.5349 0.4516 0.7701 0.4712 0.4265 0.5106 0.9714 1.0000 1.0000 1.0000 1.0000 1.0000 0.8558 1.0000 0.8404 0.7429 0.3264 0.2687 0.2558 0.4194 0.6782 0.2308 0.2353 0.2447 0.2286 0.3264 0.0344 0.0233 0.0565 0 0.0096 0.01

7、47 0.1915 0 0.0417第二步:標定(建立模糊相似矩陣)對標定我們運用了直接歐幾里得距離法:ijr1cd(x,x)ij其中 c 為任意選區(qū)的參數(shù),它使得0ijr1,d(x,x)ij表示ix與jx的距離,21(,)()mijikjkkdxxxx運用 matlab 軟件編寫 f_jir.m 函數(shù)【見附錄 3.5】 ,取 cs=8,的模糊相似矩陣附錄 3.5 : (僅附錄了一段用到的程序)function r=f_jir(cs,x) %cs=8 ,直接歐幾里得距離法%cs=9 ,直接海明距離法(絕對值減數(shù)法)%cs=10 ,直接切比雪夫距離法elseif(cs=10) c=0; for(

8、i=1:n) for(j=i+1:n) d=0; %直接歐幾里得距離法 if(cs=8) for(k=1:m) d=d+(x(i,k)-x(j,k)2; end d=sqrt(d); %直接海明距離法 elseif(cs=9) for(k=1:m) d=d+abs(x(i,k)-x(j,k); end %直接切比雪夫距離法 else for(k=1:m) if(dabs(x(i,k)-x(j,k) d=abs(x(i,k)-x(j,k); end end end if(cd) c=d; end end end c=1/(1+c); for(i=1:n) for(j=1:n) d=0; %直接歐

9、幾里得距離法 if(cs=8) for(k=1:m) d=d+(x(i,k)-x(j,k)2; end d=sqrt(d); %直接海明距離法 elseif(cs=9) for(k=1:m) d=d+abs(x(i,k)-x(j,k); end %直接切比雪夫距離法 else for(k=1:m) if(dabs(x(i,k)-x(j,k) d=abs(x(i,k)-x(j,k); end end end r(i,j)=1-c*d; end end 1.0000 0.8596 0.6731 0.7995 0.3715 0.8668 0.4930 0.9383 0.4602 0.2745 0.7

10、151 0.9499 0.8596 1.0000 0.7638 0.8150 0.4634 0.8973 0.5608 0.87r46 0.5490 0.3541 0.7866 0.89 72 0.6731 0.7638 1.0000 0.8140 0.6694 0.7736 0.6961 0.6907 0.6812 0.5618 0.8907 0.7016 0.7995 0.8150 0.8140 1.00 00 0.5349 0.8534 0.6705 0.81 05 0.6204 0.4449 0.8491 0.80 63 0.3715 0.4634 0.6694 0.5349 1.00

11、00 0.4863 0.7104 0.3928 0.6905 0.7863 0.5998 0.40 01 0.8668 0.8973 0.7736 0.8534 0.4863 1.0000 0.5801 0.8755 0.5494 0.3881 0.7991 0.8972 0.4930 0.5608 0.6961 0.6705 0.7104 0.5801 1.0000 0.52 16 0.8026 0.6199 0.6783 0.50 91 0.9383 0.8746 0.6907 0.8105 0.3928 0.8755 0.5216 1.0000 0.4959 0.2979 0.7446

12、0.9300 0.4602 0.5490 0.6812 0.62 04 0.6905 0.5494 0.8026 0.49 59 1.0000 0.6214 0.6852 0.48 02 0.2745 0.3541 0.5618 0.4449 0.7863 0.3881 0.6199 0.2979 0.6214 1.0000 0.5161 0.30 02 0.7151 0.7866 0.8907 0.8491 0.5998 0.7991 0.6783 0.7446 0.6852 0.5161 1.0000 0.7343 0.9499 0.8972 0.7016 0.8063 0.4001 0.

13、8972 0.5091 0.93 00 0.4802 0.3002 0.7343 1.00 00(3)聚類(求動態(tài)聚類圖)傳遞閉包法根據(jù)標定所得的模糊矩陣,只是一個模糊相似矩陣r,不一定具有傳遞性,即 r 不一定是模糊等價矩陣,還需要對其改造成模糊等價矩陣r ,根據(jù)定理,用二次方法求傳遞閉包t(r) ,t(r)就是所求模糊等價矩陣r ,即:t(r)=r ,再讓由大變到小,就可形成動態(tài)聚類圖。通過 matlab 軟件編的函數(shù) f_jidtjl.m 【見附錄 3.6】 ,得到動態(tài)聚類圖或者直接運用 matlab 軟件編的函數(shù) f_jlfx.m【見附錄 3.7】 ,運行 f_jlfx(2,8,a)得

14、動態(tài)聚類圖是:附錄 3.6 :function f_jidtjl(r)%定義函數(shù)% 模糊聚類分析動態(tài)聚類%r 模糊相似矩陣m,n=size(r);%獲得矩陣的行列數(shù)if(m=n|m=0) return ;end for(i=1:n) r(i,i)=1;%修正錯誤 for(j=i+1:n) if(r(i,j)1) r(i,j)=1;end r(i,j)=round(10000*r(i,j)/10000;%保留四位小數(shù) r(j,i)=r(i,j); end end js0=0; while(1)% 求傳遞閉包 r1=max_min(r,r);% 【見附錄 3.6.1 】js0=js0+1; if(

15、r1=r) break;else r=r1;end end imd(1)=1;k=1; for(i=1:n) for(j=i+1:n) pd=1;%找出所有不相同的元素 for(x=1:k) if(r(i,j)=imd(x) pd=0;break;end;end if(pd) k=k+1;imd(k)=r(i,j);end end;end for(i=1:k-1) for(j=i+1:k) if(imd(i)=imd(x) js=js+1;sz(js)=j;end;end flsz(x)=flsz(x)+1; end end end for(i=1:k-1) for(j=i+1:k) if(f

16、lsz(j)=flsz(i) flsz(j)=0;end;end;end fl=0;% 排除相同的分類for(i=1:k) if(flsz(i) fl=fl+1;imd(fl)=imd(i);end;end for(i=1:n) xhsz(i)=i;end for(x=1:fl)%獲得分類情況:對元素分類進行排序 js=0;flsz(x)=0; for(i=1:n) pd=1; for(y=1:js) if(sz(y)=i) pd=0;break;end;end if(pd) if(js=0) y=0;end for(j=1:n) if(r(i,j)=imd(x) js=js+1;sz(js)

17、=j;end;end flsz(x)=flsz(x)+1; sz0(flsz(x)=js-y; end end js0=0; for(i=1:flsz(x) for(j=1:sz0(i) sz1(j)=sz(js0+j);end for(j=1:n) for(y=1:sz0(i) if(xhsz(j)=sz1(y) js0=js0+1;sz(js0)=xhsz(j);end;end;end end for(i=1:n) xhsz(i)=sz(i);end end for(x=1:fl)%獲得分類情況:每一子類的元素個數(shù) js=0;flsz(x)=0; for(i=1:n) pd=1; for(

18、y=1:js) if(sz(y)=i) pd=0;break;end;end if(pd) if(js=0) y=0;end for(j=1:n) if(r(i,j)=imd(x) js=js+1;sz(js)=j;end;end flsz(x)=flsz(x)+1;sz0(flsz(x)=js-y; end end js0=1; for(i=1:flsz(x) y=1; for(j=1:flsz(x) if(sz(y)=xhsz(js0) flqksz(x,i)=sz0(j);js0=js0+sz0(j);break;end y=y+sz0(j); end end end f_dtjltx=

19、figure(name,動態(tài)聚類圖 ,color,w); axis(off); kd=30;gd=40;y=fl*gd+gd;lx=80; text(24,y+gd/2,); for(i=1:n) text(lx-5+i*kd-0.4*kd*(xhsz(i)9),y+gd/2,int2str(xhsz(i); line(lx+i*kd,lx+i*kd,y,y-gd); linesz(i)=lx+i*kd; end text(lx*1.5+i*kd,y+gd/2,分類數(shù) ); y=y-gd; for(x=1:fl) text(8,y-gd/2,num2str(imd(x); js0=1;js1=

20、0; if(x=1) for(i=1:flsz(x) js1=flqksz(x,i)-1; if(js1) line(linesz(js0),linesz(js0+js1),y,y);end line(linesz(js0+js1)+linesz(js0)/2,(linesz(js0+js1)+linesz(js0)/2,y,y-gd); linesz(i)=(linesz(js0+js1)+linesz(js0)/2; js0=js0+js1+1; end else for(i=1:flsz(x) js1=js1+flqksz(x,i); js2=0;pd=0; for(j=1:flsz(x

21、-1) js2=js2+flqksz(x-1,j); if(js2=js1) pd=1;break;end end if(j=js0) line(linesz(js0),linesz(j),y,y);end line(linesz(js0)+linesz(j)/2,(linesz(js0)+linesz(j)/2,y,y-gd); linesz(i)=(linesz(js0)+linesz(j)/2; js0=j+1; end;end text(2*lx+n*kd,y-gd/3,int2str(flsz(x); y=y-gd; end 圖六:動態(tài)聚類圖根據(jù)動態(tài)聚類圖,選定不同的的值,將就可以得

22、到不同的分類。附錄 3.5 : (僅附錄了一段用到的程序)function r=f_jir(cs,x) %cs=8 ,直接歐幾里得距離法%cs=9 ,直接海明距離法(絕對值減數(shù)法)%cs=10 ,直接切比雪夫距離法elseif(cs=10) c=0; for(i=1:n) for(j=i+1:n) d=0; %直接歐幾里得距離法 if(cs=8) for(k=1:m) d=d+(x(i,k)-x(j,k)2; end d=sqrt(d); %直接海明距離法 elseif(cs=9) for(k=1:m) d=d+abs(x(i,k)-x(j,k); end %直接切比雪夫距離法 else for(k=1:m) if(d

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論