基于层次的聚类分析通过对样本数据的递归划分创建一个相应的树状结构层次进行聚类。对于样本数据的划分,可以采用自下而上的凝聚策略,也可以采用自上而下的分裂策略。具体而言,自下而上的凝聚式聚类首先将数据集中的每个样本分别视为一个初始簇,然后根据距离大小不断迭代合并相近的两个簇,直至达到预设的簇个数,或者所有的样本都在一个簇中。绝大多数的层次聚类算法都属于这一类,如AGNES(AGlomerative NESting)、ROCK(RObust Clustering using linKs)等。自上而下的分裂式聚类则与凝聚式聚类相反,它首先将数据集中的所有样本视为一个初始簇,然后逐渐迭代分裂成越来越小的簇,直到达到预设的簇个数,或者每个样本自成一簇。常见的分裂式聚类算法有单元分裂方法、DIANA(DIvisive ANAlysis)等。
以在由5个样本组成的数据集中进行层次聚类为例,图8-2具体描述了凝聚式聚类分析和分裂式聚类分析的过程。在凝聚式聚类过程中,样本 x 1 ~ x 5 分别视为一个簇,接着不断迭代合并两个距离相近的簇,直至合并成一个簇中。若设定簇的数目是2个,则 x 1 与 x 2 属于同一个簇,其余样本属于一个簇。在分裂式聚类过程中,所有样本视为同一个簇,接着不断分裂直至每个簇只有一个样本。若设定簇的数目是3个,则 x 1 与 x 2 属于同一个簇, x 4 与 x 5 属于同一个簇, x 3 为一个簇。
图8-2 层次聚类的简单例子