分群(clustering、聚类)是非监督式学习的一种,它能够将大量数据分为多个不同的组或"聚类"。在这些分群中,同一群的数据之间的相似度很高,而不同群之间的数据相似度则较低。这种学习方式的特点是不需要依赖预定义的类别标籤(Target、Label),所以被称为无监督学习。这里我们要介绍的两种常见的分群方法是 K-means和层次聚类(hierarchical clustering)。
K-means 是一种迭代的分群方法,它的目标是最小化每个聚类中所有数据点与该聚类中心点的距离之和。在K-means聚类中,首先随机选取 k 个数据点作为初始的聚类中心,然后依据每个数据点到各聚类中心的距离,将数据点分配到最近的聚类中。接着,重新计算每个聚类的中心点,并重複分配和更新中心点的过程,直到聚类中心不再变化或者达到预定的迭代次数。
与 K-means 聚类不同,层次聚类不需要事先决定聚类的数量。层次聚类按照一定的相似度(或者距离)準则,将最相似(或者距离最近)的数据点或者聚类逐渐合併,从而形成一个聚类的层次结构。这种方法可以产生不同层次的聚类结果,并且可以用树状图(dendrogram)来可视化聚类的过程和结果。层次聚类有两种主要的变体:凝聚性层次聚类(agglomerative hierarchical clustering,从单点聚类逐渐合併)和分裂性层次聚类(divisive hierarchical clustering,从整体数据集开始逐渐分裂)。
无论是 K-means 聚类还是层次聚类,都是无监督学习中的重要工具,能够帮助我们从大量数据中找到有意义的组别。这两种方法各有优缺点,适合于不同的应用场景。K-means聚类适合于大数据集,并且当我们有一些关于聚类数量的先验知识时,这种方法可以得到较好的效果。而层次聚类则适合于较小的数据集,并且当我们希望得到一个详细的聚类层次结构,或者我们对聚类数量没有明确的预设时,这种方法可能更为适合。总的来说,选择哪种分群方法取决于我们的具体需求和数据的特性。