R 用于层次聚类的聚类质心
我使用R 用于层次聚类的聚类质心,r,hierarchical-clustering,R,Hierarchical Clustering,我使用hclust()对一些使用stringdist的文本数据执行了分层聚类。我得到了字符串之间的相异矩阵,并将其命名为distancemodels 现在,我尝试使用以下代码查找每个集群的中心: dists = as.data.frame(distancemodels) dists$ID = as.integer(rownames(dists)) # this adds the clusters information dists = merge(dists,clusters[,c(1,4)]
hclust()
对一些使用stringdist
的文本数据执行了分层聚类。我得到了字符串之间的相异矩阵,并将其命名为distancemodels
现在,我尝试使用以下代码查找每个集群的中心:
dists = as.data.frame(distancemodels)
dists$ID = as.integer(rownames(dists))
# this adds the clusters information
dists = merge(dists,clusters[,c(1,4)])
#k = number of clusters
meds = as.vector(1:k)
#This for loop is throwing the following error: Error in colMeans(dists[dists$cluster == i, as.character(dists$ID[dists$cluster == :'x' must be an array of at least two dimensions
for(i in 1:k){meds[i] = as.integer(names(colMeans(dists[dists$cluster == i,as.character(dists$ID[dists$cluster == i])])[unname(which(colMeans(dists[dists$cluster == i,as.character(dists$ID[dists$cluster == i])])==min(colMeans(dists[dists$cluster == i,as.character(dists$ID[dists$cluster == i])]))))]))[1]}
medians = as.data.frame(unlist(t(t(meds))))
medians$cluster = rownames(medians)
由于我在互联网上找不到任何关于如何为
hclust
查找群集质心的帮助,所以我写了这篇文章。请告诉我哪里出了问题。我对R.很陌生。你说的“中心”是什么意思?您可以使用cutree在树的高度或子树的数量上拆分树,但如果不作更多解释,就讨论层次聚类的集群显然没有什么意义。非常感谢您的回复。我有一排短句,需要根据相似性对它们进行聚类。但我还需要证明为什么我们将它们放在一个集群中。任何两句话之间都有距离,但没有共同的参照点。因此,我试图通过找到与同一簇中所有其他点的平均距离最小的点来计算中心点(句子)。看一看轮廓宽度之类的东西——另外,你可能想发布交叉验证,因为这已经开始变得非常统计了。