信息检索之构建层次聚类树状图

利用matlab构建层次聚类树状图

(1)计算数据集每对元素之间的距离,对应函数为pdistw.
调用格式:Y=pdist(X),Y=pdist(X,’metric’), Y=pdist(X,’distfun’),Y=pdist(X,’minkowski’,p)

说明:X是m*n的矩阵,metric是计算距离的方法选项:

metric=euclidean表示欧式距离(缺省值);

metric=seuclidean表示标准的欧式距离;

metric=mahalanobis表示马氏距离。

distfun是自定义的距离函数,p是minkowski距离计算过程中的幂次,缺省值为2.Y返回大小为m(m-1)/2的距离矩阵,距离排序顺序为(1,2),(1,3),…(m-1,m),Y也称为相似矩阵,可用squareform将其转化为方阵。

(2)对元素进行分类,构成一个系统聚类树,对应函数为linkage.
调用格式:Z=linkage(Y), Z=linkage(Y,’method’)

说明:Y是距离函数,Z是返回系统聚类树,method是采用的算法选项,

如下:method=single表示最短距离(缺省值);

complete表示最长距离;median表示中间距离法;

centroid表示重心法;average表示类平均法;

ward 表示离差平方和法(Ward法)。

(3)确定怎样划分系统聚类树,得到不同的类,对应的函数为cluster.
调用格式:T=cluster(Z,’cutoff’,c),T=cluster(Z,’maxclust’,n)

说明:Z是系统聚类树,为(m-1)*3的矩阵,c是阈值,n是类的最大数目,

maxclust是聚类的选项,cutoff是临界值,决定cluster函数怎样聚类。

**构建20组五维向量的matlab源码如下:

%Matlab运行程序:
X=[
   20,7,12,14,22;
   18,10,23,15,16;
   10,5,13,9,7;
   4,5,4,6,9;
   4,3,2,5,7;
   16,17,18,19,20;
   23,13,14,15,16;
   17,21,29,10,30;
   44,55,66,77,33;
   23,26,24,35,56;
   44,34,23,15,16;
   67,66,56,78,90;
   70,71,16,51,61;
   31,21,79,63,91;
   65,45,54,93,67;
   81,90,70,90,43;
   42,45,69,81,98;
   99,20,13,41,50;
   13,14,51,26,71;
   51,60,93,75,38;
  ];
Y=pdist(X);
SF=squareform(Y);
Z=linkage(Y,'average');
dendrogram(Z);%显示系统聚类树
T=cluster(Z,'maxclust',3)

运行结果如下:
信息检索之构建层次聚类树状图_第1张图片

你可能感兴趣的:(聚类,算法,机器学习)