分层聚类

分层聚类介绍

通过创建一个集群树在各种规模的分层聚类组数据或树状图。树不是一组单独的集群,而是一个多级别的层次结构,其中一个级别的集群作为下一个级别的集群进行连接。这允许您决定最适合您的应用程序的集群级别或规模。统计和机器学习工具箱功能Cluster数据万博1manbetx支持聚集集群,并为您执行所有必要的步骤。它包含了pdist连锁集群功能,您可以更详细的分析分开使用。该树状图功能绘制集群树。

算法描述

要执行使用统计和机器学习工具箱功能的数据集凝聚层次聚类分析,遵循以下步骤:

  1. 找出数据集中每对对象之间的相似性或差异性。在此步骤中,您计算距离使用对象之间pdist函数。该pdist函数支持许多不同的万博1manbetx方法来计算此度量。看到相似度量欲获得更多信息。

  2. 集团的对象转换成二进制,聚类树。在这一步,你链接的对象对使用的是在靠近连锁函数。该连锁函数使用在步骤1中生成,以确定对象彼此的接近距离信息。作为对象被配对成二进制集群,直至形成的分层树的新形成的簇被分组为较大的簇。看到联系欲获得更多信息。

  3. 确定在何处将层次树分割为集群。在此步骤中,您使用集群功能为关分层树的底部修剪树枝,并分配每个切口下面的所有对象在一个集群。这将创建数据的分区。该集群功能可以通过在分级树检测自然分组或通过在任意点切断分层树创建这些簇。

下面的小节提供了关于这些步骤的更多信息。

注意

统计和机器学习工具箱功能Cluster数据执行所有的必要的步骤。你并不需要执行pdist连锁,或集群单独的功能。

相似度量

您可以使用pdist函数来计算在一数据集合中的每个对象对之间的距离。对于一个数据集由最多对象,有*(- 1)/ 2这种计算的结果通常被称为距离或不相似矩阵。

有很多方法可以计算这个距离信息。默认情况下,pdist函数计算对象之间的欧几里德距离;但是,您可以指定其他几个选项之一。看到pdist欲获得更多信息。

注意

你可以计算距离信息之前可选正常化数据集中的值。在现实世界中的数据集,变量可以针对不同的尺度来衡量。例如,一个可变可以测量智商(IQ)测试分数和另一个变量可以测量头围。这些差异可以扭曲接近计算。使用zscore功能,可以将所有的值转换数据集中使用相同的比例尺。看到zscore欲获得更多信息。

例如,考虑一个数据集,X,由五个对象组成,其中每个对象是一组X,Y坐标。

  • 对象1:1,2

  • 对象2:2.5,4.5

  • 对象3:2,2

  • 对象4:4,1.5

  • 对象5:4,2.5

您可以将这个数据集定义为一个矩阵

RNG默认的;%用于重现X = [1 2;2.5 4.5;2 2;4 1.5;4 2.5];

并将它传递给pdist。该pdist函数计算对象1和对象2,对象1和对象3,依此类推,直到已经计算所有的对之间的距离之间的距离。下图中绘制的图表这些对象。对象2和对象3之间的欧几里德距离被示出以说明距离的一种解释。

距离信息

pdist函数以向量的形式返回距离信息,ÿ,其中每个元素包含一对对象之间的距离。

Y = pdist(X)
Y =1×102.9155 1.0000 3.0414 3.0414 2.5495 3.3541 2.5000 2.0616 2.0616 1.0000

使它更容易看出距离信息之间的关系pdist原始数据集中的对象,则使用可以重新格式化的距离向量为一个矩阵squareform函数。在这个矩阵中,元件I,J对应于物体之间的距离一世和对象Ĵ在原始数据集。在以下示例中,元件1,1表示对象1和它本身之间的距离(这是零)。元件1,2表示对象1和对象2,等等之间的距离。

squareform(Y)
ANS =5×50 2.9155 1.0000 3.0414 3.0414 2.9155 0 2.5495 3.3541 2.5000 1.0000 2.5495 0 2.0616 2.0616 3.0414 3.3541 2.0616 1.0000 0 3.0414 2.5000 2.0616 1.0000 0

联系

一旦数据集对象之间的接近程度已经计算出来,你可以决定如何在数据集对象应分为集群,使用连锁函数。该连锁函数取所产生的距离信息pdist并将紧密相连的成对对象链接成二进制集群(由两个对象组成的集群)。该连锁函数,然后链接这些新形成的集群彼此和其他对象,直到原始数据集的所有对象分层树连在一起,创造更大的集群。

例如,给定距离向量ÿ所产生的pdist从样本数据集X- - -ÿ坐标 - 中,连锁函数生成一个分层聚类树,以矩阵返回链接信息,ž

Z =连杆(Y)
Z =4×34.0000 5.0000 1.0000 1.0000 3.0000 1.0000 6.0000 7.0000 2.0616 2.0000 8.0000 2.5000

