我有一个相异矩阵,我想使用空缺指数来找到最佳的聚类数。经过一番艰辛之后,我决定阅读clusGap
code,看来它使用的是给定矩阵的欧几里得距离而不是什么(第37/38行)。
我想知道是否还有其他R函数可以计算间隙指数并让用户定义相异度矩阵。我找不到...
这是我所拥有的简化示例:
library(wordVectors)
mypam <- function(x, k) {
(1-cosineSimilarity(x,x)) %>% as.dist(.) %>%
pam(x = ., k = k)
}
x <- rbind(cbind(rnorm(10,0,0.5), rnorm(10,0,0.5)),
cbind(rnorm(15,5,0.5), rnorm(15,5,0.5)))
dx <- as.dist(1 - cosineSimilarity(x,x))
clusGap(as.matrix(dx), mypam, K.max = 2, B = 5)