Revenind la datele wholesale: k-ul „optim"
La sfârșitul Capitolului 2 ai explorat datele distribuitorului wholesale customers_spend folosind clustering ierarhic. De data aceasta vei analiza aceste date cu instrumentele de clustering k-means prezentate în acest capitol.
Primul pas va fi să determini valoarea „optimă" a lui k folosind lățimea medie a siluetei.
Câteva detalii despre date: setul conține înregistrări cu sumele cheltuite de 45 de clienți diferiți ai unui distribuitor wholesale pentru categoriile alimentare Lapte, Băcănie și Congelate. Acestea sunt stocate în data frame-ul customers_spend. Pentru acest exercițiu poți presupune că, deoarece toate datele sunt de același tip (sume cheltuite), nu va fi necesară scalarea lor.
Acest exercițiu face parte din cursul
Analiza clusterelor în R
Instrucțiuni pentru exercițiu
- Folosește
map_dbl()pentru a rulapam()pe datelecustomers_spend, pentru valori ale lui k cuprinse între 2 și 10, și extrage valoarea lățimii medii a siluetei din fiecare model:model$silinfo$avg.width. Stochează vectorul rezultat casil_width. - Construiește un nou data frame
sil_dfcare să conțină valorile lui k și vectorul lățimilor medii ale siluetei. - Folosește valorile din
sil_dfpentru a reprezenta grafic relația dintre k și lățimea medie a siluetei sub forma unui grafic liniar.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)