簡體   English   中英

使用來自 R 中的層次聚類的 clusters.stats function

[英]Use clusters.stats function from a hierarchical clustering in R

我想從你那里得到很大的幫助。 我使用 cluster.stats function (它是fpc package 的一部分)使用各種驗證標准比較兩個 custer 解決方案的相似性,正如您在代碼中看到的那樣。 但是,我有兩個問題:

1° 是否有可能知道哪個是最可行的集群,2 個集群或 5 個集群? 如果是這樣,您能否更好地解釋我如何知道。

2º 這個 package 是否只比較兩個集群解決方案中的兩個,或者是否可以同時比較兩個集群解決方案?

太感謝了!

此致。

library(rdist)
library(geosphere)
library(fpc)


df<-structure(list(Industries = c(1,2,3,4,5,6), 
                   Latitude = c(-23.8, -23.8, -23.9, -23.7, -23.7,-23.7), 
                   Longitude = c(-49.5, -49.6, -49.7, -49.8, -49.6,-49.9), 
                   Waste = c(526, 350, 526, 469, 534, 346)), class = "data.frame", row.names = c(NA, -6L))

df1<-df

#clusters
coordinates<-df[c("Latitude","Longitude")]
d<-as.dist(distm(coordinates[,2:1]))
fit.average<-hclust(d,method="average") 

clusters<-cutree(fit.average, k=2) 
df$cluster <- clusters 

clusters1<-cutree(fit.average, k=5) 
df1$cluster <- clusters1

cluster.stats(d,df$cluster,df1$cluster)

> cluster.stats(d,df$cluster,df1$cluster)

$n
[1] 6

$cluster.number
[1] 2

$cluster.size
[1] 4 2

$min.cluster.size
[1] 2

$noisen
[1] 0

$diameter
[1] 24382.84 10198.63

$average.distance
[1] 16490.01 10198.63

$median.distance
[1] 15050.60 10198.63

$separation
[1] 20397.25 20397.25

$average.toother
[1] 29499.05 29499.05

$separation.matrix
         [,1]     [,2]
[1,]     0.00 20397.25
[2,] 20397.25     0.00

$ave.between.matrix
         [,1]     [,2]
[1,]     0.00 29499.05
[2,] 29499.05     0.00

$average.between
[1] 29499.05

$average.within
[1] 14392.88

$n.between
[1] 8

$n.within
[1] 7

$max.diameter
[1] 24382.84

$min.separation
[1] 20397.25

$within.cluster.ss
[1] 504967651

$clus.avg.silwidths
        1         2 
0.4268101 0.6465108 

$avg.silwidth
[1] 0.5000437

$g2
NULL

$g3
NULL

$pearsongamma
[1] 0.7547454

$dunn
[1] 0.8365412

$dunn2
[1] 1.788904

$entropy
[1] 0.6365142

$wb.ratio
[1] 0.4879101

$ch
[1] 8.157505

$cwidegap
[1] 15048.01 10198.63

$widestgap
[1] 15048.01

$sindex
[1] 20397.25

$corrected.rand
[1] 0.1509434

$vi
[1] 0.9241962

回答你的問題;

  1. 此 output 沒有提供足夠的信息來確定最佳集群數。 這在很大程度上取決於您的應用程序,它是最小錯誤與集群數量之間的平衡。 (即許多集群 - 低錯誤,反之亦然)。 繪制 inside.cluster.ss 與集群的數量可以提供一些指導。
  2. 此 package 僅在 2 個集群之間執行計算,然后僅計算“corrected.rand”和“vi”值。 您需要查看函數幫助頁面中的參考資料以獲取更多詳細信息。

我建議將其發布在 Cross Validate web 站點上,因為這更多是統計問題,而不是編程問題。

暫無
暫無

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

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