主要内容

分层聚类

层次聚类介绍

分层聚类通过创建集群树或在不同的尺度上对数据进行分组系统树图。该树不是单一的集群集合,而是一个多层层次结构,其中一个级别的集群作为下一个级别的集群进行连接。这允许您决定最适合您的应用程序的集群级别或规模。这个函数clusterdata支持聚合聚类,并为您执行所有必要的步骤。它包含了pdist链接,集群函数,您可以单独使用它们进行更详细的分析。的系统树图函数绘制了集群树。

算法描述

若要使用统计和机器学习工具箱™功能对数据集执行聚合层次聚类分析,请遵循以下过程:

  1. 找出数据集中每对对象之间的相似性或不相似性。在这一步中,计算距离对象之间使用pdist函数。的pdist函数支持多种不同的方法来计算此度量。看到相似的措施为更多的信息。

  2. 将对象分组到一个二叉的、分层的集群树中。方法将非常接近的对象对链接起来链接函数。的链接函数使用第1步中生成的距离信息来确定物体之间的接近度。当对象被配对成二叉簇时,新形成的簇被分组成更大的簇,直到形成层次树。看到联系为更多的信息。

  3. 确定在哪里将层次树切割成集群。在此步骤中,使用集群函数从层次树的底部删除分支,并将每个切面下的所有对象分配到单个集群。这将创建一个数据分区。的集群函数可以通过在层次树中检测自然分组或在任意点切断层次树来创建这些集群。

以下部分提供了关于这些步骤的更多信息。

请注意

这个函数clusterdata为您执行所有必要的步骤。不需要执行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,其中每个元素包含一对对象之间的距离。

Y = pdist (X)
Y =第1列~第6列2.9155 1.0000 3.0414 3.0414 2.5495 3.3541第7列~第10列2.5000 2.0616 2.0616 1.0000

为了更容易看到距离之间的关系,产生的信息pdist对原始数据集中的对象,可以将距离向量重新格式化为矩阵squareform函数。在这个矩阵中,元素我,我对应于物体之间的距离和对象j在原始数据集中。在下面的例子中,元素1,1表示对象1和它本身之间的距离(为零)。元素1,2表示物体1和物体2之间的距离,以此类推。

squareform (Y)
Ans = 0 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 0 1.0000 3.0414 2.5000 2.0616 1.0000 0

联系

方法计算出数据集中对象之间的接近性之后,就可以确定应该如何将数据集中的对象分组到集群中链接函数。的链接函数取由。生成的距离信息pdist并将紧密相连的对象对链接成二进位簇(由两个对象组成的簇)。的链接函数将这些新形成的集群彼此连接,并与其他对象连接,以创建更大的集群,直到原始数据集中的所有对象在层次树中链接在一起。

例如,给定距离向量Y生成的pdist的样本数据集x- - -y坐标,链接函数生成层次聚类树,返回矩阵中的链接信息,Z

Z =连杆(Y)
Z = 4.0000 5.0000 1.0000 1.0000 3.0000 1.0000 6.0000 7.0000 2.0616 2.000 8.0000 2.5000

在此输出中,每一行标识对象或集群之间的链接。前两列标识已链接的对象。第三列是这些物体之间的距离。的样本数据集x- - -y坐标,链接函数首先对最接近的对象4和5进行分组(距离值= 1.0000)。的链接函数继续分组对象1和3,它们的距离值也为1.0000。

第三行表示链接函数分组对象6和7。如果原始样本数据集只包含5个对象,那么对象6和7是什么?对象6是通过对象4和5的分组创建的新形成的二进制集群。当链接函数将两个对象分组到一个新的集群中,它必须从该值开始为集群分配唯一的索引值+ 1,原始数据集中的对象数。(值1到已经被原始数据集使用了。)类似地,对象7是通过对对象1和3进行分组而形成的集群。

链接使用距离来确定将对象聚类的顺序。距离矢量Y包含原始对象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

Z矩阵的输出是链接功能和Y距离向量的输出是pdist函数。

执行pdist同样是在相同的数据集上,这次指定城市街区的度量。后运行链接函数在这个新的pdist输出使用平均联动方法,调用cophenet对聚类方案进行评估。

Y = pdist (X,“cityblock”);Z =连杆(Y,“平均”);c = cophenet (Z, Y)
c = 0.9047

综合相关系数表明,使用不同的距离和链接方法创建的树可以更好地表示原始距离。

验证一致性

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

与下面的链接高度几乎相同的链接表明在这个层次结构级别连接的对象之间没有明显的划分。这些链接被认为具有高度的一致性,因为被连接的对象之间的距离与它们所包含的对象之间的距离大致相同。

