首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用具有层次聚类的距离矩阵查找聚类的数量

使用具有层次聚类的距离矩阵查找聚类的数量
EN

Stack Overflow用户
提问于 2019-08-30 06:28:48
回答 1查看 458关注 0票数 2

如何在使用层次聚类时确定最佳聚类数量。如果我只有距离矩阵,因为我只测量成对距离(levenshtein distance ),我如何找到最佳聚类数?我提到了其他的帖子,他们都使用k-means,层次结构,但不是字符串类型的数据,如下所示。关于如何使用R来查找聚类的数量,有什么建议吗?

代码语言:javascript
复制
 set.seed(1)
 rstr <- function(n,k){   # vector of n random char(k) strings
 sapply(1:n,function(i) {do.call(paste0,as.list(sample(letters,k,replace=T)))})
 }

str<- c(paste0("aa",rstr(10,3)),paste0("bb",rstr(10,3)),paste0("cc",rstr(10,3)))
# Levenshtein Distance
 d  <- adist(str)
 rownames(d) <- str
hc <- hclust(as.dist(d))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-30 15:23:46

可以使用几个统计数据。

例如,看看WeightedCluster包,它可以计算和绘制一系列这样的统计数据。

为了进行说明,您可以获得每个可用统计数据的最佳组数,如下所示:

代码语言:javascript
复制
library("WeightedCluster")
hcRange <- as.clustrange(hc, diss=as.dist(d), ncluster=6) 
summary(hcRange)
##      1. N groups   1.  stat
## PBC            3  0.8799136
## HG             3  1.0000000
## HGSD           3  0.9987651
## ASW            3  0.4136550
## ASWw           3  0.4722895
## CH             3  8.3605263
## R2             6  0.4734561
## CHsq           3 20.6538462
## R2sq           6  0.6735039
## HC             3  0.0000000

您还可以绘制所有计算出的解的统计数据(这里我们显示了平均轮廓宽度、ASWw、Huber's Gamma、HG和点双序列相关性)

代码语言:javascript
复制
plot(hcRange, stat = c("ASWw", "HG", "PBC"), lwd = 2)

更好的解决方案似乎是三组解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57718419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档