我们再一次使用现在的距离矩阵重复步骤 2。最近的距离(3.7m)出现在两个已经合并的项,现在我们将这两项合并成为更大的一项(均值为 5.2m)。 紧接着,我们再一次重复步骤 2,最小距离(5.0m)出现在座头鲸与长须鲸中,所以继续合并它们为一项,并计算均值(17.5m)。 返回到步骤 1,计算新的距离矩阵,其中座头鲸与长须鲸已经合并为一项。 最后,重复步骤 2,距离矩阵中只存在一个值(12.3m),我们将所有的都合成为了一项,并且现在可以停止这一循环过程。先让我们看看最后的合并项。 现在其有一个嵌套结构(参考 JSON),该嵌套结构能绘制成一个树状图。其和家族系谱图的读取方式相近。在树型图中,两个观察值越近,它们就越相似和密切相关。 一个在 R-Fiddle.org 生成的树状图 通过树型图的结构,我们能更深入了解数据集的结构。在上面的案例中,我们看到了两个主要的分支,一个分支是 HW 和 FW,另一个是 BD、RD、PW、KW。 在生物进化学中,通常会使用包含更多物种和测量的大型数据集推断这些物种之间的分类学关系。在生物学之外,层次聚类也在机器学习和数据挖掘中使用。 重要的是,使用这种方法并不需要像 K-均值聚类那样设定分组的数量。你可以通过给定高度「切割」树型以返回分割成的集群。高度的选择可以通过几种方式进行,其取决于我们希望对数据进行聚类的分辨率。 例如上图,如果我们在高度等于 10 的地方画一条线,就将两个主分支切开分为两个子图。如果我们从高度等于 2 的地方分割,就会生成三个聚类。 更多细节: 对于这里给出的层次聚类算法(hierarchical clustering algorithms),其有三个不同的方面。 最根本的方法就是我们所使用的集聚(agglomerative)过程,通过该过程,我们从单个数据点开始迭代,将数据点聚合到一起,直到成为一个大型的聚类。另外一种(更高计算量)的方法从巨型聚类开始,然后将数据分解为更小的聚类,直到独立数据点。 还有一些可以计算距离矩阵的方法,对于很多情况下,欧几里德距离(参考毕达哥拉斯定理)就已经够了,但还有一些可选方案在特殊的情境中更加适用。 最后,连接标准(linkage criterion)也可以改变。聚类根据它们不同的距离而连接,但是我们定义「近距离」的方式是很灵活的。在上面的案例中,我们通过测量每一聚类平均值(即形心(centroid))之间的距离,并与最近的聚类进行配对。但你也许会想用其他定义。 例如,每个聚类有几个离散点组成。我们可以将两个聚类间的距离定义为任意点间的最小(或最大)距离,就如下图所示。还有其他方法定义连接标准,它们可能适应于不同的情景。 红/蓝:形心连接;红/绿:最小连接;绿/蓝:最大连接 图团体检测(Graph Community Detection) 何时使用? 当你的数据可以被表示为一个网络或图(graph)时。 工作方式 图团体(graph community)通常被定义为一种顶点(vertice)的子集,其中的顶点相对于网络的其它部分要连接得更加紧密。存在多种用于识别图的算法,基于更具体的定义,其中包括(但不限于):Edge Betweenness、Modularity-Maximsation、Walktrap、Clique Percolation、Leading Eigenvector…… 有效案例 图论是一个研究网络的数学分支,参考机器之心文章。使用图论的方法,我们可以将复杂系统建模成为「顶点(vertice)」和「边(edge)」的抽象集合。 也许最直观的案例就是社交网络。其中的顶点表示人,连接顶点的边表示他们是朋友或互粉的用户。 (责任编辑:本港台直播) |