matlab模糊聚类程序.docx

上传人:b****5 文档编号:12542176 上传时间:2023-04-20 格式:DOCX 页数:15 大小:350.13KB
下载 相关 举报
matlab模糊聚类程序.docx_第1页
第1页 / 共15页
matlab模糊聚类程序.docx_第2页
第2页 / 共15页
matlab模糊聚类程序.docx_第3页
第3页 / 共15页
matlab模糊聚类程序.docx_第4页
第4页 / 共15页
matlab模糊聚类程序.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

matlab模糊聚类程序.docx

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

matlab模糊聚类程序.docx

matlab模糊聚类程序

3.数据标准化

(1)数据矩阵

设论域

为被分类的对象,每个对象又由指标

表示其性状即

(i=1,2,…,12)于是得到原是数据矩阵

(2)数据标准化

将模糊矩阵的每一个数据压缩到[0,1]上,采用平移.极差变换进行数据标准化

(k=1,2,…,m)

运用matlab编程由函数F_jisjbzh.m【见附录3.4】的标准化矩阵是

附录3.4

function[X]=F_JISjBzh(cs,X)

%模糊聚类分析数据标准化变换

%X原始数据矩阵;cs=0,不变换;cs=1,标准差变换

%cs=2,极差变换

if(cs==0)return;end

[n,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)-xk)^2;end

sk=sqrt(sk/n);

for(i=1:

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(xmin>X(i,k))xmin=X(i,k);end

if(xmax

end

for(i=1:

n)X(i,k)=(X(i,k)-xmin)/(xmax-xmin);end

end

end

 

第二步:

标定(建立模糊相似矩阵)

对标定我们运用了直接欧几里得距离法:

其中c为任意选区的参数,它使得0≤

≤1,

表示

的距离,

运用matlab软件编写F_jir.m函数【见附录3.5】,取cs==8,的模糊相似矩阵

附录3.5:

(仅附录了一段用到的程序)

function[R]=F_jir(cs,X)

%cs==8,直接欧几里得距离法

%cs==9,直接海明距离法(绝对值减数法)

%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

d=abs(X(i,k)-X(j,k));

end

end

end

if(C

C=d;

end

end

end

C=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))^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

d=abs(X(i,k)-X(j,k));

end

end

end

R(i,j)=1-C*d;

end

end

 

(3)聚类(求动态聚类图)

<1>传递闭包法

根据标定所得的模糊矩阵,只是一个模糊相似矩阵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:

functionF_JIDtjl(R)%定义函数

%模糊聚类分析动态聚类

%R模糊相似矩阵

[m,n]=size(R);%获得矩阵的行列数

if(m~=n|m==0)return;end

for(i=1:

n)R(i,i)=1;%修正错误

for(j=i+1:

n)

if(R(i,j)<0)R(i,j)=0;

elseif(R(i,j)>1)R(i,j)=1;end

R(i,j)=round(10000*R(i,j))/10000;%保留四位小数

R(j,i)=R(i,j);

end

end

js0=0;

while

(1)%求传递闭包

R1=Max_Min(R,R);%【见附录3.6.1】

js0=js0+1;

if(R1==R)break;elseR=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)

x=Imd(j);Imd(j)=Imd(i);Imd(i)=x;

end;end;end

for(x=1:

k)%按Imd(x)分类,分类数为flsz(x),临时用Sz记录元素序号

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)

for(j=1:

n)

if(R(i,j)>=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(flsz(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)=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)%获得分类情况:

每一子类的元素个数

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)=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=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*(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,'分类数');

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]);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

elsefor(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;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

图六:

动态聚类图

根据动态聚类图,选定不同的

的值,将就可以得到不同的分类。

 

附录3.5:

(仅附录了一段用到的程序)

function[R]=F_jir(cs,X)

%cs==8,直接欧几里得距离法

%cs==9,直接海明距离法(绝对值减数法)

%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

d=abs(X(i,k)-X(j,k));

end

end

end

if(C

C=d;

end

end

end

C=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))^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

d=abs(X(i,k)-X(j,k));

end

end

end

R(i,j)=1-C*d;

end

end

 

附录3.6.1

function[C]=Max_Min(A,B)

%模糊矩阵的合成运算,先取大,后取小

[m,s]=size(A);[s1,n]=size(B);C=[];

if(s1~=s)return;end

for(i=1:

m)for(j=1:

n)C(i,j)=0;

for(k=1:

s)x=0;

if(A(i,k)

elsex=B(k,j);end

if(C(i,j)

end

end;end

附录3.7:

functionF_jlfx(bzh,fa,X)

%模糊聚类分析

%bah数据标准型;fa建立模糊相似矩阵的方法;X原始数据矩阵

X=F_jisjbzh(bzh,X);

R=F_jir(fa,X);

[m,n]=size(R);

if(m~=n|m==0)

return;

end

F_JIDtjl(R)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

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

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