模糊聚类分析及matlab程序实现.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date模糊聚类分析及matlab程序实现模糊聚类分析及matlab程序实现模糊聚类分析及matlab程序实现采用模糊数学语言对按一定的要求进行描述和分类的数学方法称为模糊聚类分析。聚类分析主要经过标定和聚类两步骤。【1】1 标定(建立模糊相似矩阵)城市居民食品零售价格,第t时刻第i种食品的零售价记为。相似矩阵R的构建方法:NTV法设时间序列表示食品i在时间t的价格,其中i=1,242;t=1,239。(其中i,j,k=1,242,m=39)2 聚类2.1 计算R的传递闭包:对模糊相似矩阵R,依次用平方法计算,当第一次出现时,则称为传递闭包。【1】2.2 开始聚类:【2】(1)令T=1,2,342,取 ,令X、Q为空集;(2)令;(3)若且,则令,;(4);(5)若,返回(1);(6)若Q为空集,怎输出聚类x,;(7),返回(2)。设置不同的置信水平值,就可以得到不同的分类。Matlab程序实现:A=data; N M = size(A);for i = 1:N for j = 1:N R(i,j)=abs(1-sum(abs(A(i,:)-A(j,:)/sum(max(A(i,:);A(j,:); endendfor j=1:42for i=1:42y(i,j)=0;for k=1:42mn(k)=min(R(i,k),R(k,j);endy(i,j)=max(mn);endendnumda=1 0.9 0.95 0.85 0.8 0.75 0.55 0.7 0.655 0.65 0.6 0.55 0.5 0.45 0.454 0.4 0.45 0.3 0.35 0.255 0.25 0.2 0.15 0.1;for i=1:42TT(i)=i;endfor i=1:length(numda)disp ('当分类系数是');disp(numda(i); a=numda(i);T=TT;disp ('分类为');while 1if isempty(T)xi=T(1);endX=;Q=;while 1for j=1:42if (y(xi,j)>=a)&isempty(intersect(X,j)X=union(X,j);Q(length(Q)+1)=j;endendif isempty(Q)disp(X);breakelsexi=Q(1);Q(1)=;endendT=setdiff(T,X);if isempty(T)breakendendend-