您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > 模糊聚类分析及matlab程序实现
模糊聚类分析及matlab程序实现采用模糊数学语言对按一定的要求进行描述和分类的数学方法称为模糊聚类分析。聚类分析主要经过标定和聚类两步骤。【1】1标定(建立模糊相似矩阵)城市居民食品零售价格,第t时刻第i种食品的零售价记为),(tix。相似矩阵R的构建方法:NTV法设时间序列),(jiA表示食品i在时间t的价格,其中i=1,2…42;t=1,2…39。mkjkikmkjkikxxxxjiR11),max(1),((其中i,j,k=1,2…42,m=39)42*42),(jiRR2聚类2.1计算R的传递闭包:对模糊相似矩阵R,依次用平方法计算,2R,4R,…,t2R,…,当第一次出现kkkRRR*时,则称kR为传递闭包。【1】2.2开始聚类:【2】(1)令T={1,2,3…42},取)1(xiT,令X、Q为空集;(2)令0j;(3)若),(jxiR且Xxj,则令}{jXX,}{jQQ;(4)1jj;(5)若nj,返回(1);(6)若Q为空集,怎输出聚类x,X-TT;(7))1(xiQ,}{xiQQ,返回(2)。设置不同的置信水平值,就可以得到不同的分类。Matlab程序实现:A=data;[NM]=size(A);fori=1:Nforj=1:NR(i,j)=abs(1-sum(abs(A(i,:)-A(j,:)))/sum(max([A(i,:);A(j,:)])));endendforj=1:42fori=1:42y(i,j)=0;fork=1:42mn(k)=min(R(i,k),R(k,j));endy(i,j)=max(mn);endendnumda=[10.90.950.850.80.750.550.70.6550.650.60.550.50.450.4540.40.450.30.350.2550.250.20.150.1];fori=1:42TT(i)=i;endfori=1:length(numda)disp('当分类系数是');disp(numda(i));a=numda(i);T=TT;disp('分类为');while1if~isempty(T)xi=T(1);endX=[];Q=[];while1forj=1:42if(y(xi,j)=a)&isempty(intersect(X,j))X=union(X,j);Q(length(Q)+1)=j;endendifisempty(Q)disp(X);breakelsexi=Q(1);Q(1)=[];endendT=setdiff(T,X);ifisempty(T)breakendendend
本文标题:模糊聚类分析及matlab程序实现
链接地址:https://www.777doc.com/doc-7026051 .html