【概要】层次聚类

层次聚类(Hierarchical Clustering)是一种常用的聚类分析方法,旨在通过构建一个树形结构(也称为树状图,Dendrogram)来表示数据的层次关系。与K均值聚类不同,层次聚类不需要预先指定簇的数量,而是通过逐步合并(或拆分)数据点形成一个聚类树,用户可以根据需求选择合适的层次(簇数)来划分数据。

层次聚类有两种主要的策略:凝聚式(Agglomerative)和分裂式(Divisive)。

核心概念:

  1. 凝聚式层次聚类(Agglomerative Clustering)

    • 从每个数据点开始,将每个数据点视为一个单独的簇。
    • 在每一步中,选择两个最近的簇合并为一个新的簇,直到最终所有数据点合并成一个簇,或者满足停止条件(如达到预定簇数)。
    • 该方法从底向上逐步构建树形结构(自底向上的聚类过程)。
  2. 分裂式层次聚类(Divisive Clustering)

    • 从一个包含所有数据点的大簇开始。
    • 在每一步中,将一个簇拆分为两个簇,直到每个簇只包含一个数据点,或者满足停止条件。
    • 该方法从顶向下逐步构建树形结构(自顶向下的聚类过程)。
  3. 距离度量

    • 层次聚类的核心是计算簇与簇之间的距离。常见的距离度量方式有:
      • 欧几里得距离:常用于数值数据。
      • 曼哈顿距离:对某些类型的数值数据更有效。
      • 余弦相似度:常用于文本数据。
  4. 簇间距离的计算方法
    在合并(或拆分)簇时,需要定义簇之间的距离。常见的计算簇间距离的方法包括:

    • 单链接(Single linkage):簇间距离为两个簇中距离最小的两个点的距离。
    • 全链接(Complete linkage):簇间距离为两个簇中距离最远的两个点的距离。
    • 均值链接(Average linkage):簇间距离为两个簇中所有点对之间的平均距离。
    • 中心链接(Centroid linkage):簇间距离为两个簇的质心之间的距离。
  5. 树状图(Dendrogram)

    • 树状图是一种图形化表示层次聚类过程的方式,展示了簇之间的合并顺序以及每次合并时簇间的距离。
    • 通过截断树状图,可以选择最终聚类的数量。例如,可以在树状图中选择一个阈值,所有在该阈值以下的合并都被视为同一个簇。

算法步骤(以凝聚式层次聚类为例):

  1. 初始化

    • 将每个数据点视为一个独立的簇。
  2. 计算距离矩阵

    • 计算每对簇之间的距离,形成距离矩阵。最初每个簇的“距离”就是簇内数据点之间的距离。
  3. 合并最相似的簇

    • 每次选择距离最小的两个簇,将它们合并成一个新的簇。
  4. 更新距离矩阵

    • 合并簇后,需要更新距离矩阵,计算新簇与其他簇的距离。
  5. 重复步骤3和4

    • 继续合并最相似的簇,直到满足停止条件(如达到指定簇数或所有数据点合并成一个簇)。
  6. 生成树状图

    • 构建树状图,记录每次合并时簇间的距离,可以在树状图中选择合适的高度来划分簇的数量。

关键点:

  • 不需要预先指定K值:与K均值聚类不同,层次聚类不需要预先指定簇的数量,聚类结果是层次化的,可以通过树状图选择合适的簇数。
  • 树状图:树状图是层次聚类的输出,可以通过调整树状图的截断高度来得到不同数量的簇。
  • 距离度量:层次聚类依赖于簇之间的距离计算,不同的距离度量方式(如欧几里得距离、曼哈顿距离等)会影响聚类结果。
  • 簇的合并策略:簇合并(或拆分)的策略(如单链接、全链接、均值链接等)也会对最终结果产生影响。

优缺点:

  • 优点

    • 不需要指定K值:层次聚类的一个重要优点是它不需要用户预先指定簇的数量(K值),能够自动生成聚类的层次结构。
    • 结果可解释性强:通过树状图的形式,层次聚类能够提供清晰的聚类过程展示,便于理解。
    • 处理小规模数据较好:对于中小型数据集,层次聚类算法的计算和内存开销较小,且容易实施。
  • 缺点

    • 计算复杂度高:层次聚类的时间复杂度通常为O(n²),适合用于小规模数据集,对于大规模数据集的计算效率较低。
    • 对噪声和离群点敏感:层次聚类可能会受到噪声和离群点的影响,导致不理想的聚类结果。
    • 不可并行化:由于每次合并(或拆分)都需要重新计算距离矩阵,层次聚类算法通常无法并行化,计算速度较慢。
    • 结果不稳定:不同的距离度量方法和簇合并策略可能导致不同的聚类结果。

应用场景:

  • 生物信息学:在基因表达数据分析、蛋白质序列分析等领域,层次聚类可以帮助发现基因或蛋白质的相似性。
  • 文档聚类:在文本挖掘中,层次聚类能够将语义相似的文档聚集在一起,常用于信息检索和自动分类。
  • 图像分割:层次聚类可用于图像分割,通过将相似的像素分成一个簇来处理图像数据。
  • 市场分析:帮助市场研究人员发现不同类型的客户群体、产品群体等。

总结:

层次聚类是一种不需要预先指定簇数的聚类方法,适用于那些数据中存在自然层次关系的情况。它通过构建树状图展示数据点之间的聚类层次,能够有效发现数据的内在结构。尽管层次聚类算法计算复杂度较高,不适用于大规模数据集,但它在小型数据集上的表现非常出色,且能够提供清晰的聚类过程,适用于各种领域的探索性数据分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值