什么是凝聚层次聚类?
凝聚层次聚类是一种自下而上的聚类方法,其中簇包含子簇,子簇依次包含子簇,依此类推。它从将每个对象放置到其自己的簇开始,然后将这些原子簇合并成越来越大的簇,直到某些对象在一个簇中或直到满足某个特定的终止条件。有几种层次聚类方法被用于此目的。它们的区别仅在于它们对簇间相似性的描述。
例如,一种称为 AGNES(凝聚嵌套)的方法使用单链接技术,其工作原理如下。假设有一组对象放置在一个矩形中。最初,每个对象都放置到它自己的簇中。然后,根据某个原则逐步合并簇,该原则涉及合并簇间最近对象之间欧氏距离最小的簇。
层次聚类通常使用树状图以图形方式显示,树状图显示了簇-子簇关联以及簇合并(凝聚视图)或分裂(分裂视图)的顺序。
基本的凝聚层次聚类算法。
计算邻近矩阵,如果需要。
重复
合并最近的两个簇。
更新邻近矩阵以反映新簇与原始簇之间的邻近性。
直到只剩下一个簇。
簇邻近性通常根据特定类型的簇来定义。例如,几种凝聚层次聚类技术,包括 MIN、MAX 和组平均,源于簇的基于图的视图。
MIN 将簇邻近性定义为属于多个簇的两个最近点之间的邻近性,或者使用图方法,即多个节点子集中两个节点之间的最短边。
或者,MAX 将多个簇中最远的两个点之间的邻近性作为簇邻近性,或者使用图方法,即不同节点子集中两个节点之间的最长边。
提出的凝聚层次聚类算法需要一个邻近矩阵。这需要存储 $\mathrm{\frac{1}{2}m^2}$ 个邻近性(假设邻近矩阵是对称的),其中 m 是数据点的数量。跟踪簇所需的存储空间与簇的数量成正比,即 m-1,不包括单例簇。因此,总空间复杂度为 $\mathrm{O(m^2)}$。
关于计算复杂度,基本凝聚层次聚类算法的分析也很简单。计算邻近矩阵需要 $\mathrm{O(m^2)}$ 的时间。在此步骤之后,有 m-1 次迭代包含步骤 3 和 4,因为一开始有 m 个簇,并且在每次迭代期间合并两个簇。