Clustering Clase 8 Algoritmos de agrupamiento o Clustering Son algoritmos de agrupamiento de observaciones o ejemplos. Clustering es un método de aprendizaje no supervisado (unsupervised learning). - Las observaciones del mismo cluster deben ser lo más similares posible Las observaciones en distintos clusters deben ser lo más diferentes posible La medida de similaridad debe ser clara y expresable en términos prácticos. Source Clustering 1. 2. 3. 4. Feature extraction and Selection: extraer y seleccionar las características o features más representativos del dataset Diseño del algoritmo: diseñar el algoritmo de acuerdo a las características del problema de clasificación Evaluación de resultados: evaluar y juzgar la validez de los resultados Explicación de los resultados: dar una explicación práctica de los resultados Por qué Clustering? Clustering ayuda a identificar la estructura subyacente en la data. No hay un criterio para hacer un buen clustering, depende del criterio del analista. En algunas aplicaciones, el objetivo puede ser encontrar grupos, en otros puede ser describir las propiedades de los grupos, o encontrar outliers. Clustering es usado en múltiples industrias, desde clasificación de enfermedades hasta computer vision. Clustering también es usado como pre-requisito para aplicar otros algoritmos de machine learning. Source Medidas de Distancia K-medios se basa en la distancia euclidiana K-mediana se basa en la distancia Manhattan Otras medidas de distancia Types of Clustering ● Hierarchical clustering ● K‐means clustering ● Gaussian mixture model Hierarchical clustering Crea un árbol de clusters conocido como Dendograma. No requiere un número predefinido de clusters. Existen dos categorías: Bottom-up o Agglomerative approach (aglomerativo), y Top-down o Divisive approach (divisivo). Muy popular en biología computacional. Agglomerative (Bottom-up): 1. 2. 3. Inicio: cada ítem en un cluster Iterar: a. seleccionar los dos clusters más similares b. unirlos Terminar: cuando solo quede un cluster Source Source K-means (K-medios) Cada observación es colocada en un cluster. El analista debe especificar el número de clusters K Source Pasos 1. 2. 3. Seleccionar la media (k) aleatoriamente Encontrar las observaciones más cercanas de la media y agregarlo al cluster Repetir el paso 1 y 2 hasta que tengamos la misma media Ejemplo Considere el siguiente conjunto de datos unidimensionales, correspondientes a las edades de los visitantes a un sitio web. La tarea es clasificar a los visitantes en dos grupos distintos (k=2) dataset = { 12, 15, 17, 23, 24, 28, 33, 56, 61 } k=2 Escogemos dos puntos (k medias) en la data aleatoriamente: m1 = 17 m2 = 24 Encontramos la distancia entre cada punto y los dos puntos escogidos como medias [17,24] Asignamos el punto al cluster de la media más cercana. Distancia: Euclidean distance Distancia1 = |xi - m1| Distancia2 = |xi - m2| Calculamos: D1 = |12-17| D1 = 2 K1 = {12} D2 = |12-24| D2 = 12 K2 = {} D1 = |23-17| D1 = 6 K1 = {12, 15, 17} D2 = |23-24| D2 = 1 K2 = {23} D1 = |15-17| D1 = 2 K1 = {12, 15} D2 = |15-24| D2 = 9 K2 = {} K1 = {12, 15, 17} K2 = {23, 24, 28, 33, 56, 61} m1 = (12+15+17) 3 m2 = (23+24+28+33+56+61) 6 K1 = {12, 15, 17} K2 = {} m1 = 14.6 m2 = 37.5 Segunda iteración: m1 = 14.6 m2 = 37.5 D1 = |12-14.6| D1 = 2.6 K1 = {12} D2 = |12-37.5| D2 = 25.5 K2 = {} D1 = |17-14.6| D1 = 2.4 K1 = {12,15,17} D2 = |17-25.5| D2 = 8.5 K2 = {} D1 = |15-14.6| D1 = 0.4 K1 = {12,15} D2 = |15-25.5| D2 = 10.5 K2 = {} K1 = {12, 15, 17} K2 = {23, 24, 28, 33, 56, 61} m1 = (12+15+17) 3 m2 = (23+24+28+33+56+61) 6 m1 = 14.6 m2 = 37.5 La media no cambia, FIN. Número de clusters? Inercia: suma de las distancias de todos los puntos en un cluster hacia el centroide del cluster (distancia intracluster). Inercia total es la suma de las distancias intraclusters. Debe ser lo más pequeña posible (clusters más compactos) Dunn Index: qué tan diferentes son los clusters entre sí. Debe ser lo más largo posible. Source Soft o Fuzzy Clustering Una observación puede pertenecer a más de un cluster y esta incertidumbre en la asignación del cluster es representada como probabilidades. Por ejemplo: Gaussian mixture model Source Source Recursos https://iartificial.net/clustering-agrupamiento-kmeans-ejemplos-en-python/ https://towardsdatascience.com/machine-learning-algorithms-part-9-k-means-example-in-python-f2ad05e d5203 https://mubaris.com/posts/kmeans-clustering/ http://www.learnbymarketing.com/tutorials/k-means-clustering-by-hand-excel/ http://www.cs.cmu.edu/~sssykim/teaching/f13/slides/clustering.pdf https://www.saedsayad.com/clustering_kmeans.htm https://medium.com/@joel_34096/k-means-clustering-for-image-classification-a648f28bdc47 https://www.thepythoncode.com/article/kmeans-for-image-segmentation-opencv-python Aplicaciones de Clustering ● ● ● ● ● ● Identificación de células cancerígenas Image segmentation Identificar anomalías Identificar zonas de alto riesgo de desastres naturales Motores de búsqueda Wireless network compression Tarea https://docs.google.com/document/d/1fxl1nSVPPCy7NPyq_QayZu-iBV7LaE5Kdw QQ-p5blrc/edit?usp=sharing Leer sobre SVM