主要内容

分层聚类

分层群集介绍

通过创建群集树或通过创建群集树或者通过创建群集树群组分层群集组数据系统树图.树不是单一的群集,而是一个多级层次结构,其中一个级别的群集在下一级别加入群集。这允许您决定最适合您应用程序的群集的级别或比例。功能clusterdata.万博1manbetx支持群集聚类,并为您执行所有必要的步骤。它包含了这一点Pdist.连锁, 和功能,您可以更详细的分析分开使用。这系统树图函数绘制群集树。

算法描述

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

  1. 在数据集中找到每对对象之间的相似性或不相似性。在这一步中,你计算了距离使用的物体之间使用Pdist.函数。这Pdist.功能支持计算此测量万博1manbetx的许多不同方式。看相似性措施想要查询更多的信息。

  2. 集团的对象转换成二进制,聚类树。在这一步,你链接的对象对使用的是在靠近连锁函数。这连锁功能使用步骤1中生成的距离信息来确定彼此对象的接近。当对象被配对成二进制簇时,将新形成的簇分组成更大的簇,直到形成分层树。看联系想要查询更多的信息。

  3. 确定将分层树切成群集的位置。在这一步中,你使用了函数以preune分支在分层树的底部,并将每个剪切下面的所有对象分配给单个群集。这创建了数据的分区。这功能可以通过在分级树检测自然分组或通过在任意点切断分层树创建这些簇。

以下部分提供有关这些步骤中的每一个的更多信息。

笔记

功能clusterdata.执行所有的必要的步骤。你并不需要执行Pdist.连锁, 或者单独职能。

相似性措施

你用了Pdist.函数来计算数据集中每对对象之间的距离。对于由...组成的数据集m物体,有m*(m- 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×102.9155 1.0000 3.0414 3.0414 2.5495 3.3541 2.5000 2.0616 2.0616 1.0000

为了使更容易看到由此产生的距离信息之间的关系Pdist.以及原始数据集中的对象,可以使用使用的矩阵重新格式化为矩阵squareform函数。在这个矩阵中,元素我,我对应于物体之间的距离一世和对象j在原始数据集。在以下示例中,元件1,1表示对象1和它本身之间的距离(这是零)。元件1,2表示对象1和对象2,等等之间的距离。

方形(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 0 1.0000 3.0414 2.5000 2.0616 1.0000 0

联系

一旦计算了数据集中的对象之间的邻近,您可以确定使用数据集中的对象是否应将其分组为群集,使用连锁函数。这连锁函数采用由此生成的距离信息Pdist.链接靠近二进制集群的对象对(由两个对象组成的群集)。这连锁函数将这些新形成的集群相互连接,并与其他对象连接,以创建更大的集群,直到原始数据集中的所有对象在一个层次树中连接在一起。

例如,给定距离矢量yPdist.从样本数据集X- 和y- 努力,这连锁函数生成分层群集树,返回矩阵中的链接信息,Z.

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- 和y- 努力,这连锁功能开始于分组对象4和5,其具有最接近的接近度(距离值= 1.0000)。这连锁通过对象1和3继续功能,该对象1和3也具有1.0000的距离值。

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

连锁使用距离来确定其群集对象的顺序。距离矢量y包含原始对象1到5之间的距离。但linkage也必须能够确定它所创建的簇的距离,比如物体6和7。默认情况下,连锁使用称为单链路的方法。但是,有许多不同的方法可用。看看连锁更多信息的参考页面。

作为最终集群,连锁功能分组对象8,新形成的集群由对象6和7组成,具有来自原始数据集的对象2。下图以图形方式示出了方式连锁组中的对象成群集的层次结构。

树文图

由此创建的分层,二进制群集树连锁功能是最容易图形观察时理解。功能系统树图如下绘制树。

树木图(z)

图包含轴。轴包含4个类型的4个物体。

在该图中,沿水平轴的数字表示原始数据集中的对象的索引。对象之间的链接表示为颠倒U形线。U的高度表示对象之间的距离。例如,表示包含对象1和3的群集的链路的高度为1.表示对象2与对象1,3,4和5一起组的群集的链路(已群集为对象8)具有高度为2.5。高度代表距离连锁在对象2和8之间计算。有关创建树木图的更多信息,请参阅系统树图参考页面。

验证集群树

将数据中的对象链接到分层群集树中后,您可能希望验证树中的距离(即高度)是否准确反映了原始距离。此外,您可能希望调查对象之间的链接中存在的自然差。统计和机器学习工具箱功能可用于这两个任务,如以下部分中所述。

验证不同

在聚类树,在原始数据集中的任何两个物体在一定程度上最终被连接在一起。链路的高度代表包含这些两个对象的两个簇之间的距离。这个高度被称为拷贝距离在两个物体之间。测量由此产生的集群树的一种方法连锁函数反映你的数据是比较亲和距离与原始距离数据生成的Pdist.函数。如果聚类有效,聚类树中对象的链接应该与距离向量中对象之间的距离有很强的相关性。这cophenet函数比较这两组值并计算它们的相关性,返回一个称为的值同表象相关系数.亲和相关系数的值越接近1,聚类解决方案反映您的数据就越准确。

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

C = cophenet(Z,Y)
c = 0.8615

Z.是矩阵输出由连锁功能和y是距离矢量输出的Pdist.函数。

执行Pdist.再次在相同的数据集上,这次指定城市块度量标准。经过跑步之后连锁在这个新的功能Pdist.输出使用平均链接方法,呼叫cophenet评估聚类解决方案。

Y = pdist(X,'城市街区');Z =键(Y,'平均数');C = cophenet(Z,Y)
C = 0.9047.

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

验证一致性

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

与下面的链接大致相同的链路表示它表示在该层次结构的此级别连接的对象之间没有不同的划分。据说这些链接具有高水平的一致性,因为所连接的物体之间的距离与它们包含的对象之间的距离大致相同。

另一方面,从下面的链路的高度明显不同的链接表明,它表明在簇树中加入在该级别的物体与它们连接的组件相彼此相比远更远。据说此链接与其下面的链接不一致。

在群集分析中,不一致的链接可以指示数据集中自然划分的边界。这函数使用定量测量不一致,以确定将数据分区设置为群集的位置。

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

层次聚类树中各环节的相对一致性可以量化,表示为不一致系数.这个值比较集群中的层次与它下面的链接平均身高链接的高度。该加入不同的集群链接具有高的不一致系数;那似有似无加入集群环节具有低不一致系数。

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

例如,您可以使用不一致方法创建的链接计算不一致值连锁功能在联系

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

y = pdist(x);z =连杆(Y);

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

我=不一致(z)
我=4×4.1.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

不一致有关在该链接函数返回数据(m-1)-4-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) / .6129
ANS = 1.1547

下图说明了该计算中包括的链路和高度。

笔记

在前面的图中,下限y轴设定为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

功能输出矢量,T.,与原始数据集的大小相同。此向量中的每个元素包含在放置原始数据集中的相应对象的群集的数量。

如果您降低了不一致的系数阈值0.8, 这功能将样本数据划分为三个单独的群集。

T =簇(Z,'隔断',0.8)
t =5×13 2 3 1 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在一个簇中,第二簇中的对象1和3,以及第三集群中的对象2。以下命令说明了这一点。

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

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

相关话题