ComenzarEmpieza gratis

Revisita de los datos de mayorista: k "óptimo"

Al final del Capítulo 2 exploraste los datos de un distribuidor mayorista customers_spend usando clustering jerárquico. Esta vez analizarás esos datos con las herramientas de k-means vistas en este capítulo.

El primer paso será determinar el valor "óptimo" de k usando la anchura media del contorno (silhouette).

Recordatorio sobre los datos: contienen registros del gasto de 45 clientes de un distribuidor mayorista en las categorías de alimentación Milk, Grocery y Frozen. Esto está almacenado en el data frame customers_spend. Para este ejercicio puedes asumir que, como todos los datos son del mismo tipo (cantidad gastada), no necesitarás escalarlos.

Este ejercicio forma parte del curso

Análisis de clústeres en R

Ver curso

Instrucciones del ejercicio

  • Usa map_dbl() para ejecutar pam() con los datos de customers_spend para valores de k de 2 a 10 y extrae la anchura media del contorno (silhouette) de cada modelo: model$silinfo$avg.width. Guarda el vector resultante como sil_width.
  • Crea un nuevo data frame sil_df que contenga los valores de k y el vector de anchuras medias del contorno.
  • Usa los valores de sil_df para trazar un gráfico de líneas que muestre la relación entre k y la anchura media del contorno.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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)
Editar y ejecutar código