1 / 82

ESMA 6835 Mineria de Datos

ESMA 6835 Mineria de Datos. CLASE 15: Unsupervised classification, Clustering Dr. Edgar Acuna Departmento de Matematicas Universidad de Puerto Rico- Mayaguez math.uprrm.edu/~edgar. Introduccion.

corinthia
Télécharger la présentation

ESMA 6835 Mineria de Datos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ESMA 6835 Mineria de Datos CLASE 15: Unsupervised classification, Clustering Dr. Edgar Acuna Departmento de Matematicas Universidad de Puerto Rico- Mayaguezmath.uprrm.edu/~edgar

  2. Introduccion • La idea de analisis de conglomerados (“clustering” ) es agrupar muestras (filas) o features (columnas) o ambos a la vez, de acuerdo a la separación entre ellas determinada por una medida de distancia dada, llamada medida de dissimilaridad. Se supone que las clases a las que pertenecen las muestras no son conocidas. • También es conocido con el nombre clasificacion no supervisado.

  3. Cluster 4

  4. Para cada muestra (fila) existe un vector de mediciones X=(X1,…XG). • El objetivo es identificar grupos de muestras similares basado en n mediciones observadas X1=x1,…., Xn=xn. • Por ejemplo si las X’s representan niveles de expression obtenidos en microarreglos de tumores cancerosos uno podria identificar las caracteristicas de las personas que tienen distintos tipos de tumores.

  5. Cuando el numero de columnas es bastantes grande se pueden formar tambien grupos de columnas con similar comportamiento y en consecuencia se puede reducir la dimensionalidad que es muy conveniente si se quiere usar luego un modelo para hacer predicciones. Pues es mucho mas conveniente predecir con 10 features que con 100. • También se puede aplicar conglomerados simultaneamente a filas y columnas (Bi-clustering) (ver paper de Alon, et al, 1999, Getz et al , 2000 y Lazaeronni y Owen, 2000)

  6. Aspectos importantes en el analisis de conflomerados i) Que features usar? , ii) Que medida de dissimilaridad usar?. iii) Qué método o algoritmo de conglomerado usar?. iv) Cuantos conglomerados se deben formar? v) Cómo asignar las filas (o columnas) a los conglomerados? vi) Cómo validar los conglomerados que se han formado?

  7. Propiedades de medidas de dissimilaridad • No-negatividad: d(x,y) ≥ 0 • La distancia de una instancia asi mismo es 0, d(x,x) = 0 • Simetria: d(x,y) = d(y,x) • Desigualdad Triangular: d(x,y) ≤ d(x,z) + d(z,y) x y z

  8. Medidas de Dissimilaridad(variables continuas) a) Distancia Minkowski o norma Lp. Caso particulares: • Distancia Euclideana: p=2, • Distancia Manhattan o City-Block: • Distancia Chebychev, p=, • La distancia ponderada Minkoswki, será:

  9. Medidas de Dissimilaridad (Cont) b) Distancias basadas en formas cuadráticas. Q=(Qij) es una matriz cuadrada MxM definida positiva de pesos entonces la distancia cuadrática entre x y y está dada por: Si Q=V-1, V matríz de covarianza entre x y y se obtiene la distancia Mahalanobis. c) Distancia Camberra. Si xi y yi son ambos ceros entonces el i-ésimo término de la suma se considera como cero.

  10. Medidas de dissimilaridad (variables nominales) Distancia Hamming. Sean x y y dos vectores de la misma dimension y con valores en ={0,1,2,……..k-1}, entonces la distancia Hamming (DH) entre ellos se define como el número de entradas diferentes que tienen los dos vectores. Por ejemplo si x=(1,1,0,0) y y=(0,1,0,1) entonces DH=2. • Tambien se pueden usar para variables no binarias.Por ejemplo, si x=(0,1,3,2,1,0,1) y y=(1,1,2,2,3,0,2) entonces DH(x,y)=4 . • En el caso de variables binarias , la distancia Hamming, la distancia L2 y la distancia L1 coinciden.

  11. Medidas de similaridad (Variables continuas)) a) Medida de correlación: Nota: 1-s(x,y) puede ser considerado como una medida de dissimilaridad b) Medida de Tanimoto.Se define por Tambien puede ser usada para variables nominales

  12. Medidas de similaridad (variables nominales) i)La medida de Tanimoto. Sean X y Y dos vectors de longitud nx y ny respectivamente. Sea que representa la cardinalidad de , entonces la medida de Tanimoto se define por Es decir, la medida de Tanimono es la razón del número de elementos que los vectores tienen en común entre el número de elementos distintos. En el caso de variables binarias, la medida de Tanimoto se reduce a Donde a representa el número de posiciones donde los vectores X y Y coinciden en tomar el valor 0, d representa el número de coincidencias donde X y Y valen ambos 1. Mientras que c y b representan el número de no coincidencias.

  13. ii) El coeficientes de coincidencias simple. Definido por El problema de esta medida es que incluye a a en el numerador, la cual indica ausencia de ambos factores. iii) La medida de Jaccard-Tanimoto. Definida por iv) La medida de Russel -Rao. v) La medida de Dice-Czekanowski. Similar a la de Jaccard pero asigna peso doble a las coincidencias. Es decir

  14. Librerias y funciones en R para hallar distancias La libreria stats de R tiene una funcion dist que calcula la matríz distancia de una matríz de datos usando las distancias Euclideana, Manhattan, Chebychev, Camberra, Mimkowski y binary.. Librería(stats) x =matrix(rnorm(100), nrow=5) dist(x) dist(x, method=”manhattan”,diag = TRUE) dist(x, method=”maximum”,upper = TRUE) # Ejemplo de distancia Camberra entre dos vectores x <- c(0, 0, 1, 1, 1, 1) y <- c(1, 0, 1, 1, 0, 1) dist(rbind(x,y), method="canberra")

  15. La libreria cluster de R tieneuna función daisy que calcula la matriz distancia de una matriz de datos usando solamente las distancias euclideana y manhattan y considerando ademas distintos tipos de variables mediante el uso del coeficiente de Gower . La función cor de R calcula la matríz de correlaciones entre las columnas de una matríz y la función plot.cor de la librería sma permite hacer un “heatmap” de las correlaciones.

  16. Plot de la matríz de corrrelaciones (sonar) • Sonar, tiene 60 columnas y 208 filas. • La parteroja de la grafica indica que la correlación es bien alta y positiva, la parte verde indica que es bien alta pero negativa y la parte negra indica que la correlación es cerca de cero.

  17. Distancias entre clusters Despues de elegir la medida de similaridad se transforma la matriz n x p en una matriz distancia o de dissimilaridad D = (dij) de orden n x n para las n muestras a ser agrupadas. Basado en esta matriz se debe determinar una medida de distancia entre dos conglomerados (clusters) cualesquiera. Entre estas medidas están: Linkage simple:(S,T)=min{xS,yT}d(x,y) Linkage completo:(S,T)=max{xS,yT}d(x,y) Linkage promedio: Donde |S|, y |T| representan la cardinalidad de S y T. Linkage centroide:(S,T)= Donde y representan los cenroides de S y T respectivamente

  18. Median linkage: (S,T)=median{xS,yT}d(x,y) Linkage de Mc Quitty: Linkage de Ward: Aqui se junta el par de grupos que produce la varianza mas pequena en el grupo juntado.

  19. Tipos de Algoritmos para Conglomerados (“Clustering”) I. Métodos de particionamiento El conjunto de datos es particionado en un número pre-especificado de conglomerados K, y luego iterativamente se va reasignando las observaciones a los conglomerados hasta que algún criterio de parada (función a optimizar) se satisface (suma de cuadrados dentro de los conglomerados sea la más pequeña). Ejemplos: K-means, PAM, CLARA, SOM, Conglomerados basados en modelos de mezclas gausianas, Conglomerados difusos.

  20. II. Metodos Jerárquicos. En estos algoritmos se generan sucesiones ordenadas (jerarquias) de conglomerados. Puede ser juntando cluster pequenos en mas grande o dividiendo grandes clusters en otros mas pequenos. La estructura jerárquica es representada en forma de un árbol y es llamada Dendograma. Se dividen en dos tipos: Algoritmos jerárquicos aglomerativos (bottom-up, inicialmente cada instancia es un cluster).AGNES Algoritmos jerárquicos divisivos (top-down, inicialmente todas las instancias estan en un solo cluster. DIANA.

  21. 1-Algoritmo k-means (MacQueen, 1967). El objetivo es minimizar la dissimiliridad de los elementos dentro de cada cluster y maximizar la disimilaridad de los elementos que caen en diferentes clusters. INPUT: Un conjunto de datos S y k número de clusters a formar; OUTPUT: L una lista de los clusters en que caen las observaciones de S. • Seleccionar los centroides iniciales de los K clusters: c1, c2, ..., cK. • Asignar cada observación xi de S al cluster C(i) cuyo centroide c(i) está mas cerca de xi. Es decir, C(i)=argmin1kK||xi-ck|| • Para cada uno de los clusters se recalcula su centroide basado en los elementos que están contenidos en el cluster y minimizando la suma de cuadrados dentro del cluster. Es decir, Ir al paso 2 hasta que se consiga convergencia.

  22. 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 K-Means 10 9 8 7 6 5 Actualizar los centroides 4 Asignar cada instancia al cluster mas cercano. 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 reasignar reasignar K=2 Escoger arbitrariamente K instances como los centroides Actualizar los centroides

  23. Alternativas para los k centroides iniciales • Usando las primeras k bservaciones • Eligiendo aleatoriamente k observaciones. • Tomando cualquier partición al azar en k clusters y calculando sus centroides.

  24. Características del Algoritmo k-means • No se satisface el criterio de optimizacion globalmente, solo produce un óptimo local. • El algoritmo de k-means es computacionalmente rápida. • Puede trabajar bien con datos faltantes (missing values). • Es sensible a “outliers”.

  25. R y la función kmeans La librería mvadeRtiene lafunción kmeansqueejecuta el algoritmo kmeans. Ejemplo: Consideremosconjunto de datos bupa (6 variables predictoras y 345 observaciones). > kmeans(bupa[,1:6],2) > kmeans(bupa[,1:6],3) > #K-means eligiendo como centros iniciales las observaciones10 y 100 de Bupa > medias<-bupa[c(10,100),1:6] > kmeans(bupa[,1:6],medias)

  26. Particionamiento alrededor de medoides (PAM) Introducido por Kauffman y Rousseauw, 1987. MEDOIDES, son instancias representativas de los clusters que se quieren formar. Para un pre-especificado número de clusters K, el procedimiento PAMestá basado en la búsqueda de los K MEDOIDES, M = (m1, . . . ,mK) de todas las observaciones a clasificar Para encontrar M hay que minimizar la suma de las distancias de las observaciones a su mas cercano Medoide. d es una medida de dissimilaridad

  27. 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 k-Medoides Total Cost = 20 10 9 8 Arbitrariamente escoger k instances como medoides Asignar las instancias restantes a su mas cercano medoide. 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 K=2 Seleccionar al azar una instancia nonmedoide ,Oramdom Total Cost = 26 Hacer el loop hasta que no haya cambios Calcular el costo total de swapping Swapping O y Oramdom Si se mejora la calidad

  28. R y la función PAM La función pam de la librería cluster encuentra los conglomerados usando el particionamiento alrededor de medoides. Aplicaremos PAM al conjunto de datos bupa. >pambupa=pam(bupa[,1:6],2,diss=F) Generalmente los resultados son un poco mejores que el de k- means.

  29. Mapas auto-organizados (Self-orgamizing Maps, SOM)(Kononen, 1988) Son algoritmos de particionamiento que son restringidos al hecho que los clusters pueden ser representados en una estructura regular de dimensión baja, tal como un grid (los más usados son los SOM en una y dos dimensiones). Los clusters que son cercanos entre sí aparecen en celdas adyacentes del grid. O sea, SOM mapea el espacio de entrada de las muestras en un espacio de menor dimension en el cual la medida de similaridad entre las muestras es medida por la relación de cercanía de los vecinos. Cada uno de los K clusters es representado por un objeto prototipo Mi , i = 1,…K .

  30. Mapas auto-organizados (Self-orgamizing Maps, SOM) En este método la posición de una observación en el espacio inicial de entradas influye de alguna manera en su asignación a un conglomerado. Se construye un plot en donde las observaciones similares son ploteadas cercanas entre sí. El algoritmo SOM es bastante similar a k-means Un SOM es entrenado como una red neural. El SOM puede ser considerado también como una técnica de reducción de dimensionalidad y guarda relación con la técnica conocida como escalamiento multidimensional (proceso de encontrar un conjunto de puntos en un espacio multidimensional que corresponda a medidas de similaridad entre objetos).

  31. El algoritmo SOM considerando un grid rectangular de dos dimensiones Paso1-Seleccionar los numeros de filas (q1) y columnas (q2) en el grid. Luego habrá K=q1q2 clusters Paso2. Inicializar el tamaño del parámetro de actualizacion (la tasa de aprendizaje en terminos de redes neurales)  ( =1) y el radio del grid (r=2) Paso3. Inicializar los vectores prototipos Mj, j  (1,…,q1) x (1,….,q2) mediante la eleccion aleatoria de K instancias. Paso4. Para cada observacion del conjunto de datos hacer los siguiente: Identificar el vector índice j’ del prototipo Mj mas cercano a xi. Identificar un conjunto S de prototipos vecinos de Mj’. Es decir, S={j: distancia (j ,j’)<r} La distancia puede ser Euclideana o cualquiera otra Actualizar cada elemento de S moviendo el correspondiente prototipo hacia xi: MjMj +(xi-Mj) para todo j  S Paso5. Disminuir el tamaño de  y r en una cantidad predeterminada y continuar hasta alcanzar convergencia.

  32. R y la función SOM La función SOM de la librería class de B. Ripley construye un SOM, al igual que la libreria som. Aunque los resultados son solamente visuales. De cada centroide salen lineas que representan cada una de las variables Por ejemplo para el conjunto de datos bupa >bupgr=somgrid(2,3,topo="hexa") > sombupa=SOM(bupa[,1:6],bupgr) > plot(sombupa) > sombupa$codes Otros software: Somtoolbox en Matlab, Cluster por Eissen y Genecluster (MIT Center por Genome Research). Este ultimo muestra los elementos de cada cluster

  33. SOM usando la libreria SOM

  34. Algoritmo jerárquicos Estos algoritmos generan sucesiones anidadas de clusters que se pueden visualizar con una estructura de arbol llamado Dendrograma, En la figura se muestra el dendrograma del conjunto Bupa obtenido usando la función hclust para algoritmo jerarquico aglomerativo de la libreria mva. > a=hclust(dist(bupa)) > plot(a)

  35. Dendrogramas Los dendrogramas son fáciles de interpretar pero pueden conducir a falsas conclusiones por las siguientes razones: • El dendograma correspondiente a un conglomerado jerárquico no es único, puesto que por cada junte de clusters (merge) uno necesita especificar que sub-árbol va a la derecha y cuál a la izquierda. Por default la función hclustde la librería cluster ordena los arboles de tal manera que los conglomerados más concentrados van a la izquierda. 2) La estructura jerárquica del Dendrograma no representa con certeza las verdaderas distancias entre los objetos distintos del conjunto de datos.

  36. El coeficiente de correlación cofenético puede ser usado para medir cuan bien la estructura jerárquica del dendrograma representa a las v erdaderas distancias. Se define como la correlación entre las n(n - 1)/2 pares de dissimilaridades y sus distancias cofenéticas del dendogramas. La función cophenetic en la libreria mvacalcula la distancia cofenéticas. disbupa=dist(bupa[,1:6]) hbupa=hclust(disbupa, method=”ave”) denbupa=cophenetic(hbupa) cor(disbupa,denbupa) La distancia cofenética da 0.915849

  37. Ejemplo de un dendrograma y sus cortes treebupa=as.dendrogram(hbupa) bupita=cut(treebupa,h=100) bupita=cut(treebupa, h=100) > bupita $upper `dendrogram' with 2 branches and 4 members total, at height 176.9354 $lower $lower[[1]] `dendrogram' with 2 branches and 333 members total, at height 91.22225 $lower[[2]] `dendrogram' with 2 branches and 3 members total, at height 64.38526 $lower[[3]] `dendrogram' leaf '85', at height 0 $lower[[4]] `dendrogram' with 2 branches and 8 members total, at height 62.8725

  38. Heatmaps. Son gráficas que muestran simultaneamente las agrupaciones en conglomerados de columna y filas. La función heatmap de la libreria mva permite hacer heatmaps usando un gran número de tonalidades de colores.

  39. Ejemplo de heatmaps para Iris Notar que solo las variables 2 y 3 determinan claramente las 3 clases.

  40. Algoritmo jerárquico aglomerativo Suponiendo que tenemos una matriz de datos m x n. Se empieza con m conglomerados si se desea formar grupos de muestras (filas) o con n clusters si se quieren formar grupos de variables (columnas). En cada paso se juntan los cluster mas cercanos usando una medida de distancia entre clusters (linkage) Entre estas distancias están Linkage promedio: promedio de las distancias de las observaciones en cada cluster. Linkage simple: la menor distancia entre las observaciones de cada cluster Linkage completo: la mayor distancia entre las observaciones de cada cluster.

  41. Ejemplo de Jerarquico Aglomerativo En este caso usaremos la funcion agnes de la libreria cluster bupagl<-agnes(bupa[,1:6],metric="euclidean",method="ward") cutree(bupagl,k=2) > table(cutree(bupagl,k=2)) 1 2 62 283 > table(cutree(bupagl,k=3)) 1 2 3 283 53 9 La función plot.agnes permite hacer un plot del dendrograma. Pero no tiene la misma flexibilidad de las funciones en mva.

  42. Métodos jerárquicos divisivos Empieza con un solo cluster, que es aquel que contiene a todas las muestras. En cada paso se divide los clusters en dos subgrupos. Son más lentos de calcular que los jeráquicos aglomerativos A continuacion se muestra un ejemplo del método jerarquico divisivo usando la función Diana de la libreria cluster. > bupadiv<-diana(bupa[,1:6],metric='euclidean') > plot(bupadiv,which=2) > bupadiv

  43. Ejemplo usando Diana > bupadiv=diana(bupa[,1:6],metric= 'euclidean') > plot(bupadiv,which=2) > bupadiv > cutree(bupadiv,k=2) > table(cutree(bupadiv,k=2)) 1 2 33 312 > table(cutree(bupadiv,k=3)) 1 2 3 25 8 312

  44. Comparación de métodos de particionamiento con los métodos jerárquicos. Los métodos de particionamiento tienen la ventaja de que satisfacen un criterio de optimilidad aunque sea aproximadamente. Desventajas: Necesitan un valor inicial del número de clusters y toma mucho tiempo obtener los clusters. Por otro lados los métodos jerárquicos tienen la ventaja que son rápidos de calcular sobre todo el aglomerativo. Desventaja: La rigidez que le da la estructura de árbol ( el llamado factor de anidamiento). Es dificil corregir lo que se hizo antes.

  45. Determinación del número de clusters. Indices Internos. Estadisticas basados en las sumas de cuadrados entre clusters y dentro de clusters. El número de clusters K es aquel que maximiza o minimiza uno de estos indices.(Milligan, GW& Cooper, MC). Entre los principales estan el indice de Dunn, el Indice de Davies-Bouldin. Ancho de silueta promedio. Métodos basado en modelos de mezclas gaussianas. Determinar el número de componentes de la mezcla es lo mismo que determinar el número de clusters. Se usan los criterios de AIC ( Criterio de Información de Akaike) y BIC ( Criterio de Información Bayesiano).

  46. Indice de Dunn (1974). La idea es identificar los clusteres que estan bien compactos y bien separados de los demas. Dada una particion de clusters donde ci representa el i-esimo cluster de la particion, se define el indice de Dunn por donde d(ci,cj) – es la distancia entre los clusters ci, y cj y d'(ck) representa la distancia intracluster del cluster ck. En numero optimo de clusters es aquel que maximiza D. La libreria fpc tiene una funcion cluster.stats que calcula el indice de Dunn.

  47. Silhouette plots Los plots siluetas, (Rousseeuw 1987) pueden ser usados para: • Seleccionar el número de clusters. • Evaluar cuan bien han sido asignados las observaciones en los clusters. El ancho de la silueta (silhouette width) de la i-ésima observación es definida por: sili= (bi - ai)/ max(ai, bi) Donde, aidenota la distancia promedio entre la observación i y todas las otras que están en el mismo cluster de i, y bidenota la distancia promedio minima de i a las observaciones que están en otros clusters.

  48. Características de los Silhouette plots Las observaciones con ancho de silueta grande están bien agrupadas mientras aquellas con ancho de silueta baja tienden a estar ubicada en el medio de dos clusters. Para un número de clusters dado K, el ancho de silueta promedio de la configuracion de conglomerados será simplemente el promedio de sili sobre todas las observaciones. Es decir, Kaufman y Rousseeuw (1990) sugirieron estimar el número óptimo de cluster K para el cual el ancho de silueta promedio sea la mayor posible.

  49. Ejemplo de los Silhouette plots Ejemplo con el conjunto de datos Bupa y el metodo jerarquico aglomerativo > agbupa=agnes(dist(bupa[,1:6]),method=“ward”) >a=silohuette(cutree(agbupa,k=2),daisy(bupa[,1:6])) >b=silohuette(cutree(agbupa,k=3),daisy(bupa[,1:6])) >c=silohuette(cutree(agbupa,k=4),daisy(bupa[,1:6])) >par(mfrow=c(1,3)) >plot(a,”main=“”) >plot(b,”main=“”) >plot(c,”main=“”) Mirando el plot k=2 clusters es lo recomendado.

More Related