层次聚类与非层次聚类
介绍
聚类是机器学习中一种重要的技术,用于根据数据点内在的模式和相似性将相似的数据点分组在一起。两种常用的聚类方法是层次聚类和非层次聚类。层次聚类通过动态地合并或分割聚类来创建聚类的层次结构,基于它们之间的接近程度或差异。这将生成一个树状结构,称为树状图,它提供了对聚类之间不同层次关系的见解。另一方面,非层次聚类直接将数据点分配到聚类中,而无需考虑层次结构。理解这些聚类方法的差异和特性对于选择适合特定聚类任务的算法至关重要。
什么是层次聚类?
层次聚类是一种灵活的聚类方法,它创建聚类的层次结构。它可以使用两种主要策略来执行:
凝聚式层次聚类从将每个数据点视为单个聚类开始,并不断合并相似的聚类,直到所有数据点都属于一个聚类。在每一步中,算法识别两个最相似的聚类并将它们合并成一个更大的聚类。这个过程一直持续到形成一个单一的聚类,或者达到预定义的聚类数量。
分裂式层次聚类则相反,它从将所有数据点都放在一个聚类中开始,然后递归地将聚类分割成更小的聚类,基于差异。它首先将所有数据点视为一个单一聚类,并将其分成两个聚类。然后,算法继续将每个生成的聚类分割成更小的聚类,直到满足停止条件。
层次聚类的一个主要优点是它能够提供聚类结果的层次表示。这种层次结构可以使用树状图来可视化,树状图显示了聚类之间的关系。树状图有助于理解聚类之间的过程和联系,从而能够对数据进行更深入的解释。层次聚类还提供灵活性,可以通过在树状图上设置一个截止点来确定聚类的数量。
什么是非层次聚类?
非层次聚类,也称为划分聚类,指的是直接将数据点分配到聚类中,而无需考虑层次结构。它包括一些著名的算法,例如 K 均值、DBSCAN 和高斯混合模型 (GMM)。非层次聚类算法通常需要聚类数量作为输入参数,并优化聚类标准来将数据点分配到聚类中。
非层次聚类的一个重要优势是它的计算效率。与层次聚类不同,非层次聚类算法不需要计算所有数据点之间的成对相似度或差异性。相反,它们专注于优化聚类标准,例如最小化聚类内距离或最大化聚类间距离。
这种特性使得非层次聚类特别适合大型数据集。此外,非层次聚类算法对聚类数量的控制更多,因为需要指定所需的聚类数量。这允许获得有针对性和预定义的聚类结果,这在许多应用程序中非常有用,在这些应用程序中,所需的聚类数量是预先知道的。
层次聚类与非层次聚类
以下表格突出了它们的差异
差异依据 |
层次聚类 |
非层次聚类 |
---|---|---|
结构 |
通过不断合并基于相似性的相似聚类来创建聚类的层次结构,形成一个称为树状图的树状结构。 |
直接将数据点分配到聚类中,而无需考虑层次结构或关系。 |
灵活性 |
它提供了灵活性,可以通过在树状图上设置截止点来确定聚类的数量,允许探索不同的聚类层次结构。 |
它需要将聚类数量作为输入参数,提供控制并预定义预期的聚类数量。 |
聚类可解释性 |
它通过树状图提供可视化表示,从而可以了解聚类的层次关系和结构。 |
它更侧重于优化聚类标准,例如最小化聚类内距离或最大化聚类间距离,而不是提供层次解释。 |
用例 |
适用于探索层次关系和理解数据中的层次结构,尤其是在不知道所需聚类数量的情况下。 |
适用于需要预定义聚类数量的情况,这使其非常适合大型数据集和可解释性不那么重要的场景。 |
结论
总之,层次聚类和非层次聚类是将相似数据点分组在一起的两种不同方法。层次聚类创建聚类的层次结构,提供确定聚类数量的灵活性,并通过树状图提供可视化表示。非层次聚类直接将数据点分配到聚类中,计算效率高,并且需要聚类数量作为输入参数。选择层次聚类还是非层次聚类取决于数据的性质、所需的聚类可解释性、计算限制以及关于聚类数量的先验知识。了解这些聚类方法之间的差异使数据科学家能够为其特定的聚类任务选择最合适的算法。