【AI深究】层次聚类(Hierarchical Clustering)四大链接法全网最详细全流程详解与案例(附Python代码演示) | 单链法、全链法、平均法、中心法 | 例子案例及数据

该文章已生成可运行项目,

大家好,我是爱酱。本期我们将用详细案例和流程,分别演示单链法、全链法、平均法和中心法四种主流链接方式的层次聚类。每种方法都配有具体合并步骤、距离计算和结果解读,帮助新手和进阶读者彻底理解层次聚类的核心思想和实际操作。

注:本文章含大量数学算式、详细例子说明及代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!


一、层次聚类的基本流程

我们先要知道聚类的种类:

  • 凝聚型(Agglomerative):每个点单独为一类,逐步合并最近的两类,直到只剩一个大类或达到预设簇数。

  • 分裂型(Divisive):所有点先是一类,逐步分裂成更小的簇,直到每个点单独成类或达到预设簇数。

实际应用中,凝聚型更常用。在这篇文章,我们也会预设使用凝聚型。相信大家在搞明白凝聚型后,也能举一反三,知道分裂型是怎么运作的!


二、距离度量与四大链接法

1. 单链法(Single Linkage)

d_{\text{single}}(A, B) = \min_{x \in A, y \in B} \|x - y\|

2. 全链法(Complete Linkage)

d_{\text{complete}}(A, B) = \max_{x \in A, y \in B} \|x - y\|

3. 平均法(Average Linkage)

d_{\text{average}}(A, B) = \frac{1}{|A||B|} \sum_{x \in A} \sum_{y \in B} \|x - y\|

4. 中心法(Centroid Linkage)

d_{\text{centroid}}(A, B) = \|\mu_A - \mu_B\|

其中 $\mu_A$$\mu_B$ 分别为簇 $A$$B$ 的均值。


三、案例数据

假设有5个样本点:A、B、C、D、E,欧氏距离矩阵(Euclidean Distance Matrix)如下:
基本上,表格的数字就是代表该点于目标点的绝对距离差异(标量)。

A B C D E
A 0 2 6 10 9
B 2 0 5 9 8
C 6 5 0 4 5
D 10 9 4 0 3
E 9 8 5 3 0

四、四大链接法的完整流程

1. 单链法(Single Linkage)流程

Step 1:初始化

每个点为一类:

本文章已经生成可运行项目
### 层次聚类 (Hierarchical Clustering) #### 算法原理 层次聚类是一种不需预先设定簇数量的聚类,能够构建一个描述数据集内部结构的树形图(也称为树状图)。该算法主要分为两种形式:凝聚型(自底向上)和分裂型(自顶向下),其中常见的是凝聚型层次聚类。在这一过程中,初每个样本都被视为独立的一簇,在每一步迭代中,近邻的两个簇会被合并成一个新的较大簇,直到满足特定停止条件为止[^3]。 对于距离度量的选择至关重要,常见的有欧氏距离、曼哈顿距离等;而链接准则决定了如何计算新形成的簇其他现有簇之间的相似程度,常用的包括单链则、全链则以及平均则等[^2]。 #### 实现方式 利用 `scipy.cluster.hierarchy` 模块下的函数可以方便地完成层次聚类操作: 1. 使用 `linkage()` 函数执行层次聚类过程并返回Z矩阵; 2. 利用 `fcluster()` 函数基于给定阈值从Z矩阵提取终分类标签; 3. 借助 `dendrogram()` 绘制出代表整个分层关系的树状图以便于可视化分析。 以下是采用 Python 和 SciPy 库实现简单例子代码片段: ```python from scipy.cluster.hierarchy import linkage, fcluster, dendrogram import matplotlib.pyplot as plt # 计算样品间的距离,并进行层次聚类 Z = linkage(samples, 'ward') # 提取类别标签 labels = fcluster(Z, t=threshold_value, criterion='distance') # 可视化展示结果 plt.figure(figsize=(8, 6)) dendrogram(Z) plt.show() ``` 此外,还可以借助 scikit-learn 的 AgglomerativeClustering 类来简化上述流程,只需调整参数即可轻松切换不同的连接策略或设置预期的大簇数目[^4]。 #### 应用场景 层次聚类因其无需预设k值的特点而在许多领域得到广泛应用,特别是在探索性数据分析阶段尤为有用。具体来说,它适合处理那些难以事先估计合理簇数目的情况,比如基因表达谱研究、文档检索系统优化、社交网络社区发现等领域。另外,由于其产生的树状图能清晰展现各级别的群组构成状况,因此也被广泛应用于生物学进化树重建等方面。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值