模糊聚类及matlab实现,matlab模糊聚类程序

《matlab模糊聚类程序》由会员分享,可在线阅读,更多相关《matlab模糊聚类程序(17页珍藏版)》请在人人文库网上搜索。

1、实用标准文档文案大全3数据标准化(1)数据矩阵设论域U二伪必匹,庞,沧,冷必压必0,为1必2为被分类的对象,每个对象又由指标Y=%,%,%,%,%,丫6,%,%9表示其性状即Xi =冷,x2, x3, x4, x5,xi6,xi7,為 Xi9, XlOXll,冷分(i = 1,2,12)于是得到原是数据矩阵7525013421217821923843783295965372054132653133136212312181417869112781043694314723253611121124616A=10132535286524138942867882032916951587249304837。

2、1463279112692896979294993275464241723114918795121838(2)数据标准化将模糊矩阵的每一个数据压缩到0,1上,采用平移.极差变换进行数据标准B(i,k)=A(i,k)- mjn A(i,k)1 i nmaxA(i,k)- m.in A(i,k)(k=1,2,m)运用matlab编程由函数Fisjbzh.m【见附录3.4】的标准化矩阵是附录3.4fun ctio n X=F_JISjBzh(cs,X)%模糊聚类分析数据标准化变换%X 原始数据矩阵; cs=0 ,不变换; cs=1 ,标准差变换 %cs=2, 极差变换 if(cs=0) return。

