《第六章 聚类分析.doc》由会员分享,可在线阅读,更多相关《第六章 聚类分析.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3系统聚类法层次聚类法(Hierarchical Clustering)的计算步骤:计算n个样本两两间的距离dij,记D构造n个类,每个类只包含一个样本;合并距离最近的两类为一新类;计算新类与当前各类的距离;若类的个数等于1,转到5);否则回3);画聚类图;决定类的个数和类;Matlab软件对系统聚类法的实现(调用函数说明):cluster 从连接输出(linkage)中创建聚类clusterdata 从数据集合(x)中创建聚类dendrogram 画系统树状图linkage 连接数据集中的目标为二元群的层次树pdist 计算数据集合中两两元素间的距离(向量)squareform 将距离的输出
2、向量形式定格为矩阵形式zscore 对数据矩阵 X 进行标准化处理 各种命令解释 T = clusterdata(X, cutoff)其中X为数据矩阵,cutoff是创建聚类的临界值。即表示欲分成几类。以上语句等价与以下几句命令: Y=pdist(X,euclid) Z=linkage(Y,single) T=cluster(Z,cutoff)以上三组命令调用灵活,可以自由选择组合方法! T = cluster(Z, cutoff)从逐级聚类树中构造聚类,其中Z是由语句likage产生的(n-1)3阶矩阵,cutoff是创建聚类的临界值。 Z = linkage(Y) Z = linkage(
3、Y, method) 创建逐级聚类树,其中Y是由语句pdist产生的n(n-1)/2 阶向量,method表示用何方法,默认值是欧氏距离(single)。有complete最长距离法;average类平均距离;centroid重心法 ;ward递增平方和等。 Y = pdist(X) Y = pdist(X, metric) 计算数据集X中两两元素间的距离, metric表示使用特定的方法,有欧氏距离euclid(缺失值) 、标准欧氏距离SEuclid 、马氏距离mahal、明可夫斯基距离Minkowski 等。 H = dendrogram(Z) H = dendrogram(Z, p)由l
4、ikage产生的数据矩阵z画聚类树状图。P是结点数,默认值是30。2.2举例说明设某地区有八个观测点的数据,样本距离矩阵如表1所示,根据最短距离法聚类分析。%最短距离法系统聚类分析X=7.90 39.77 8.49 12.94 19.27 11.05 2.04 13.29; 7.68 50.37 11.35 13.3 19.25 14.59 2.75 14.87; 9.42 27.93 8.20 8.14 16.17 9.42 1.55 9.76; 9.16 27.98 9.01 9.32 15.99 9.10 1.82 11.35; 10.06 28.64 10.52 10.05 16.18
5、 8.39 1.96 10.81;BX=zscore(X); % 标准化数据矩阵Y=pdist(X) % 用欧氏距离计算两两之间的距离D=squareform(Y) % 欧氏距离矩阵Z = linkage(Y) % 最短距离法T = cluster(Z,3) %等价于 T=clusterdata(X,3) find(T=3) % 第3类集合中的元素H,T=dendrogram(Z) % 画聚类图例6.4.1x=190.33 43.77 9.73 60.54 49.01 9.04;135.2 36.4 10.47 44.16 36.49 3.94;95.21 22.83 9.3 22.44 22
6、.81 2.8;104.78 25.11 6.4 9.89 18.17 3.25;128.41 27.63 8.94 12.58 23.99 3.27;145.68 32.83 17.79 27.29 39.09 3.47;159.37 33.38 18.37 11.81 25.29 5.22;116.22 29.57 13.24 13.76 21.75 6.04;221.11 38.64 12.53 115.65 50.82 5.89;144.98 29.12 11.67 42.6 27.3 5.74;169.92 32.75 12.72 47.12 34.35 5;153.11 23.09
7、 15.62 23.54 18.18 6.39;144.92 21.26 16.96 19.52 21.75 6.73;140.54 21.5 17.64 19.19 15.97 4.94;115.84 30.26 12.2 33.61 33.77 3.85;101.18 23.26 8.46 20.2 20.5 4.3;zx=zscore(x);y=pdist(zx);z=linkage(y,average)z = 12.0000 13.0000 0.6656 3.0000 16.0000 0.9931 4.0000 18.0000 1.0711 14.0000 17.0000 1.2032
8、 10.0000 11.0000 1.2670 5.0000 19.0000 1.2756 2.0000 15.0000 1.2833 21.0000 23.0000 1.7088 6.0000 7.0000 1.8245 8.0000 20.0000 1.8799 24.0000 25.0000 2.3302 26.0000 27.0000 2.6476 22.0000 28.0000 2.9664 1.0000 9.0000 3.1788 29.0000 30.0000 5.2728s=北京,天津,河北,山西,内蒙古,辽宁,吉林,黑龙江,上海,江苏,浙江,安徽,福建,江西,山东,河南den
9、drogram(z,orientation,right,labels,s)T=cluster(z,5)T = 4 2 3 3 3 2 2 1 5 2 2 1 1 1 2 3find(T=1)ans = 8 12 1314find(T=2)ans = 2 6 7 10 1115find(T=3)ans = 3 4 516find(T=4)ans = 1find(T=5)ans = 9或者:T = clusterdata(zx,distance,euclid,linkage,average,maxclust,5)T = 4 2 3 3 3 2 2 1 5 2 2 1 1 1 2 3它与前面的clu
10、ster(z,5)相等5动态聚类法x=190.33 43.77 9.73 60.54 49.01 9.04;135.2 36.4 10.47 44.16 36.49 3.94;95.21 22.83 9.3 22.44 22.81 2.8;104.78 25.11 6.4 9.89 18.17 3.25;128.41 27.63 8.94 12.58 23.99 3.27;145.68 32.83 17.79 27.29 39.09 3.47;159.37 33.38 18.37 11.81 25.29 5.22;116.22 29.57 13.24 13.76 21.75 6.04;221.
11、11 38.64 12.53 115.65 50.82 5.89;144.98 29.12 11.67 42.6 27.3 5.74;169.92 32.75 12.72 47.12 34.35 5;153.11 23.09 15.62 23.54 18.18 6.39;144.92 21.26 16.96 19.52 21.75 6.73;140.54 21.5 17.64 19.19 15.97 4.94;115.84 30.26 12.2 33.61 33.77 3.85;101.18 23.26 8.46 20.2 20.5 4.3;zx=zscore(x);IDX5,C,sumd,D
12、 = kmeans(zx,5,distance,sqEuclidean, display,iter); iter phase num sum 1 1 16 18.0256 2 2 2 17.1726 3 2 1 17.1312 4 2 2 16.02194 iterations, total sum of distances = 16.0219IDX5 = 5 1 2 2 2 4 4 3 5 1 1 3 3 3 1 2silh5,h = silhouette(zx,idx5);xlabel(Silhouette Value)ylabel(Cluster)mean(silh5)ans = 0.6
13、309IDX4,C,sumd,D = kmeans(zx,4,distance,sqEuclidean, display,iter); iter phase num sum 1 1 16 27.7259 2 2 4 21.0048 3 2 1 20.21333 iterations, total sum of distances = 20.2133silh4,h = silhouette(zx,IDX4);mean(silh4)ans =0.5631mean(silh5)大于mean(silh4),分五类效果比分四类好。silh4,h = silhouette(zx,IDX4);xlabel(
14、Silhouette Value)ylabel(Cluster)变量聚类在新建的M文件中,输入:function r11=my(r)a,b=size(r);r1=zeros(a,b);r2=r1;for i=1:6; for j=1:6; if ij; r1(i,j)=r(i,j); else i=j; r1(i,j)=r2(i,j); end endendr11=r1(:);r11(find(r11=0)=;将以上命令保存为my.mat的文件。d=1-abs(corr(x);y=my(d)y = 0.3365 0.6629 0.2200 0.2942 0.3654 0.9190 0.3370
15、 0.0985 0.6252 0.9113 0.9386 0.7458 0.1689 0.63650.6888squareform(y)ans = 0 0.3365 0.6629 0.2200 0.2942 0.3654 0.3365 0 0.9190 0.3370 0.0985 0.6252 0.6629 0.9190 0 0.9113 0.9386 0.7458 0.2200 0.3370 0.9113 0 0.1689 0.6365 0.2942 0.0985 0.9386 0.1689 0 0.6888 0.3654 0.6252 0.7458 0.6365 0.6888 0z= linkage(y)z = 2.0000 5.0000 0.0985 4.0000 7.0000 0.1689 1.0000 8.0000 0.2200 6.0000 9.0000 0.36543.0000 10.0000 0.6629T = cluster(z,3)T = 2 2 3 2 2 1可分为三类,衣着、生活、住房、食品第一类,文化第二类、燃料第三类。