Biorąc pod uwagę między sumą kwadratów betweenss
i wektora ciągu sumy kwadratów dla każdego klastra withinss
wzory są takie:
totss = tot.withinss + betweenss
tot.withinss = sum(withinss)
Na przykład, jeśli były tylko jeden klaster następnie betweenss
byłoby 0
, byłby tylko jeden składnik w withinss
i totss = tot.withinss = withinss
.
W celu uzyskania dalszych wyjaśnień, możemy sami obliczyć te różne ilości, biorąc pod uwagę przypisania do klastrów i które mogą pomóc w wyjaśnieniu ich znaczeń. Rozważmy dane x
i przypisania klastra cl$cluster
z przykładu w help(kmeans)
. Zdefiniowania funkcji sumy kwadratów w następujący sposób - jest odejmuje średnią każdej kolumny x od tej kolumny, a następnie sumy kwadratów każdej elementu pozostałej matrycy:
# or ss <- function(x) sum(apply(x, 2, function(x) x - mean(x))^2)
ss <- function(x) sum(scale(x, scale = FALSE)^2)
Następnie mają następujące. Zauważ, że cl$centers[cl$cluster, ]
są dopasowanymi wartościami, tj. Są macierzami z jednym rzędem na punkt tak, że i-ty wiersz jest środkiem gromady, do której należy ten punkt.
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)
EDIT:
Ponieważ kwestia ta została wysłuchana, R dodała dodatkowe podobnych kmeans
przykłady (example(kmeans)
) i nowa metoda fitted.kmeans
i możemy teraz pokazać w jaki sposób zamontowany pasuje do powyższego w komentarzach spływu linie kodu.
Ahum. Zatem wartość * tot.withinss * powinna być sumą w obrębie zmienności klastra, a * totss * powinna być całkowitą zmiennością danych. ogółem w obrębie zmienności klastra + ss centrów klastra. Dobrze? – Marius
Dodałem trochę dalszych wyjaśnień. –
Tak więc, jeśli chcemy poznać sumę w wariancie klastra, to * tot.whitinss * jest tą. Dziękuję Ci. – Marius