ComenzarEmpieza gratis

Gestionar algoritmos aleatorios

En el vídeo has visto que kmeans() inicializa aleatoriamente los centros de los clústeres. Esta inicialización aleatoria puede hacer que las observaciones se asignen a etiquetas de clúster distintas. Además, puede llevar a encontrar diferentes mínimos locales para el algoritmo k-means. En este ejercicio verás ambos efectos.

En la parte superior de cada gráfico se mostrará la medida de calidad del modelo —la suma de cuadrados dentro del clúster—. Busca el o los modelos con el error más bajo para identificar los que dan mejores resultados.

Como kmeans() asigna inicialmente las observaciones a clústeres aleatorios, es importante fijar la semilla del generador de números aleatorios para garantizar la reproducibilidad.

Este ejercicio forma parte del curso

Unsupervised Learning in R

Ver curso

Instrucciones del ejercicio

El conjunto de datos x sigue disponible en tu espacio de trabajo. Tu tarea es generar seis modelos kmeans() con estos datos y representar los resultados de cada uno, para ver el impacto de las inicializaciones aleatorias en los resultados del modelo.

  • Fija la semilla aleatoria a 1 con set.seed().
  • En cada iteración del bucle for, ejecuta kmeans() sobre x. Supón que el número de clústeres es 3 y el número de arranques (nstart) es 1.
  • Visualiza la pertenencia a clúster usando el argumento col de plot(). Observa cómo varían la medida de calidad y las asignaciones de clúster entre las seis ejecuciones del modelo.

Ejercicio interactivo práctico

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

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