主要内容

分层聚类

介绍层次聚类

层次聚类组数据各种尺度的树或通过创建一个集群系统树图。树不是一个单一的组群,而是一个多级层次结构,集群在某种程度上也加入了集群在上一层楼。这允许您决定或集群规模水平最适合于您的应用程序。这个函数clusterdata金宝app支持烧结的集群和执行所有必要的步骤。它包含了pdist,链接,集群功能,您可以使用单独进行更详细的分析。的系统树图功能块集群树。

算法描述

对一个数据集执行会凝聚的层次聚类分析使用统计和机器学习工具箱™函数,遵循这个过程:

  1. 每一对之间找到相似或不同的对象数据集。在这个步骤中,您计算距离对象之间使用pdist函数。的pdist函数支持许多不同的金宝app方法来计算这个测量。看到相似的措施为更多的信息。

  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×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和对象之间的距离,等等。

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

联系

一旦数据集内的对象之间的距离计算,可以确定对象的数据集应该分为集群,使用链接函数。的链接函数产生的距离信息pdist和链接对接近的对象为二进制集群(集群由两个对象)。的链接函数然后连接这些新形成的集群和其他对象来创建更大的簇,直到所有的对象在原始数据集在分层树联系在一起。

例如,考虑到距离向量Y生成的pdist从样本数据集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.0000。

第三行表示链接函数对象分组6和7。如果原始样本数据集只包含五个对象,对象6和7是什么?对象6是新成立的二进制集群4和5的对象创建的分组。当链接函数组两个对象到一个新的集群,集群必须分配一个唯一的索引值,从价值+ 1,对象的数量在原始数据集。(值1到已经使用的原始数据集。)同样,对象7是集群形成的分组对象1和3。

链接使用距离来确定它的集群对象的顺序。距离矢量Y包含1到5的原始对象之间的距离。但是链接还必须能够确定距离涉及集群创建,如对象6和7。默认情况下,链接使用一个方法称为单键。然而,有许多不同的方法。看到链接参考页面获取更多信息。

作为最后一个集群,链接函数分组对象,对象的新形成的集群由6和7,从原始数据集对象2。下面的图以图形方式显示了链接组对象层次结构的集群。

系统树图

集群层次、二进制树创建的链接函数是最容易理解当图形。这个函数系统树图情节树如下所示。

系统树图(Z)

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。

在图中,沿水平轴代表的数字指标的原始数据集对象。对象之间的链接被表示为倒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)
我=4×41.0000 1.0000 1.0000 1.0000 0 0 0 0 1.3539 0.6129 3.0000 1.1547 2.2808 0.3100 2.0000 0.7071

不一致的函数返回的数据在一个链接(1)×4矩阵的列在下表中描述。

描述

1

高度的意思是所有的链接包含在计算

2

标准偏差的所有链接包含在计算

3

的链接数包括在计算中

4

不一致性系数

在示例输出,第一行代表对象4和5之间的联系。这个集群分配指数6的链接函数。因为4和5都是叶节点,集群的一致性系数为零。第二行代表1和3之间的联系对象,这两个也是叶节点。这个集群分配指数7的联动功能。

第三行评估的联系,连接这两个集群,对象6和7。(这个新集群分配指数8链接输出)。第三列计算表明,三个链接是:链接本身和它下面的两个链接直接层次结构。第一列代表的意思是这些链接的高度。的不一致的函数使用高输出的信息链接函数计算的意思。第2列代表标准差之间的链接。最后一列包含这些链接的不一致值,1.1547。它的区别是当前链接高度和均值,标准差标准化。

(2.0616 - 1.3539)/ .6129
ans = 1.1547

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

请注意

在前面的图中,较低的限制y设在被设置为0显示链接的高度。设置的下限0中,选择轴属性编辑菜单,点击Y轴选项卡,并输入0在现场立即的右边Y的限制

行4在输出矩阵描述对象8和对象2之间的联系。第三列表明两个链接都包含在这个计算:链接本身和它下面的链接直接层次结构。这个链接的不一致性系数为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”34和5,集群功能组对象在一个集群中,对象1和3在第二个集群,集群和对象2在第三。下面的命令说明了这一点。

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

这一次,集群函数切断层次较低的时候,相应的水平线相交的三行系统树图如下图所示。

相关的话题