(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)