Resumen
En este episodio (102) se repasan métodos de clustering con foco en la intuición de cada algoritmo. Se parte de qué es clusterizar y su utilidad práctica (por ejemplo segmentar clientes para marketing personalizado), y se describen cuatro familias: basada en centroides, en densidad, en distribución y jerárquica. Luego se explica por qué importa la métrica de distancia (euclidiana, Manhattan, norma 1 e infinito) y cómo preparar los datos con estandarización, transformación logarítmica y cuantiles. Después se muestra en pizarra el funcionamiento paso a paso de k-means, DBSCAN y clustering jerárquico (dendograma y funciones de linkage), y se menciona HDBSCAN como mezcla de ambos. Las conclusiones: k-means es muy rápido pero impone cortes lineales y asigna todos los puntos a un grupo; DBSCAN no requiere fijar K, encuentra formas variadas y detecta outliers; el jerárquico es lento (orden n²) pero flexible. Se recomienda probar primero los algoritmos clásicos para ver si hay "señal" y, si no la hay, revisar los datos antes de sofisticar el algoritmo.
Capítulos
- 00:00IntroSe presenta el plan del episodio: repasar el curso gratuito de clustering de Google, explicar en pizarra k-means y DBSCAN, y luego clustering jerárquico, HDBSCAN y precauciones como la regla del codo. Los participantes cuentan que usan clustering con frecuencia en análisis exploratorio; el anfitrión suele usar k-means y DBSCAN, y uno menciona un enfoque basado en dendogramas para descartar variables.
- 03:00Qué es y por qué es útil la clusterizaciónClustering agrupa elementos sin etiquetas previas. Ejemplo de supermercado y retail: agrupar clientes por comportamiento de compra (vegano, carnívoro, alcohol, descuentos, frecuencia, monto) para estrategias de marketing personalizadas; a veces cuesta ponerle nombre a un clúster.
- 06:22Tipos de clusterizaciónSe anuncian cuatro categorías de algoritmos.
- 06:30Clústering basado en centroidesHay que definir cuántos grupos se quieren; cada grupo tiene un representante (centroide o un elemento real, porque el promedio puede no existir en los datos). Todos los puntos quedan asignados a un clúster.
- 07:40Clústerización basada en densidadNo se necesita indicar el número de clústers; se agrupan los puntos cercanos y los muy alejados quedan como outliers o ruido.
- 08:32Clusterización basada en distribuciónRequiere conocer o intuir la distribución subyacente (por ejemplo gaussiana, con elipses y varianzas distintas por eje). Se comenta que con muchas dimensiones es más difícil, que los datos son tablas de n filas por m columnas, y que se puede reducir dimensionalidad para graficar.
- 15:58Clusterización jerárquicaSe presenta el dendograma como árbol (no necesariamente binario), con el ejemplo del reino animal; se puede subdividir mucho y decidir después dónde cortar según una métrica. Se comenta que los ejemplos reales rara vez son tan evidentes.
- 18:38¿Qué es una distancia?Para decidir qué está cerca o lejos hay que definir una distancia; los puntos se representan como vectores de n componentes (n features, p. ej. 30 o 50 en un caso real de clientes).
- 20:44Distancia euclidianaSe define como la raíz de la suma de las diferencias al cuadrado componente a componente; es el teorema de Pitágoras generalizado a n dimensiones. Elevar al cuadrado garantiza positividad y castiga más los errores grandes; se discute por qué no elevar al cubo y la importancia conceptual de la noción de distancia.
- 27:27Distancia de ManhattanÚtil cuando hay restricciones, como moverse por cuadras en una ciudad: se suman las distancias por cada eje en lugar de ir en línea recta.
- 30:50Consecuencia geométrica de usar distintas distanciasEn 2D los puntos equidistantes forman un círculo con la norma 2, un rombo con la norma 1 y (según creen) un cuadrado con la norma infinito. Esa forma se hereda al clustering; en general se recomienda la euclidiana salvo que el problema pida otra.
- 32:55Preparación de los datos y escalamientosSin escalar, la cercanía entre puntos puede cambiar de forma engañosa; se hace un escalamiento para que la comparación sea "justa". Se aclara que ese concepto de justicia es una decisión de modelamiento.
- 34:00Normalización con z-scoreSe resta la media y se divide por la desviación estándar para llevar las variables a una misma escala; ejemplo de altura (100–250 cm) versus precio de un auto (miles de dólares). Se puede reescalar después para dar más peso a una variable.
- 38:02Transformación logarítmicaSirve para distribuciones con cola larga (como las alturas), estirando los valores pequeños y comprimiendo los grandes hasta acercarlas a una normal; no se pierde información, solo se transforma. Se menciona la transformación de Box-Cox (con parámetro lambda, que se reduce al logaritmo cuando lambda es 0).
- 46:21QuantilesAlternativa genérica cuando no hay una distribución clara: dividir los datos en cuantiles (bins con igual cantidad de datos, no necesariamente 100) y comparar por grupo.
- 48:24MemesMemes sobre los requisitos de ofertas laborales (experiencia pedida a perfiles junior), sobre los blobs de clustering y sobre si k-means es realmente Machine Learning (se concluye que es un algoritmo iterativo simple, en el borde).
- 51:30Algunos servicios de AWS se darán de bajaSe comenta que AWS descontinuará un servicio de repositorios de código (CodeCommit), con tutoriales de migración; se menciona que AWS es caro y la opinión sobre "serverless".
- 53:52Mensajes de la semana en discordSe invita a quienes quieran colaborar en el proyecto mostrado la semana anterior a escribir por interno, y se explica la opción "word wrap" de los editores (VS Code/Positron) para activarla por defecto.
- 55:47Intuición de k-meansSe elige K, se ubican centroides al azar, cada punto se asigna al más cercano, se recalculan los centroides como promedio y se repite hasta que no se mueven. Equivale a dividir el plano con líneas; es muy rápido de entrenar y clasificar, pero obliga a que todos los puntos pertenezcan a algún grupo y no detecta ruido. Se comentan PCA (asume linealidad), t-SNE y UMAP para visualizar en 2D, y que k-means rara vez da buenos resultados en datos reales.
- 01:05:00Intuición de DBSCANCon un ejemplo tipo Pac-Man, k-means falla porque corta linealmente. DBSCAN usa dos parámetros, el radio y el mínimo de vecinos, para clasificar puntos densos, de borde (vecindad) y outliers, y va pintando clústers en cadena. No requiere fijar la cantidad de clústers y encuentra formas arbitrarias; a quien lo usó en un caso real le funcionó mejor que k-means.
- 01:15:54Intuición de clusterización jerárquicaSe unen puntos de menor a mayor distancia; se explica la función de linkage (distancia al punto más cercano, al más lejano o al centroide del clúster). El resultado es un dendograma que se corta por una altura de distancia o escogiendo los grupos que persisten más. Es lento: orden n² (n³ en algunas implementaciones) frente al orden lineal de k-means.
- 01:24:26Intuición de HDBSCANMezcla del jerárquico y DBSCAN: encuentra clústers por densidad, detecta outliers y permite elegir el nivel de agrupamiento, combinando las ventajas de ambos.
- 01:25:39Comparación de rapidez de algoritmosSe muestra un gráfico de tiempos: hay una implementación muy rápida de HDBSCAN (presentada en una charla de PyData de hace 5 años) que supera a Fast cluster y a DBSCAN; k-means de scikit-learn y SciPy son los más rápidos, con orden lineal, y algunos otros rondarían n log n.
- 01:28:57CierreSe enviarán las referencias por Discord y YouTube. Reflexión final: conviene dominar los algoritmos clásicos para detectar si hay señal; si no la hay, hay que revisar y transformar los datos en vez de sofisticar el algoritmo. También se habla de usar ChatGPT y Copilot como herramientas: sirven, pero hay que entender lo que se hace, desconfiar de las respuestas y cuidar el hábito de esperar sugerencias.