- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 2025年床旁盲插鼻空肠管及管理.pptx VIP
- 医院落实《医疗机构医疗质量安全专项整治行动方案》自查自纠报告.docx VIP
- 英威腾AX70系列可编程控制器硬件手册_V1.1.pdf VIP
- VEICHI伟创 AC310系列变频器简易说明书-V1.6.pdf VIP
- 传感器技术基础与应用实训 课后习题答案汇总(徐军版) 项目单元1-11.pdf VIP
- 奥的斯ACD-MRL ACD4-MRL电气原理图纸 HAA21310AW-有注释注解.pdf
- 施工总承包的安全管理.pptx
- DB61T 5006-2021技术设计规范.docx VIP
- 工程造价咨询服务方案(预结算及全过程).docx VIP
- 急性心肌梗死治疗小讲课.pptx VIP
原创力文档


文档评论(0)