对于分层聚类,如何找到" center"在R中的每个群集中

时间:2016-03-02 18:52:16

标签: r hierarchical-clustering centroid

我知道如何在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代码,有人可以帮助我吗?非常感谢你!

1 个答案:

答案 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