Inizia subitoInizia gratis

Gestire gli algoritmi casuali

Nel video hai visto che kmeans() inizializza casualmente i centri dei cluster. Questa inizializzazione casuale può portare ad assegnare le osservazioni a etichette di cluster diverse. Inoltre, può portare a trovare minimi locali differenti per l’algoritmo k-means. In questo esercizio vedrai entrambe le situazioni.

In alto in ciascun grafico verrà visualizzata la misura della qualità del modello—la somma totale degli errori al quadrato entro i cluster. Cerca il o i modelli con l’errore più basso per individuare quelli con risultati migliori.

Poiché kmeans() inizializza le osservazioni in cluster casuali, è importante fissare il seed del generatore di numeri casuali per garantire la riproducibilità.

Questo esercizio fa parte del corso

Unsupervised Learning in R

Visualizza corso

Istruzioni dell'esercizio

Il dato x è ancora disponibile nel tuo workspace. Il tuo compito è generare sei modelli kmeans() sul dato e tracciarne i risultati, per osservare l’impatto delle inizializzazioni casuali sui risultati del modello.

  • Imposta il seed a 1 con set.seed().
  • A ogni iterazione del ciclo for, esegui kmeans() su x. Supponi che il numero di cluster sia 3 e il numero di avvii (nstart) sia 1.
  • Visualizza l’appartenenza ai cluster usando l’argomento col di plot(). Osserva come la misura di qualità e le assegnazioni ai cluster variano tra le sei esecuzioni del modello.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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 = "")
}
Modifica ed esegui il codice