Clase 10: Clustering: K-means y clustering jerárquico

Eje III: Aprendizaje no supervisado

Objetivo

Segunda clase de aprendizaje no supervisado. La clase pasada, PCA resumió muchas columnas en pocas componentes; hoy miramos la tabla para el otro lado y buscamos grupos de filas: personas que se parecen entre sí, sin que nadie nos diga de antemano cuáles son.

Se ven los dos métodos clásicos, K-means y el clustering jerárquico, y las dos decisiones que ninguno toma por nosotros: cuántos grupos y dónde cortar. PCA vuelve como la ventana para mirar los grupos en dos dimensiones.

Contenidos

  • PCA resume columnas, clustering agrupa filas. Agrupar por juicio experto o por datos, y un caso real: los cuatro tipos de personalidad de Gerlach y colegas (2018).
  • K-means: K como un número que se elige antes, la variación dentro de los grupos (W), el centroide y la receta del algoritmo (tirar, asignar, mover, repetir).
  • Mínimo local y mínimo global: por qué se corre muchas veces y se queda la de menor W.
  • Cuántos grupos: el método del codo. Ponerles nombre a los grupos y chequearlos con algo que no entró al clustering, como la renuncia.
  • Clustering jerárquico: el dendrograma, cómo se lee (por la altura, no por el costado), el linkage y dónde cortar el árbol. Cuándo conviene K-means y cuándo el jerárquico.
  • Lo que quedó de la clase pasada: escalar antes de agrupar, el data leakage y el Pipeline, y el grupo como variable para predecir.
  • Ajuste de hiperparámetros: grid search y validación cruzada anidada.
NotaUna tabla nueva de Nimbus: cómo trabaja cada empleado

nimbus_patrones.csv trae, para los mismos 600 empleados, nueve medidas de cómo trabajan: seis salen de las herramientas de trabajo (horas, horas fuera de horario, minutos de reunión, mensajes, contactos y capacitación) y tres de una encuesta (compromiso, agotamiento y si recomendarían la empresa). Nimbus es simulada: los grupos que aparecen están puestos a propósito, y eso permite chequear que los métodos los encuentran.

Notebooks

La notebook se concentra en los dos métodos. Mira los datos en el plano de PCA, corre K-means, prueba qué pasa con distintos K y elige K con el codo. Después arma el dendrograma, mueve la línea de corte y compara los grupos del árbol con los de K-means. Tiene tres consignas.

Lenguaje Leer en el sitio Ejecutar en Colab Descargar
Python Notebook renderizada Open in Colab .ipynb

La versión en R de esta clase no está publicada.

Los datos

El archivo se lee por URL desde la notebook, sin bajar nada.

Archivo Contenido URL
nimbus_patrones.csv las nueve medidas de cómo trabaja cada empleado /data/toy-nimbus/nimbus_patrones.csv

Slides

Diapositivas de la clase

Lo que viene

La Clase 11 empieza con texto: análisis de sentimiento, bolsa de palabras y embeddings.

Lecturas

Obligatoria:

  • James, G., Witten, D., Hastie, T., Tibshirani, R. & Taylor, J. (2023). An Introduction to Statistical Learning with Applications in Python (ISLP), capítulo 12, sección 12.4 (clustering). PDF gratuito oficial en https://www.statlearning.com/.

Recursos de consulta:

  • Gerlach, M., Farb, B., Revelle, W. & Nunes Amaral, L. A. (2018). A robust data-driven approach identifies four personality types across four large data sets. Nature Human Behaviour, 2, 735-742. https://doi.org/10.1038/s41562-018-0419-z. El ejemplo de las slides.
  • La documentación de scikit-learn sobre clustering y la de scipy.cluster.hierarchy, de donde salen linkage, dendrogram y fcluster.