层次聚类是一种无监督学习方法,旨在将数据集中的对象按照相似度进行分组。该方法通过递归地将数据集划分为越来越小的子集,最终形成层次结构,其中每个子集都可以被视为一个聚类。层次聚类方法可以分为两种类型:凝聚型和分裂型。
凝聚型层次聚类是一种自下而上的方法,首先将每个数据点看作一个单独的聚类,然后根据它们之间的相似度逐步合并聚类,直到形成一个大的聚类或达到所需的聚类数。该方法的优点在于它能够适应任意形状的聚类,并且不需要预先指定聚类数。然而,它的主要缺点是它对噪声和异常值非常敏感,并且它的计算复杂度很高。
分裂型层次聚类是一种自上而下的方法,首先将整个数据集看作一个聚类,然后通过递归地将其划分为越来越小的子集,直到每个子集都只包含一个数据点或达到所需的聚类数。该方法的优点在于它对噪声和异常值不太敏感,并且它的计算复杂度要低得多。然而,它的主要缺点是它不能适应任意形状的聚类,并且需要预先指定聚类数。
层次聚类的核心是相似度度量。常见的相似度度量包括欧几里得距离、曼哈顿距离、余弦相似度等。在聚类过程中,相似度度量被用于计算聚类之间的距离或相似度,以确定哪些聚类应该被合并或划分。层次聚类通过不断地合并或划分聚类来形成聚类层次结构,其中每个层次代表不同的聚类数。
层次聚类算法的主要步骤包括:
1.计算样本间的距离或相似度矩阵。
2.将每个样本看作一个簇,构建初始的聚类树。
3.重复以下步骤直到形成一个簇:
- a.计算当前聚类树上所有簇之间的距离或相似度。
- b.合并距离或相似度最小的两个簇。
- c.更新聚类树。
- d.根据需要,确定聚类的数量或阈值,划分簇。
在实际应用中,层次聚类经常被用于图像分割、文本聚类、生物信息学、社交网络分析等领域。例如,层次聚类可以用于将一组文本文档聚类为主题相关的组,或将一组图像分割为相关的区域。在生物信息学中,层次聚类可以用于分析基因表达数据,以确定哪些基因彼此相关,从而识别与特定疾病相关的基因集合。
总之,层次聚类是一种常见的无监督机器学习方法,它可以将数据集根据相似度分成不同的聚类,并形成聚类层次结构。凝聚型层次聚类和分裂型层次聚类是两种常见的层次聚类方法。在应用中,层次聚类可以用于图像分割、文本聚类、生物信息学、社交网络分析等领域。