You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于R语言实现Single Linkage Clustering:合并阶段矩阵更新问题

手动实现Single Linkage Clustering:距离矩阵更新详解

先明确Single Linkage的核心规则:两个簇之间的距离,等于这两个簇里任意一对点的最小距离。针对你给出的5×5距离矩阵,我一步步给你演示合并簇后的距离矩阵更新过程。

初始距离矩阵(整理成表格更清晰)

ABCDE
A01254
B10622
C26082
D52804
E42240

第一步:找到最小距离对并合并

扫描矩阵(排除对角线的0),最小距离是1,对应点A和B。将它们合并为新簇V。

第二步:计算其他点到簇V的距离

根据Single Linkage规则,其他点到V的距离,取该点到A、到B的距离中的最小值:

  • V到C:min(A-C=2, B-C=6) = 2
  • V到D:min(A-D=5, B-D=2) = 2
  • V到E:min(A-E=4, B-E=2) = 2

第三步:构建更新后的距离矩阵

需要移除原矩阵中A、B的行和列,新增簇V的行和列,得到4×4的新矩阵:

VCDE
V0222
C2082
D2804
E2240

后续迭代的通用规则

每次合并簇后,都按这个逻辑更新:

  1. 找到当前矩阵中最小的非对角线距离,合并对应的两个簇(可能是单点,也可能是已合并的簇)
  2. 计算所有剩余簇到新簇的距离:取两个原簇中所有点对的最小距离
  3. 移除被合并的两个簇的行和列,新增新簇的行和列,形成新的距离矩阵
  4. 重复上述步骤,直到矩阵只剩1×1(所有点合并为一个簇)

举个后续迭代的小例子:在上面的4×4矩阵里,最小距离是2,比如选C和E合并成簇W,计算W到V的距离是min(V-C=2, V-E=2)=2,W到D的距离是min(C-D=8, E-D=4)=4,新矩阵就变成3×3:

VWD
V022
W204
D240

这样一步步迭代下去,就能完成整个Single Linkage聚类过程。

内容的提问来源于stack exchange,提问作者Spiritual XOL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 22:45:30