Я хотел бы спросить, как автоматизировать несколько кластеров K-средних для одного и того же набора данных - я хочу создать несколько кластеров kmean, когда число кластеров будет меняться, а затем отобразить результат, используя facet_wrap
Так что один могу подсказать, какое количество кластеров кажется наиболее подходящим.
Я могу сделать это, если код очень от руки - можно ли его как-то автоматизировать:
library(tidyverse)
Y <- mtcars %>% select(hp, disp)
kme1 <- kmeans(Y, 3)
kme2 <- kmeans(Y, 4)
kme3 <- kmeans(Y, 5)
kme4 <- kmeans(Y, 6)
A <- broom::augment(kme1, Y) %>%
mutate(num_clust = 3)
B <- broom::augment(kme2, Y) %>%
mutate(num_clust = 4)
C <- broom::augment(kme3, Y) %>%
mutate(num_clust = 5)
D <- broom::augment(kme4, Y) %>%
mutate(num_clust = 6)
rbind(A, B, C, D) %>%
ggplot(aes(hp, disp)) +
geom_point(aes(color = .cluster)) +
stat_ellipse(aes(x=hp,y=disp,fill=factor(.cluster)),
geom="polygon", level=0.95, alpha=0.2) +
facet_wrap(~num_clust)