在这个输出中,每一行标识对象或集群之间的链接。前两列标识已链接的对象。第三列包含这些对象之间的距离。的样本数据集X- - -ÿ坐标 - 中,连锁功能通过分组对象4和5,其具有最接近(距离值= 1.0000)开始。该连锁功能继续通过分组对象1和3,这也有1.0000的距离值。

第三行表明,连锁功能分组对象6和7。如果原始样本数据集只包含五个对象,什么是对象6,7?对象6是由物体4的分组和5.当创建的新形成的二进制群集连锁功能组中的两个对象进入一个新的集群,它必须将群集的唯一索引值,从价值+ 1,其中是原始数据集中对象的数量。(值1到已使用的原始数据集。)类似地,对象7是通过分组对象1和3形成的群集。

连锁使用的距离,以确定在其聚类对象的顺序。距离矢量ÿ包含原始对象1之间的距离通过5.但联动也必须能够确定涉及簇,它创建,如对象6和7在默认情况下的距离,连锁使用一种称为单键的方法。然而,有许多不同的方法可用。看到连锁引用页面了解更多信息。

作为最后的簇,连锁功能分组物体8,对象6和7的由新形成的簇,与来自原始数据集的对象2。下图图解说明的方式连锁组中的对象成群集的层次结构。

系统树图

由创建的层次,二进制树簇连锁功能是最容易图形观察时理解。统计和机器学习工具箱功能树状图绘制树图如下。

树状图(Z)

在图中,沿着水平轴的数字表示在原始数据集中的对象的索引。对象之间的链接被表示为倒U形的线。U的高度表示的对象之间的距离。例如,表示包含对象1和3中的簇的链接具有1表示基团对象2的对象1,3,4一起群集的链接,和5的高度,(这是已经作为群集对象8)具有的2.5的高度。高度代表的距离连锁对象2和8之间计算用于有关创建树形图的更多信息,请参见树状图参考页。

验证集群树

在数据集中的对象链接到一个聚类树后,您可能需要验证的是,在树的距离(即,高度)准确地反映原始的距离。此外,您可能需要调查对象之间的链接之间存在天然的分歧。统计和机器学习工具箱功能可用于这两个任务,如在下面的章节描述。

验证相异

在聚类树,在原始数据集中的任何两个物体在一定程度上最终被连接在一起。链路的高度代表包含这些两个对象的两个簇之间的距离。这个高度被称为同表象的距离两个对象之间。一种方法来衡量如何通过所产生的集群树连锁功能反映了你的数据在同表象距离由生成的原始距离数据比较pdist函数。如果集群是有效的,在群树对象的链接应该在距离矢量对象之间的距离密切相关。该cophenet功能这两组比较值,并计算它们的相关性,返回一个所谓的值同表象相关系数。的同表象相关系数越接近的值是1时,更精确地聚类溶液反映数据。

您可以使用共同相关系数来比较使用不同距离计算方法或聚类算法对相同数据集进行聚类的结果。例如,你可以使用cophenet函数来评价样品数据集创建的集群。

C = cophenet(Z,Y)
C = 0.8615

ž是矩阵输出由连锁功能ÿ是距离矢量输出由pdist函数。

执行pdist再次对同一数据集,这次指定城市街区度量。运行后连锁这一新功能pdist使用平均连锁方法输出,呼叫cophenet评估集群解决方案。

Y = pdist(X,“cityblock”);Z =键(Y,'平均');C = cophenet(Z,Y)
c = 0.9047

同表象相关系数表明,使用不同的距离和联动方法创建表示原始距离稍好一棵树。

验证一致性

确定数据集中自然集群划分的一种方法是将集群树中的每个链接的高度与树中低于它的相邻链接的高度进行比较。

近似相同的高度在它下面的链接的链接表示有在此级别的层次结构的连接对象之间没有明显的分裂。这些链接所述表现出一致性的高电平时,因为被连接的物体之间的距离是大约之间它们所包含的对象相同的距离。

在另一方面,链接,其高度从它下面的链接的高度明显不同,表明该对象在这个级别的集群树加盟彼此更远分开时相比,他们加入了他们的成分是。此链接被认为是与它下面的链接不一致。

在聚类分析,不一致的链接可以指示在数据集中的自然区划的边界。该集群函数使用不一致的定量测量,以确定将数据集划分成集群。

下面的树状图说明不一致的链接。注意如何对象树形图中落入由连接在树中的更高的水平连接的两个群体。当与层级它们下面的链接相比,这些链接是不一致的。

在分层群集树的每个链路的相对一致性可以被量化并表示为前后矛盾系数。这个值比较集群中的层次与它下面的链接平均身高链接的高度。该加入不同的集群链接具有高的不一致系数;那似有似无加入集群环节具有低不一致系数。

若要为群集树中的每个链接生成不一致系数的列表,请使用不符函数。默认情况下,不符函数比较在与该低于它少于两个水平在群集分层结构相邻的链节的群集分层结构的每个链路。这就是所谓的深度的比较。您还可以指定其他深度。在集群树的底部的对象,称为叶节点,即具有低于他们没有进一步的目的,具有零的不一致系数。连接两个叶簇也有一个零不一致系数。