另一方面,如果链接的高度与下面链接的高度显著不同,则表明在集群树中此级别连接的对象彼此之间的距离比连接时它们的组件之间的距离要远得多。这个链接被认为与下面的链接不一致。

在聚类分析中,不一致的链接可以表示数据集中自然划分的边界。的集群函数使用不一致的定量度量来确定在哪里将数据集划分为集群。

下面的树状图展示了不一致的链接。注意树状图中的对象如何分为两组,这两组由树中更高级别的链接连接。这些链接与层次结构中低于它们的链接相比是不一致的。

分层集群树,显示显示一致的链接和显示不一致的链接之间的差异

层次聚类树中每个链接的相对一致性可以量化并表示为不一致系数。该值比较集群层次结构中链接的高度与其下面链接的平均高度。连接不同集群的链接具有很高的不一致性系数;连接模糊集群的链接具有较低的不一致性系数。

要为群集树中的每个链接生成不一致系数的列表,请使用不一致的函数。默认情况下,不一致的函数将集群层次结构中的每个链接与集群层次结构中低于其两个级别的相邻链接进行比较。这叫做深度的比较。还可以指定其他深度。簇树底部的对象称为叶节点,它们的下面没有其他对象,不一致系数为零。连接两个叶子的集群也具有零不一致系数。

例如,您可以使用不一致的方法创建的链接的不一致值链接函数联系

首先,使用默认设置重新计算距离和链接值。

Y = pdist (X);Z =连杆(Y);

下一步,使用不一致的计算不一致值。

我=不一致(Z)
I = 1.0000 1.0000 0 1.0000 0 1.0000 0 1.3539 0.6129 3.0000 1.1547 2.2808 0.3100 2.000 0.7071

不一致的函数中返回有关链接的数据。-1)-乘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

下图说明了此计算中包含的链接和高度。

显示用于计算第三个不一致系数的三个链接的层次聚类树

请注意

在上图中,的下限y-axis设置为0来显示连杆的高度。将下限设置为0中,选择轴属性编辑菜单,点击Y轴选项卡,并输入0在田野的右边Y的限制

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

下图说明了此计算中包含的链接和高度。

显示用于计算第四个不一致系数的两个链接的层次聚类树

创建集群

方法创建二叉集群的层次树之后,可以对树进行修剪,以将数据划分为多个集群集群函数。的集群函数允许您以两种方式创建集群,如下面的部分所述:

在数据中找到自然划分

分层聚类树可以自然地将数据划分为不同的、分离良好的聚类。这在由数据创建的树状图中特别明显,其中对象组密集地分布在某些区域,而不在其他区域。聚类树中链接的不一致系数可以识别出对象之间相似性突然变化的这些划分。(见验证集群树有关不一致系数的更多信息。)您可以使用此值来确定集群函数创建集群边界。

例如,如果您使用集群函数将样本数据集分组,并指定不一致系数阈值1.2的值截止参数,集群函数将样本数据集中的所有对象分组到一个集群中。在这种情况下,集群层次结构中没有一个链接的不一致系数大于1.2

T =集群(Z,“截止”, 1.2)
T = 1 1 1 1 1

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

如果将不一致系数阈值降低到0.8,集群函数将样本数据集划分为三个独立的集群。

T =集群(Z,“截止”, 0.8)
T = 1 2 1 3 3

这个输出表明对象1和3在一个集群中,对象4和5在另一个集群中,对象2在自己的集群中。

当以这种方式形成聚类时,对不一致系数应用截止值。这些簇可能(但不一定)对应于树状图上某一高度的水平切片。如果希望集群对应于树状图的水平切片,则可以使用标准选项指定截止应基于距离而不是不一致,或者可以直接指定集群的数量,如下一节所述。

指定任意的集群

而不是让集群命令功能根据数据集中的自然划分创建集群,可指定创建的集群数量。

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

T =集群(Z,“maxclust”, 2)
T = 2 1 2 2 2

帮助你想象如何集群函数决定了这些集群,下图显示了层次集群树的树状图。水平虚线与树状图的两条线相交,对应设置maxclust2。这两条线将对象划分为两个集群:左边线以下的对象,即1、3、4和5属于一个集群,而右边线以下的对象,即2属于另一个集群。

显示用于创建两个集群的截止值的层次集群树

另一方面,如果你设置maxclust3.,集群功能将对象4和5分组在一个集群中,对象1和3分组在第二个集群中,对象2分组在第三个集群中。下面的命令说明了这一点。

T =集群(Z,“maxclust”3)
T = 1 3 1 2 2

这一次,集群函数在一个较低的点切断层次结构,对应于与下图树状图的三条线相交的水平线。

层次化集群树,显示用于创建三个集群的截止值

相关的话题

Baidu
map