Subido por Mirna Liseth Taj Guaran

Clustering

Anuncio
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
Descargar