3、 ;endn,m=size(X);% 获得矩阵的行列数 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)-xkF2;e nd sk=sqrt(sk/n);for(i=1:n) X(i,k)=(X(i,k)-xk)/sk;endendelse % 平移 * 极差变换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(xmax 传递闭包法根据标定所。

4、得的模糊矩阵,只是一个模糊相似矩阵R,不一定具有传递性,即 R 不一定是模糊等价矩阵,还需要对其改造成模糊等价矩阵R ,根据定理,用二次方法求传递闭包t (R), t ( R)就是所求模糊等价矩阵R,即:t (R)=R ,再让 由大变到小,就可形成动态聚类图。通过 matlab 软件编的函数 F_JIDtjl.m 【见附录 3.6 】,得到动态聚类图或 者直接运用 matlab 软件编的函数 F_Jlfx.m 【见附录 3.7】,运行 F_Jlfx(2,8,A) 得 动态聚类图是:附录 3.6 :function F_JIDtjl(R)% 定义函数%模糊聚类分析动态聚类%R 模糊相似矩阵m,n。

5、=size(R);% 获得矩阵的行列数if(m=n|m=0) return ;endfor(i=1:n) R(i,i)=1;% 修正错误for(j=i+1:n)if(R(i,j)1) R(i,j)=1;endR(i,j)=round(10000*R(i,j)/10000;% 保留四位小数 R(j,i)=R(i,j);endendjs0=0;while(1)% 求传递闭包R1=Max_Min(R,R);% 【见附录 3.6.1 】js0=js0+1;if(R1=R) break;else R=R1;endendImd(1)=1;k=1;for(i=1:n) for(j=i+1:n) pd=1;%。

6、 找出所有不相同的元素for(x=1:k)if(R(i,j)=Imd(x) pd=0;break;end;endif(pd) k=k+1;Imd(k)=R(i,j);endend;endfor(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;endendendfor(i=1:k-1)for(j=i+1:k)if(flsz(j)=flsz(i) flsz( j)=0;end;end;endfl=0;% 排除相同的分类for(i=1:k) if(flsz(i) fl=fl+1;Imd(。

7、fl)=Imd(i);end;endfor(i=1:n) xhsz(i)=i;endfor(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;endif(pd) if(js=0) y=0;endfor(j=1:n) if(R(i,j)=Imd(x) js=js+1;Sz(js)=j;end;endflsz(x)=flsz(x)+1;Sz0(flsz(x)=js-y;endendjs0=0;for(i=1:flsz(x)for(j=1:Sz0(i) Sz1(。

8、j)=Sz(js0+j);endfor(j=1:n) for(y=1:Sz0(i)if(xhsz(j)=Sz1(y)js0=js0+1;Sz(js0)=xhsz(j);end;end;endendfor(i=1:n) xhsz(i)=Sz(i);endendfor(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;endif(pd) if(js=0) y=0;endfor(j=1:n) if(R(i,j)=Imd(x) js=js+1;Sz(js)=j;e。

9、nd;endflsz(x)=flsz(x)+1;Sz0(flsz(x)=js-y;endendjs0=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;endy=y+Sz0(j);endendendF_dtjltx=figure(name, 动态聚类图 ,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*(xhs。

10、z(i)9),y+Gd/2,int2str(xhsz(i);line(lx+i*Kd,lx+i*Kd,y,y-Gd);linesz(i)=lx+i*Kd;endtext(lx*1.5+i*Kd,y+Gd/2, 分类数 );y=y-Gd;for(x=1:fl)text(8,y-Gd/2,num2str(Imd(x);js0=1;js1=0;if(x=1)for(i=1:flsz(x)js1=flqksz(x,i)-1;if(js1) line(linesz(js0),linesz(js0+js1),y,y);endline(linesz(js0+js1)+linesz(js0)/2,(lines。

11、z(js0+js1)+linesz(js0)/2,y,y-Gd);linesz(i)=(linesz(js0+js1)+linesz(js0)/2;js0=js0+js1+1;endelse for(i=1:flsz(x)js1=js1+flqksz(x,i);js2=0;pd=0;for(j=1:flsz(x-1)js2=js2+flqksz(x-1,j);if(js2=js1) pd=1;break;endend if(j=js0)line(linesz(js0),linesz(j),y,y);end line(linesz(js0)+linesz(j)/2,(linesz(js0)+li。

12、nesz(j)/2,y,y-Gd);linesz(i)=(linesz(js0)+linesz(j)/2;js0=j+1;end;endtext(2*lx+n*Kd,y-Gd/3,int2str(flsz(x);y=y-Gd;end图六:动态聚类图根据动态聚类图,选定不同的的值,将就可以得到不同的分类121110987S附录3.5 :(仅附录了一段用到的程序)fun ctio n R=F _ji r(cs,X)%cs=8,直接欧几里得距离法%cs=9,直接海明距离法(绝对值减数法)%cs=10,直接切比雪夫距离法elseif(cs=10)C=0;for(i=1: n)for(j=i+1: n)。

13、d=0;%直接欧几里得距离法if(cs=8)for(k=1:m)d=d+(X(i,k)-X(j,k)F2;endd=sqrt(d);%直接海明距离法elseif(cs=9)for(k=1:m)d=d+abs(X(i,k)-X(j,k);end%直接切比雪夫距离法elsefor(k=1:m)if(dabs(X(i,k)-X(j,k)d=abs(X(i,k)-X(j,k);endendendif(Cd)C=d;endendendC=1/(1+C);for(i=1:n)for(j=1:n)d=0;%直接欧几里得距离法if(cs=8)for(k=1:m)d=d+(X(i,k)-X(j,k)F2;end。

14、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);endendendR(i,j)=1-C*d;endend附录 3.6.1function C=Max_Min(A,B)%模糊矩阵的合成运算,先取大,后取小m,s=size(A);s1,n=size(B);C=;if(s1=s) return ;endfor(i=1:m) for(j=1:n) C(i,j)=0;for(k=1:s) x=0;if(A(i,k)B(k,j) x=A(i,k);else x=B(k,j);endif(C(i,j)x) C(i,j)=x;endendend;end附录 3.7 :function F_jlfx(bzh,fa,X)X 原始数据矩阵%模糊聚类分析%bah 数据标准型; fa 建立模糊相似矩阵的方法;X=F_jisjbzh(bzh,X);R=F_jir(fa,X);m,n=size(R);if(m=n|m=0)return;endF_JIDtjl(R。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值