利用Matlab软件实现聚类分析范文.doc
《利用Matlab软件实现聚类分析范文.doc》由会员分享,可在线阅读,更多相关《利用Matlab软件实现聚类分析范文.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除8.利用Matlab和SPSS软件实现聚类分析1. 用Matlab编程实现运用Matlab中的一些基本矩阵计算方法,通过自己编程实现聚类算法,在此只讨论根据最短距离规则聚类的方法。调用函数:min1.m求矩阵最小值,返回最小值所在行和列以及值的大小min2.m比较两数大小,返回较小值std1.m用极差标准化法标准化矩阵ds1.m用绝对值距离法求距离矩阵cluster.m应用最短距离聚类法进行聚类分析print1.m调用各子函数,显示聚类结果聚类分析算法假设距离矩阵为vector, a阶,矩阵中最大值为max,令矩阵上三角元素等于max聚类次数=a
2、-1,以下步骤作a-1次循环:求改变后矩阵的阶数,计作c求矩阵最小值,返回最小值所在行e和列f以及值的大小gfor l=1:c,为vector(c+1,l)赋值,产生新类令第c+1列元素,第e行和第f行所有元素为,第e列和第f列所有元素为max源程序如下:%std1.m,用极差标准化法标准化矩阵function std=std1(vector)max=max(vector); %对列求最大值min=min(vector);a,b=size(vector); %矩阵大小,a为行数,b为列数for i=1:a for j=1:b std(i,j)= (vector(i,j)-min(j)/(max
3、(j)-min(j); endend%ds1.m,用绝对值法求距离function d=ds1(vector);a,b=size(vector); d=zeros(a);for i=1:a for j=1:a for k=1:b d(i,j)=d(i,j)+abs(vector(i,k)-vector(j,k); end endendfprintf(绝对值距离矩阵如下:n);disp(d)%min1.m,求矩阵中最小值,并返回行列数及其值function v1,v2,v3=min1(vector);%v1为行数,v2为列数,v3为其值v,v2=min(min(vector);v,v1=min(
4、min(vector);v3=min(min(vector);%min2.m,比较两数大小,返回较小的值function v1=min(v2,v3);if v2v3 v1=v3;else v1=v2;end%cluster.m,最短距离聚类法function result=cluster(vector);a,b=size(vector);max=max(max(vector); for i=1:a for j=i:b vector(i,j)=max; end end;for k=1:(b-1) c,d=size(vector); fprintf(第%g次聚类:n,k); e,f,g=min1(
5、vector); fprintf(最小值=%g,将第%g区和第%g区并为一类,记作G%gnn,g,e,f,c+1); for l=1:c if l=min2(e,f) vector(c+1,l)=min2(vector(e,l),vector(f,l); else vector(c+1,l)=min2(vector(l,e),vector(l,f); end end; vector(1:c+1,c+1)=max; vector(1:c+1,e)=max; vector(1:c+1,f)=max; vector(e,1:c+1)=max; vector(f,1:c+1)=max; end%pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 Matlab 软件 实现 聚类分析 范文
限制150内