“病房”聚类(在 R 的 hclust 函数中)如何工作?

机器算法验证 r 聚类 病房
2022-04-09 20:49:43

一个简单的例子:

plot(hclust(dist(c(1:3)),method = "ward"))

我想知道哪些计算(在 R 中)可以将 3 与 {1,2} 的距离重现为 1.67

在此处输入图像描述

谢谢。

2个回答

两个集群之间的距离是使用 Lance-Williams 更新公式计算的,请参阅 Wikipedia entry它认为:

2/3abs(23)+2/3abs(13)1/31=1.666667

实际上(用文字来说)是从极值到总体平均值的绝对距离,加上从两个中等值的平均值到总体平均值的绝对距离的两倍,减去从其中一个值的绝对距离的三分之一中值到两个中值的平均值,减去从另一个中值到两个中值的平均值的绝对距离的三分之一。

试试这个

plot(hclust(dist(c(0,18,126)),method = "ward"))

和从 126 到 48 的绝对距离,加上从 9 到 48 的绝对距离的两倍,减去从 18 到 9 的绝对距离的三分之一,减去从 0 到 9 的绝对距离的三分之一,得到78+2×399/39/3=150