Zpět k datům velkoobchodu: „nejlepší" k
Na konci kapitoly 2 jsi prozkoumával/a data velkoobchodního distributora customers_spend pomocí hierarchického shlukování. Tentokrát tato data analyzuješ nástrojem k-means, který jsi se naučil/a v této kapitole.
Prvním krokem bude určit „nejlepší" hodnotu k pomocí průměrné šířky silhouette.
Krátké připomenutí: data obsahují záznamy o útratě 45 různých klientů velkoobchodního distributora v kategoriích Mléko, Potraviny a Mražené zboží. Jsou uložena v datovém rámci customers_spend. V tomto cvičení můžeš předpokládat, že data jsou všechna stejného typu (utracená částka), takže je není třeba škálovat.
Toto cvičení je součástí kurzu
Cluster Analysis v R
Pokyny k cvičení
- Pomocí
map_dbl()spusťpam()na datechcustomers_spendpro hodnoty k od 2 do 10 a z každého modelu vyextrahuj hodnotu průměrné šířky silhouette:model$silinfo$avg.width. Výsledný vektor ulož jakosil_width. - Vytvoř nový datový rámec
sil_dfobsahující hodnoty k a vektor průměrných šířek silhouette. - Pomocí hodnot z
sil_dfvykresli spojnicový graf zobrazující vztah mezi k a průměrnou šířkou silhouette.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Use map_dbl to run many models with varying value of k
sil_width <- map_dbl(2:10, function(k){
model <- pam(x = ___, k = ___)
model$silinfo$avg.width
})
# Generate a data frame containing both k and sil_width
sil_df <- data.frame(
k = ___,
sil_width = ___
)
# Plot the relationship between k and sil_width
ggplot(___, aes(x = ___, y = ___)) +
geom_line() +
scale_x_continuous(breaks = 2:10)