聚类分析软件实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§8?利用Matlab和SPSS软件实现聚类分析 1.用Mat lab编程实现 运用Matlab中的一?些基本矩阵计算方法,通过自己编程实现聚类算法,在 此只讨论根据最短距离规则聚类的方法。 调用函数: minl.m 求矩阵最小值,返回最小值所在行和列以及值的大小 min2.m 比较两数大小,返凹较小值 stdl.m——用极差标准化法标准化矩阵 dsl .m——用绝对值距离法求距离矩阵 cluster.m——应用最短距离聚类法进行聚类分析 printl.m 调用各了函数,显示聚类结果 聚类分析算法 假设距离矩阵为vector, a阶,矩阵中最大值为max,令矩阵上三角元素等 J ■ max 聚类次数二a?l,以下步骤作次循环: 求改变后矩阵的阶数,计作c 求矩阵最小值,返回最小值所在行a和列/以及值的大小g for 1=1 :c,为 vector(c+l,l)赋值,产生新类 令第C+1列元素,第0行和第/行所有元素为,第幺列和第/列所有元索为 max 源程序如下: %stdl.m,ffl极差标准化法标准化矩阵 function std=stdl(vector) max =m ax(vector); %对列求最大值 min=min( vector); [a,b]=size(vector); %矩阵大小卫为行数,b为列数 for i=l:a forj=l:b std(ij)= (vector(i j)-min(j))/(niax(j)-min(j)); end end %ds 1. m,用绝对值法求距离 function d=dsl (vector); [a,b]=size(vector); d=zeros(a); for i=l:a for j=l:a for k=l:b d(i j)=d(i j)+abs(vector(i,k)-vector(j,k)); end end end fprintff绝对值距离矩阵如下:\n); disp(d) 求矩阵中垠小值,并返冋行列数及其值 function [vl ,v2,v3]=minl(vector);%vl 为行数,v2 为列数,v3 为其值 [v,v2]=min(min( vector1)); [v.vl l=min(min( vector)); v3=min(min( vector)); %min2.m,比较两数大小,返冋较小的值 function vl=min(v2,v3); ifv2v3 vl=v3; else vl=v2; end %cluster.m,最短距离聚类法 function result=cluster(vector); [a,b]=size( vector); niax=max(niax(veclor)); for i=l:a for j=i:b vector(ij)=max; end end; for k=I:(b-l) [c,d]=size( vector); fprintf(第% 次聚类:\n\k); [e,f,g]=min 1 (vector); fprinlff最小值=%g,将第%g区和第区并为一类,记作G%g\n\n,,g,e?f,c+1); for l=l:c if l=min2(e,t) vector(c+lj)=min2(vector(ej),vector(fj)); else vector(c+1 J)=niin2(vector(he),vector(lJ)); end end; vectoiXl:c+hc+l)=max; vector(l:c+l ,e)=max; vector(l:c+l ,f)=max; vector(ej:c+l)=niax; vectortf, 1 :c+1 )=max; end %print 1,调用各子函数 function print=print 1 (filename,a,b); %a 为地区个数,b 为指标数 fid=tbpen(filename/f) vector=fscanf(fid,%g,[a b]); fprintfV标准化结果如下:\n*) v I =stdl (vector) v2=dsl(vl); clusteiXv2); %输出结果 print l(Tnanie\9,7) 2.直接调用Mat lab函数实现 2. 1调用函数 层次聚类法(Hierarchical Cluster i ng)的计算步骤: 计算门个样本两两间的距离{如,记D 构造刀个类,每个类只包含一个样本; 合并距离最近的两类为一新类; 计算新类与当前各类的距离;若类的个数等于1,转到5);否则回3); 画聚类图; 决定类的个数和类; Mat lab软件对系统聚类法的实现(调用函数说明): cluster 从连接输出(lin

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档