模糊聚类分析步骤

  • 格式:docx
  • 大小:318.91 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模糊聚类分析步骤

————————————————————————————————作者:————————————————————————————————日期:

求分类对象的相似度

传递闭包法进行聚类(求动态聚类图)

根据λ∈(0,1)的不同取值分布不同的类。

注释(1):模糊相似矩阵只具有自反性和对称性,不具有传递性,求λ截矩阵的前提是R 是X 上的的模糊等价关系。所以要先求得R 传递闭包,将模糊相似矩阵转化为模糊等价矩阵。

原始数据矩阵

标准化矩阵

模糊相似矩阵R

(1)

相似距离

主观

欧式距明氏距切比雪

等价关系矩阵

传递闭布尔矩

直接聚

截矩阵

雨量站问题

原始数据矩阵:

(重要定理:设R∈F ( X ⨯X ) 是相似关系( 即R 是自反、对称模糊关系) ,则e(R) = t(R) ,即模糊相似关系的传递闭包就是它的等价闭包。)

Y的传递闭包(即Y的等价矩阵):

求λ截矩阵,在程序中我用的k代替了λ。

K=1时,x1,x2,x3,…x11,各成一类,将11个雨量站分成11类。

K=0.9095时,将11个雨量站分为10类,X8, X11为一类,其余各自一类。

分8类,将x2 ,x5, x8, x11分一类,其余各自一类

分6类,x2 x3,x5, x8, x9 x11为一类,其余各自一类。

分4类,x1

,x2 ,x3,x5, x7,x8, x9 x11为一类,其余各自一类。

分4类,x1, x3 x2 x7 x8 x9 x11为一类,x2 x4 x5为一类,x6一类,x10一类。

分3类,x2 x4 x5 x6为一类,x1 x3 x7 x8 x9 x11一类,x10一类。

分2类,x2 x4 x5 x6 x10一类,x1 x3 x7 x8 x9 x11一类

分2类,x1x2 x4 x5 x6 x10一类,x3 x8 x9 x11一类.

分1类。

程序一:标准化矩阵:

function Y=bzh1(X)

[a,b]=size(X);

C=max(X);

D=min(X);

Y=zeros(a,b);

for i=1:a

for j=1:b

Y(i,j)=(X(i,j)-D(j))/(C(j)-D(j)); %平移极差变化进行数据标准化end

end

fprintf('标准化矩阵如下:Y=\n');

disp(Y)

end

程序二:求模糊相似矩阵:

function R=biaod2(Y,c)

[a,b]=size(Y);

Z=zeros(a);

R=zeros(a);

for i=1:a

for j=1:a

for k=1:b

Z(i,j)=abs(Y(i,k)-Y(j,k))+Z(i,j);

R(i,j)=1-c*Z(i,j);%绝对值减数法--欧氏距离求模糊相似矩阵

end

end

end

fprintf('模糊相似矩阵如下:R=\n');

disp(R)

end

程序三:计算传递闭包:

function B=cd3(R)

a=size(R);

B=zeros(a);

flag=0;

while flag==0

for i= 1: a

for j= 1: a

for k=1:a

B( i , j ) = max(min( R( i , k) , R( k, j) ) , B( i , j ) ) ;%R与R内积,先取小再取大

end

end

end

if B==R

flag=1;

else

R=B;%循环计算R传递闭包

end

end

程序四:求 截矩阵:

function [D k] =jjz4(B)

L=unique(B)';

a=size(B);

D=zeros(a);

for m=length(L):-1:1

k=L(m);

for i=1:a

for j=1:a

if B(i,j)>=k

D(i,j)=1;

else D(i,j)=0;%求?截距阵,当bij≥? 时,bij(?) =1;当bij<? 时,bij(?) =0

end

end

end

fprintf('当分类系数k=:\n'); disp(L(m));

fprintf('所得截距阵为:\n'); disp(D);

end