ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește map_dbl() pentru a rula pam() pe datele customers_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 ca sil_width.
  • Construiește un nou data frame sil_df care să conțină valorile lui k și vectorul lățimilor medii ale siluetei.
  • Folosește valorile din sil_df pentru 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)
Editează și rulează codul