例如,你可以使用不符函数来计算不一致性值由创建的链接连锁在功能联系

首先,重新计算使用默认设置的距离和联动值。

Y = pdist(X);Z =键(Y);

接下来,使用不符计算不一致性值。

I =不一致(Z)
我=4×41.0000 0 1.0000 0 1.0000 0 1.0000 0 1.3539 0.6129 3.0000 1.1547 2.2808 0.3100 2.0000 0.7071

不符有关在该链接函数返回数据(-1)-by-4矩阵,其列于下表中进行了描述。

描述

1

意味着所有的环节的高度计算在内

2

所有环节的标准偏差计算在内

3

包括在计算链路数

4

不一致性系数

在示例输出中,第一行表示对象4和对象5之间的链接。方法为该集群分配索引6连锁函数。因为4和5都是叶节点,所以集群的不一致性系数为零。第二行表示对象1和对象3之间的链接,它们都是叶节点。这个集群由链接函数分配索引7。

第三行评估,这两个簇相连的链路,物体6和7(此新群集在所分配的索引8连锁输出)。第3列表示三通在计算中考虑:链接本身和层次结构中的正下方的两个链接。第1列代表这些链接的高度的平均值。该不符函数使用高度信息输出连锁函数来计算平均值。第2栏表示的链节之间的标准偏差。最后一列包含这些链接,1.1547不一致值。这是当前链路高度和平均,用标准差标准化之间的差异。

(2.0616  -  1.3539)/ 0.6129
ANS = 1.1547

下图说明了包括在这种计算中的链接和高度。

注意

在前面的图中,对下限ÿ轴设定为0显示链接的高度。要设置下限0中,选择轴属性来自编辑菜单,点击Y轴选项卡,输入0在现场立即向右侧ÿ限制

输出矩阵中的第4行描述了对象8和对象2之间的链接。第3列表明在这个计算中包含两个链接:链接本身和层次结构中它下面的链接。该链接的不一致性系数为0.7071。

下图说明了包括在这种计算中的链接和高度。

创建集群

创建二元团簇的分层树后,可以修剪树将数据分割成使用集群集群函数。该集群函数允许您以两种方式创建集群,如下面的部分所述:

查找数据自然区划

分层群集树可将数据自然分割为不同的分离良好的簇。这可以是在从其中对象组紧密堆积在某些区域而不在其他数据生成的树状图图尤为明显。在群集树的链路的不一致性系数可以识别这些区划其中对象之间的相似性急剧变化。(看到验证集群树有关不一致性系数的更多信息。)可以使用此值确定集群函数创建群集边界。

例如,如果您使用集群功能组中的样本的数据集成群集,指定的不一致系数阈1.2为一体的值隔断说法,集群功能组中的所有对象在采样数据集到一个集群。在这种情况下,没有在群集分层结构的链接,有一个不一致系数大于1.2

T =簇(Z,'隔断',1.2)
T =5×11 1 1 1 1

集群函数输出的载体,Ť,即与原始数据集大小相同。这个向量中的每个元素都包含原始数据集中对应对象所在的簇的个数。

如果降低的不一致系数门槛0.8中,集群功能将样本数据集分成三个独立的集群。

T =簇(Z,'隔断'0.8)
T =5×13 2 3 11 1

此输出指示物体1和3是在一个簇中,对象4和5是在另一个簇,和对象2是在其自己的集群。

当以这种方式形成集群时,将截止值应用于不一致系数。这些簇可能(但不一定)对应于树状图上某一高度的水平切片。如果希望集群对应于树状图的水平切片,可以使用标准选项来指定截止,应根据距离而不是不一致,也可以指定直接在下面的部分中描述的簇的数目。

指定任意集群

而不是让的集群函数创建由数据集自然区划确定的集群,您可以指定要创建的群集的数量。

例如,您可以指定您想要的集群功能到样本数据集划分为两个簇。在这种情况下,集群函数创建包含对象1,3,4,和5和包含对象2另一簇一个簇。

T =簇(Z,'maxclust',2)
T =5×12 1 2 2 2

为了帮助您直观了解的集群函数确定这些集群,如下图所示的分层群集树的树形图。水平虚线相交的树状图的两条线,对应于设定'maxclust'2。这两行分区中的对象分成两个集群:左手线,即1,3,4,和5的下方的对象,属于一个集群,而右手线下方的对象,即如图2所示,属于其他集群。

在另一方面,如果设置'maxclust'3下,集群功能组对象4和5在一个簇中,第二簇,和对象2在一个第三簇对象1和3。下面的命令示出这一点。

T =簇(Z,'maxclust',3)
T =5×12 3 2 11 1

这一次,集群功能切断层次结构在较低的点,对应于水平线相交三行中下图中的树状图的。

相关的话题