我知道如何在K-means聚类中找到每个聚类中心。但对于层次聚类,我不知道如何在R中这样做。这是我的代码: 首先,我使用DTW Distance制作了距离矩阵,并将其输入R:
DTW<-read.csv(file.choose(), head=T, row.names=1)
DTWS2N <- as.dist(as(DTW, "matrix"))
然后,我进行了层次聚类(K = 10):
hc <- hclust(DTWS2N)
plot(hc)
groups <- cutree(hc, k=10)
rect.hclust(hc, k=10, border="red")
我还可以通过以下方式查看每个群集中的元素:
d = data.frame(Cluster_ID = cutree(hc,k=10))
现在,我想看看每个群集中的&#34;中心&#34;(与群集中其他人距离最小的那个),我找不到R代码,有人可以帮助我吗?非常感谢你!
答案 0 :(得分:0)
继续?hclust
的示例:
data(UScitiesD)
mds2 <- -cmdscale(UScitiesD)
hcity.D2 <- hclust(UScitiesD, "ward.D2")
您可以按群集计算距离,然后找到每个群集的平均距离最小的点。您可以将所有这些组成一个匿名函数:
lapply(by(mds2, cutree(hcity.D2, 4), dist),
function(x) which.min(colMeans(as.matrix(x))))
$`1`
Washington.DC
4
$`2`
Denver
1
$`3`
SanFrancisco
2
$`4`
Miami
1