-
Contexto.
- Se aprende directamente de las similitudes o diferencias de los datos (Aprendizaje no supervisado).
- A diferencias de la clasificación no se cuenta con conjuntos de entrenamiento
(Aprendizaje supervizado).
- Se basa principalmente en funciones de similitud o distancia.
- Busca maximizar la similitud intraclase y minimizar la similitud interclase.
- Organiza las instancias de datos en grupos de similitud llamados
Clusters o Segmentos.
-
Areas de aplicación diversas...
- Sistemas de información geográfica.
- Medicina.
- Bioinformatica.
- Investigación de mercados.
-
Tratamiento de imagenes.
- Reconocimiento de rostros.
- Detección de bordes.
- En mineria web de contenido se usa para organizar documentos provenientes de la red.
- En el análisis de redes sociales puede ser usado para reconocer comunidades ocultas en grandes grupos de personas
- Agrupamiento en los resultados de búsquedas.
-
Conceptos Básicos.
- En clustering, una instancia de datos es vista como un punto en un espacio r-dimensional,
donde r es el número de atributos que tiene la instancia.
- Tres grupos naturales en un espacio de 2 dimensiones.
-
Casos de aplicación
-
Definir las dimensiones de las prendas de vestir en grupos de personas con tallas similares.
- Una talla para cada quien = demasiado costoso.
- Una talla para todos = clientes descontentos.
- En campañas de publicidad se segmenta al mercado objetivo para ofrecerles productos o servicios más acorde a sus necesidades y gustos.
- Las agencias de noticias deben organizar todos los artículos que les llegan de acuerdo a una jerarquia de temas.
- La calidad de los resultados del clustering dependen del algoritmo,
la función de distancia y de la aplicación.
-
Tipos de clustering
-
Por Partición.
- K-means
- Mapas auto-organizativos
-
Por Jerarquia.
- Divisivo
-
Aglomerativo
- Enlace sencillo
- Enlace completo
- Enlace promedio
- Centroides
-
Representación de clusters
-
Usar el centroide (centro geométrico) de cada cluster para representarlo.
- Calcular el radio y la desviación estandar para determinar su distribución en cada dimensión.
- Funciona bien si los clusters tienen forma hiper-esférica, si tienen otras formas, el centroide no es suficiente.
-
A través de un modelo de clasificación.
- Todas las instancias en un cluster son marcadas con una etiqueta. Ej: el número del cluster.
- Se corre un algoritmo de aprendizaje supervisado para generar un modelo.
- Conjunto de reglas a partir de la generación de 3 clusters.
-
Usar los valores más frecuentes para representar el cluster.
- Este método es principalmente usado en clustering de datos categóricos (e.g., k-modes clustering).
- Principal método usado en text clustering, donde un pequeño conjunto de palabras frecuentes son seleccionadas para representar el cluster.
-
K-means.
- K-means es un algoritmo de clustering por Partición.
- El algoritmo k-means divide los datos en k clusteres.
- Cada cluster tiene un centro llamado centroide que lo identifica.
- k es especificado por el usuario.
- El algoritmo
-
Criterios de parada o convergencia.
- Ninguana o minima reasignacion de data points a un diferente cluster.
- Ninguno o minimo cambio en los centroides.
- Reducción minima en la sumatoria del error cuadrado calculado en cada iteración.
-
Ejemplo
- Sea el conjunto de data points ...
- Selección aleatoria de k centroides (k=2).
- Asignación de cada data point a su centroid y cálculo de los nuevos centroides.
- Se repite el proceso de asiganción y re - cálculo.
- Ultima iteración, como los clusteres no cambian, el algoritmo se detiene.
- K-means puede ser aplicado a cualquier conjunto de datos donde el promedio tenga sentido y se pueda aplicar una función de distancia.
-
Debilidades del Algoritmo
- El algoritmo es solo aplicable si un promedio esta definido.
- Para datos categóricos, se plantea el uso de k-mode donde el centroide es representado por el valor más frecuente.
- El usuario necesita especificar el valor de k.
-
El algoritmo es sensible a outliers (datos anomalos o fuera de rango).
- Clusters mal definidos.
- Clusters ideales.
-
El algoritmo es sensible a la escogencia de los centroides iniciales (semillas).
- Una aleatoria selección de semillas puede generar clusters no naturales.
- Al escoger otras semillas (seeds) se generan clusters diferentes.
- El algoritmo no es apropiado para identificar clusters que no sean hiper-esferas.
-
Resumen
- A pesar de sus debilidades k-means es aún el algoritmo más popular de clustering debido a su simplicidad y eficiencia.
- No hay una clara evidencia que otros algoritmos desempeñen mejor eso depende de la aplicación.
- Comparar diferentes algoritmos de clustering es muy complicado, ya que no se tiene certeza si los clusters generados son los correctos.
-
Clustering Jerárquico.
- Produce una secuencia de clusters anidados en forma de árbol también llamado dendograma.
-
Tipos de clustering jerárquico.
-
Clustering Divisivo (top down)
- Comienza con todos los datos agrupados en la raiz del dendograma.
- Parte el nodo raiz en un conjunto de clusters hijos y luego recursivamente con cada nodo hijo.
- Se detiene cuando los nodos hijos poseen una solo instancia de datos (nodos hojas).
-
Clustering Aglomerativo (down top)
- Este contruye el dendograma desde el nivel inferior.
- Agrupa cada par de nodos según los más cercanos o similares.
- Se detiene cuando todos los nodos confluyen en un unico nodo raiz.
- El algoritmo.
- Un ejemplo de clustering aglomerativo en un espacio bidimensional.
-
Según el método usado para la determinar la distancia entre clusters se puede dividir en ...
- Por enlace sencillo.
- La distancia es determinada por los dos elementos más cercanos en cada cluster.
- Es susceptible a datos ruidosos generando encadenamientos.
- Por enlace completo.
- La distancia es determinada por los dos elementos más
alejados en cada cluster.
- Es susceptible a datos outlier.
- Por enlace promedio.
- La distancia entre dos clusters es la distancia promedio entre todos los elementos de cada cluster.
- Cubre parcialmente las falencias de los métodos anteriores.
- Por centroides.
- La distancia es determinada por la distancia entre los centroides de cada cluster.
- Tiende a ser un método más rápido que los anteriores.
-
Ventajas y desventajas.
- Este puede tomar cualquier forma de función de distancia o similitud.
- Permite al usuario exploara clusters a cualquier nivel de granularidad.
- Algunos estudios muestran que el clustering jerarguico aglomerativo arroja mejores resultados que k-means.
- Puede encontrar clusters de formas arbitrarias usando métodos de enlace sencillo.
- Como ya se vio pueden ser sensibles a efectos de cadena o susceptibles a outliers.
- Su mayor desventaja es su costo computacional y uso de recursos.
-
Ejemplos prácticos con Weka y R.
-
R y K-means
- En R existe la funcion kmeans
- Dado el conjunto iris (150 instancias, 4 atributos numéricos y una clase categórica).
- iris_csv <- read.csv('/data/Downloads/iris.csv')
- iris_petals <- iris_csv[,3:4]
- kr <- kmeans(iris_petals, 2)
- plot(iris_petals, col=kr$cluster, pch=64+kr$cluster)
- points(kr$centers, col=kr$centers, pch=8, cex=5)
- kr <- kmeans(iris_petals, 3, algorithm="Forgy")
-
R y clustering jerárquico
- En R existe la función hclust
- Usando el conjunto small_iris.csv
- smalliris <- read.csv('Projects/Datamining/small_iris.csv')
- hc <- hclust(dist(smalliris[,1:4]), method="average")
plot(hc, hang = -1)
- Probar con diferentes valores de method = {single, complete, centroid}.
-
Weka y SimpleKMeans
- Utilizando el mismo conjunto iris.csv
- Cargamos el conjunto de datos
- Aplicamos el filtro Normalize
- Eliminamos la clase
- Ejecutamos el Algoritmo SimpleKMeans en la etiqueta Cluster.
- Cambiar los parametros por defecto para evaluar k=3.
- Click derecho en la sección de Result List.
- Seleccionar Visualize cluster assignments
- Evaluar graficamente los clusters generados.