Verilen kareler betweenss
toplamı ve her bir kümenin withinss
için karelerinin toplamının içinde vektörü arasındaki formüller şunlardır: tek bir küme olsaydı
totss = tot.withinss + betweenss
tot.withinss = sum(withinss)
Örneğin, daha sonra betweenss
0
olur, withinss
ve totss = tot.withinss = withinss
'da yalnızca bir bileşen olacaktır. Daha fazla açıklama için, bu çeşitli miktarları küme ödevleri verdiğimiz zaman hesaplayabiliriz ve bu, anlamlarını açıklığa kavuşturmaya yardımcı olabilir. x
numaralı veriyi ve cl$cluster
küme atamalarını help(kmeans)
numaralı örnekteki örnekten düşünün.
# or ss <- function(x) sum(apply(x, 2, function(x) x - mean(x))^2)
ss <- function(x) sum(scale(x, scale = FALSE)^2)
Sonra aşağıdaki vardır: Bu daha sonra geri kalan matrisin her bir elemanı karelerinin toplamı bu sütundan x her sütunun ortalama çıkarır ve - aşağıda kareler fonksiyonunun toplamı tanımlar.
cl$centers[cl$cluster, ]
'un takılı değerler olduğunu unutmayın, yani, her bir nokta için bir satırlı bir matris, buradaki satır, ith noktasının ait olduğu kümenin merkezidir.
example(kmeans) # create x and cl
betweenss <- ss(cl$centers[cl$cluster,]) # or ss(fitted(cl))
withinss <- sapply(split(as.data.frame(x), cl$cluster), ss)
tot.withinss <- sum(withinss) # or resid <- x - fitted(cl); ss(resid)
totss <- ss(x) # or tot.withinss + betweenss
cat("totss:", totss, "tot.withinss:", tot.withinss,
"betweenss:", betweenss, "\n")
# compare above to:
str(cl)
DÜZENLEME Bu soruya cevap yana
R eklemiştir ek benzer kmeans
örnekleri (example(kmeans)
) ve yeni bir fitted.kmeans
yöntemi ve artık monte yöntem açıklamalarda, yukarıda arka nasıl uyduğunu gösteren kod satırları.
Ahum. Böylece * tot.withinss *, küme varyasyonu içindeki toplam olmalı ve * totss *, toplam veri varyasyonu olmalıdır. Küme merkezlerinin toplamı + küme merkezlerinin toplamı. Sağ? – Marius
Daha fazla açıklama ekledim. –
Yani, eğer toplam kümelenme varyasyonunu bulmak istiyorsa, o zaman * tot.whitinss * budur. Teşekkür ederim. – Marius