CommencerCommencer gratuitement

Revoir les données de gros : « meilleur » k

À la fin du chapitre 2, vous avez exploré les données d’un grossiste, customers_spend, à l’aide du regroupement hiérarchique. Cette fois, vous allez analyser ces données avec les outils de k-means présentés dans ce chapitre.

La première étape consiste à déterminer la valeur « optimale » de k en utilisant la largeur moyenne de silhouette.

Petit rappel sur les données : elles contiennent les montants dépensés par 45 clients d’un grossiste dans les catégories Milk, Grocery et Frozen. Ces informations sont stockées dans la trame de données customers_spend. Pour cet exercice, vous pouvez partir du principe que, comme toutes les données sont du même type (montant dépensé), vous n’avez pas besoin de les mettre à l’échelle.

Cet exercice fait partie du cours

Analyse de clusters avec R

Afficher le cours

Instructions

  • Utilisez map_dbl() pour exécuter pam() sur les données customers_spend pour des valeurs de k allant de 2 à 10 et extrayez la largeur moyenne de silhouette de chaque modèle : model$silinfo$avg.width. Stockez le vecteur obtenu dans sil_width.
  • Construisez une nouvelle trame de données sil_df contenant les valeurs de k et le vecteur des largeurs moyennes de silhouette.
  • À partir des valeurs de sil_df, tracez un graphique en lignes montrant la relation entre k et la largeur moyenne de silhouette.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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)
Modifier et exécuter le code