簡體   English   中英

使用距離矩陣和分層聚類查找聚類數目

[英]Find number of clusters using distance matrix with hierarchical clustering

使用分層集群時,如何確定集群的最佳數量。 如果僅在測量成對距離(左手汀距離)時才有距離矩陣,如何找到最佳聚類數? 我提到了其他文章,它們都使用k均值,是分層的,但不適用於字符串類型的數據,如下所示。 關於如何使用R查找簇數的任何建議?

 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))

可以使用幾種統計數據。

例如,查看可以計算和繪制一系列此類統計信息的WeightedCluster軟件包。

為了說明這一點,您可以為每個可用統計信息獲得最佳的組數,如下所示:

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的Gamma,HG和Point雙向相關性)

plot(hcRange, stat = c("ASWw", "HG", "PBC"), lwd = 2)

在此處輸入圖片說明

更好的解決方案似乎是三組解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM