聚类分析 人类认识世界往往首先将被认识的对象进行分类,聚类分析是研究分类问题的多元数据分析方法,是数值分类学中的一支。 多元数据形成数据矩阵,见下表1。在数据矩阵中,共有n个样品 x1,x2,…,xn(列向),p个指标(行向)。聚类分析有两种类型:按样品聚类或按变量(指标)聚类。 表1
数据矩阵 | file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image002.gif | file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image004.gif | file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image006.gif |
聚类分析的基本思想是在样品之间定义距离,在变量之间定义相似系数,距离或相似系数代表样品或变量之间的相似程度。按相似程度的大小,将样品(或变量)逐一归类,关系密切的类聚到一个小的分类单位,然后逐步扩大,使得关系疏远的聚合到一个大的分类单位,直到所有的样品(或变量)都聚集完毕,形成一个表示亲疏关系的谱系图,依次按照某些要求对样品(或变量)进行分类。 一、分类统计量----距离与相似系数 1.样品间的相似性度量----距离 用样品点之间的距离来衡量各样品之间的相似性程度(或靠近程度)。设file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image008.gif是样品 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image010.gif之间的距离,一般要求它满足下列条件: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image012.gif 在聚类分析中,有些距离不满足3),我们在广义的角度上仍称它为距离。 1.1 欧氏距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image014.gif 1.2
绝对距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image016.gif 1.3
Minkowski 距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image018.gif 1.4
Chebyshev距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image020.gif 1.5 方差加权距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image022.gif 其中 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image024.gif 1.6
马氏距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image026.gif
其中 S 是由样品file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image002.gif算得的协方差矩阵:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image028.gif 样品聚类通常称为Q型聚类,其出发点是距离矩阵。 2.变量间的相似性度量----相似系数 当对p个指标变量进行聚类时,用相似系数来衡量变量之间的相似程度(或关联程度)。一般地,若 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image030.gif表示变量file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image032.gif之间的相似系数,应满足: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image034.gif file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image030.gif的绝对值越接近于1,说明变量 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image032.gif的关联越大。 相似系数中最常用的是相关系数与夹角余弦。 2.1
相关系数 变量file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image032.gif之间的相关系数定义为: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image036.gif 事实上,file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image038.gif是变量file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image032.gif的观测值 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image040.gif 之间的相关系数。 2.2
夹角余弦 变量file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image032.gif的观测值 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image040.gif,其夹角余弦定义为: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image042.gif 变量聚类通常称为 R 型聚类。在 R 型聚类中,相似系数矩阵 C 是出发点,相似系数矩阵可以是相关矩阵,也可以是夹角余弦矩阵。 二、谱系聚类法 这里所介绍的是样品的谱系聚类法。 1.类间距离定义 为简单起见,以i,j分别表示样品file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image044.gif,以dij简记i,j之间的距离file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image008.gif。Gp,Gq分别表示两个类,设它们分别含有np,nq个样品。若类Gp中有样品file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image047.gif,则其均值 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image049.gif 称为类 Gp 的重心。类Gp与Gq之间的距离记为 Dpq,有多种多样定义方式。 1.1 最短距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image051.gif 1.2 最长距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image053.gif 1.3 类平均距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image055.gif 1.4
重心距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image057.gif 1.5
离差平方和距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image059.gif 2.类间距离的递推公式 按照谱系聚类法的思想,先将样品聚合成小类,在逐步扩大为大类。设类 Gr由类Gp、Gq合并所得,则Gr包含nr=np+nq个样品。 问题:由Gp,Gq与其它类Gk(k≠p,q)的距离计算Gr与Gk(k≠p,q)的距离,即建立类间距离的递推公式。 2.1
最短距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image061.gif 2.2
最长距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image063.gif 2.3
类平均距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image065.gif 2.4
重心距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image067.gif 2.5
离差平方和距离 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image069.gif 3.谱系聚类法的步骤 谱系聚类法的步骤如下: Step1
n 个样品开始时作为 n 个类,计算两两之间的距离,构成一个对称距离矩阵: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image071.gif 此时,Dpq=dpq; Step2
选择 D(0)中的非对角线上的最小元素,设这个最小元素是 Dpq。此时,Gp={xp},Gq={xq}。将Gp,Gq合并成一个新类 Gr={Gp,Gq}。在 D(0)中消去Gp和Gq所对应的行与列,并加入有新类Gr与剩下的其它未聚合的类间的距离所组成的一行和一列,得到一个新的距离矩阵D(1),它是n-1阶方阵; Step3
从 D(1)出发重复 Step2 的作法得 D(2),再由D(2)出发重复上述步骤,直到n个样品聚为1个大类为止; 注意:
在合并过程中要记下合并样品的编号及两类合并时的水平(即距离)并绘制聚类谱系图。 4.谱系聚类法的统计量 用谱系聚类法聚类时,聚多少类合适,这是一个实际的问题。一个较好的聚类应该在类内阁样品尽可能相似的前提下,使得类的个数尽可能少。这里需要考虑谱系距离用到的统计量,利用它们,可以在一定程度上判别聚多少类为合适。 4.1 R2统计量 设谱系得第 G 层共有G个类,定义 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image073.gif 其中
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image075.gif为Gk的重心,Sk越小,说明Gk中各样品越相似。 定义 R2 统计量如下: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image077.gif R2总是随着分类数目的减少而减小,可以从R2值的变化看n个样品分成几类最合适。比如,分为5类以前各类的R2减小较缓慢;假定分为5类时,R2=0.85,而下一次合并,即分为4类时R2减小较快,如R2=0.35,则认为分为5类较合适。 4.2
半偏相关统计量 这一统计量与离差平方和距离有关。设类 Gp,Gq的离差平方和分别是 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image079.gif 将 Gp,Gq合并成Gr后的离差平方和为 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image081.gif 合并后的离差平方和增量为 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image083.gif 定义半偏相关统计量为: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image085.gif SPRSQ是上一步R2值与该步R2值的差值,当SPRSQ值越大时,说明上一次合并效果越好。 4.3 伪F统计量 伪F统计量 PSF是 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image087.gif PSF值越大表示这些观测可显著地分为 G 个类。 4.4 伪 t2 统计量 设Sp,Sq,Wpq的含义如前所述,定义伪 t2 统计量为 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image089.gif PST2大,说明合并Gp,Gq为Gr后,使得离差平方和的增量Wpq相对于原Gp,Gq的类内离差平方和大。这表明合并的两个类Gp,Gq是很分开的,也就是上一次聚类效果较好。 三、快速聚类法 参见:范金城,梅长林. 数据分析(P228-241).北京:科学出版社。 聚类分析课堂例题 为了研究世界各国森林、草原资源的分布规律,共抽取了21个国家的数据,每个国家4项指标,原始数据见下表1。使用该原始数据对国别进行聚类分析。 表1 抽样数据表
Matlab
解
答 Matlab提供了两种方法进行聚类分析。 一种是利用 clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法; 另一种是分步聚类:(1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的距离;(2)用 linkage函数定义变量之间的连接;(3)用 cophenetic函数评价聚类信息;(4)用cluster函数创建聚类。 1.Matlab中相关函数介绍 1.1
pdist函数 调用格式:Y=pdist(X,’metric’) 说明:用 ‘metric’指定的方法计算 X 数据矩阵中对象之间的距离。’ X:一个m×n的矩阵,它是由m个对象组成的数据集,每个对象的大小为n。 metric’取值如下: ‘euclidean’:欧氏距离(默认);‘seuclidean’:标准化欧氏距离; ‘mahalanobis’:马氏距离;‘cityblock’:布洛克距离; ‘minkowski’:明可夫斯基距离;‘cosine’: ‘correlation’:
‘hamming’: ‘jaccard’:
‘chebychev’:Chebychev距离。 1.2
squareform函数
调用格式:Z=squareform(Y,..)
说明:
强制将距离矩阵从上三角形式转化为方阵形式,或从方阵形式转化为上三角形式。
1.3
linkage函数 调用格式:Z=linkage(Y,’method’) 说
明:用‘method’参数指定的算法计算系统聚类树。
Y:pdist函数返回的距离向量;
method:可取值如下:
‘single’:最短距离法(默认);
‘complete’:最长距离法;
‘average’:未加权平均距离法;
‘weighted’:加权平均法; ‘centroid’: 质心距离法;
‘median’:加权质心距离法; ‘ward’:内平方距离法(最小方差算法) 返回:Z为一个包含聚类树信息的(m-1)×3的矩阵。 1.4
dendrogram函数 调用格式:[H,T,…]=dendrogram(Z,p,…) 说明:生成只有顶部p个节点的冰柱图(谱系图)。 1.5
cophenet函数 调用格式:c=cophenetic(Z,Y) 说明:利用pdist函数生成的Y和linkage函数生成的Z计算cophenet相关系数。 1.6
cluster 函数 调用格式:T=cluster(Z,…) 说明:根据linkage函数的输出Z 创建分类。 1.7
clusterdata函数 调用格式:T=clusterdata(X,…) 说明:根据数据创建分类。 T=clusterdata(X,cutoff)与下面的一组命令等价: Y=pdist(X,’euclid’); Z=linkage(Y,’single’); T=cluster(Z,cutoff); 2. Matlab程序 2.1 一次聚类法 X=[11978 12.5 93.5 31908;…;57500 67.6 238.0 15900]; T=clusterdata(X,0.9) file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image091.gif 谱系图 分类结果: 2.2
分步聚类 Step1
寻找变量之间的相似性 用pdist函数计算相似矩阵,有多种方法可以计算距离,进行计算之前最好先将数据用zscore函数进行标准化。 X2=zscore(X);
%标准化数据 Y2=pdist(X2);
%计算距离 Step2 定义变量之间的连接 Z2=linkage(Y2); Step3
评价聚类信息
C2=cophenet(Z2,Y2);
//0.94698
Step4 创建聚类,并作出谱系图
T=cluster(Z2,6);
H=dendrogram(Z2);
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/07/clip_image093.gif 谱系图 分类结果:{加拿大},{中国,美国,澳大利亚},{日本,印尼},{巴西},{前苏联} 剩余的为一类。, 2 2 4 3 3 3 3 1 2 6 3 3 3 3 3 3 3 4 3 3 5 |