CommencerCommencer gratuitement

Gérer les algorithmes aléatoires

Dans la vidéo, vous avez vu que kmeans() initialise aléatoirement les centres des clusters. Cette initialisation aléatoire peut conduire à affecter des observations à des étiquettes de cluster différentes. Elle peut aussi amener l’algorithme k-means à trouver différents minima locaux. Cet exercice illustre ces deux effets.

En haut de chaque graphique, la mesure de qualité du modèle — la somme totale des carrés des distances intra-cluster — sera affichée. Repérez le ou les modèles avec l’erreur la plus faible pour identifier les meilleurs résultats.

Comme kmeans() affecte initialement les observations à des clusters aléatoires, il est important de fixer la graine du générateur aléatoire pour assurer la reproductibilité.

Cet exercice fait partie du cours

Apprentissage non supervisé en R

Afficher le cours

Instructions

Les données x sont toujours disponibles dans votre espace de travail. Votre objectif est de générer six modèles kmeans() sur ces données et de tracer les résultats de chacun, afin d’observer l’impact des initialisations aléatoires sur les résultats du modèle.

  • Fixez la graine aléatoire à 1 avec set.seed().
  • À chaque itération de la boucle for, exécutez kmeans() sur x. Supposons que le nombre de clusters soit 3 et que le nombre de départs (nstart) soit 1.
  • Visualisez l’appartenance aux clusters en utilisant l’argument col de plot(). Observez comment la mesure de qualité et les affectations de clusters varient entre les six exécutions du modèle.

Exercice interactif pratique

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

# Set up 2 x 3 plotting grid
par(mfrow = c(2, 3))

# Set seed
set.seed(___)

for(i in 1:6) {
  # Run kmeans() on x with three clusters and one start
  km.out <- kmeans(___, ___, ___)
  
  # Plot clusters
  plot(x, col = ___, 
       main = km.out$tot.withinss, 
       xlab = "", ylab = "")
}
Modifier et exécuter le code