Tema 3: Clasificación no supervisada 10529 Informàtica Encastada i Aplicacions Máster en Tecnologías de la Información y las Comunicaciones Universitat de les Illes Balears Departament de Ciències Matemàtiques i Informàtica Alberto ORTIZ RODRÍGUEZ Contenido • Introducción – planteamiento del problema y definiciones • Medidas de proximidad • Agrupamiento (clustering) jerárquico – introducción – algoritmos aglomerativos • Agrupamiento (clustering) por optimización – algoritmo k-means Alberto Ortiz / EPS (última revisión 02/07/2010) 2 1 Índice • Introducción • Medidas de proximidad • Agrupamiento (clustering) jerárquico • Agrupamiento (clustering) por optimización Alberto Ortiz / EPS (última revisión 02/07/2010) 3 Introducción • Clasificación no supervisada: – Dos tipos de situaciones: (1) agrupar ejemplares no etiquetados según “afinidad” (2) entrenar un clasificador a partir de ejemplares no etiquetados, para después aplicar clasificación supervisada – Por tanto: • Se trata de clasificar a partir de una colección de ejemplares que no están etiquetados con la clase a la que pertenecen • El principal problema consiste en descubrir la estructura natural de clases ⇒ agrupar los ejemplares en grupos (clusters) “creíbles”, producto de las similitudes y/o diferencias entre los mismos (tener en cuenta la forma esperada de los clusters en el espacio de características ?) • Diferentes nombres para el mismo problema: – aprendizaje no supervisado o aprendizaje sin un maestro (reconocimiento de patrones) – taxonomía numérica (biología, ecología), tipología (ciencias sociales), particionado (teoría de grafos) Alberto Ortiz / EPS (última revisión 02/07/2010) 4 2 Introducción • Clasificación no supervisada: – En un problema de agrupamiento intervienen: • ejemplares no etiquetados (vectores L-dimensionales) • una medida de proximidad (similitud/disimilitud) • un algoritmo de agrupamiento: – jerárquicos: aglomerativos vs divisivos – por optimización: k-means, etc... Alberto Ortiz / EPS (última revisión 02/07/2010) 5 Introducción • Clasificación no supervisada: – Definición de agrupamiento (clustering): • numerosas definiciones basadas en términos vagamente definidos: – buscamos la estructura natural de grupos para L dimensiones, próxima a la tendencia humana de agrupar puntos 2D/3D en agrupaciones próximas en el plano/espacio – p.e. grupo (cluster) = en un espacio L-dimensional “regiones continuas de relativamente alta densidad de puntos separadas de otras regiones de alta densidad por zonas de relativamente baja densidad” ¡¡ la forma del grupo puede formar parte del criterio de agrupamiento !! Alberto Ortiz / EPS (última revisión 02/07/2010) 6 3 Introducción • Clasificación no supervisada: – Definición de agrupamiento (clustering): una definición formal (no tiene porqué ser universal): • Sea X = {x1, x2, ..., xN} el conjunto de ejemplares • Un M-agrupamiento de X es una partición de X en M conjuntos (clusters) C1,...,CM, de forma que: (1) Ci = ∅, i = 1, . . . , M (2) M i=1 Ci = X (3) Ci ∩ Cj = ∅, i = j, j = 1, . . . , M (4) los elementos de Ci son similares entre ellos y disimilares a los elementos de Cj (j = i) de acuerdo con una cierta medida de similitud/disimilitud Alberto Ortiz / EPS (última revisión 02/07/2010) 7 Índice • Introducción • Medidas de proximidad • Agrupamiento (clustering) jerárquico • Agrupamiento (clustering) por optimización Alberto Ortiz / EPS (última revisión 02/07/2010) 8 4 Medidas de proximidad • Definición de medida de similitud/disimilitud • Una medida de disimilitud d (MD) entre elementos de un conjunto X es una función: d:X ×X →R tal que: (1) ∃d0 ∈ R : −∞ < d0 ≤ d(x, y) < +∞ , ∀x, y ∈ X medidas de proximidad sobre X (2) d(x, x) = d0 , ∀x ∈ X (3) d(x, y) = d(y, x), ∀x, y ∈ X (mayor cuanto más diferentes) • Una medida de similitud s (MS) entre elementos de un conjunto X es una función: s : X ×X → R tal que: (1) ∃s0 ∈ R : −∞ < s(x, y) ≤ s0 < +∞ , ∀x, y ∈ X (2) s(x, x) = s0 , ∀x ∈ X (3) s(x, y) = s(y, x), ∀x, y ∈ X (mayor cuanto más similares) ℘:X ×X →R Alberto Ortiz / EPS (última revisión 02/07/2010) 9 Medidas de proximidad • Definición de medida de similitud/disimilitud • Una medida de disimilitud d (MD) entre subconjuntos U ⊆ X (U ∈ P(X)) es: d : P(X) × P(X) → R tal que: (1) ∃d0 ∈ R : −∞ < d0 ≤ d(U, V ) < +∞ , ∀U, V ⊆ X medidas de proximidad sobre P(X) (2) d(U, U ) = d0 , ∀U ⊆ X (3) d(U, V ) = d(V, U ), ∀U, V ⊆ X (mayor cuanto más diferentes) • Una medida de similitud s (MS) entre subconjuntos U ⊆ X (U ∈ P(X)) es: s : P(X) × P(X) → R tal que: (1) ∃s0 ∈ R : −∞ < s(U, V ) ≤ s0 < +∞ , ∀U, V ⊆ X (2) s(U, U ) = s0 , ∀U ⊆ X (3) s(U, V ) = s(V, U ), ∀U, V ⊆ X (mayor cuanto más similares) ℘ : P(X) × P(X) → R Alberto Ortiz / EPS (última revisión 02/07/2010) 10 5 Medidas de proximidad • Ejemplos de medidas de proximidad: – Medidas de disimilitud (entre puntos): métrica Lp ponderada (o de Minkowski) L p1 dp (x, y) = wi |xi − yi |p , wi ≥ 0 i=1 d2 (x, y) = d1 (x, y) = (x − y)T (x − y) (metrica L2 o distancia euclidea) L i=1 |xi − yi | (metrica L1 , distancia Manhattan o distancia City Block) d∞ (x, y) = max |xi − yi | (metrica L∞ ) 1≤i≤L Alberto Ortiz / EPS (última revisión 02/07/2010) 11 Medidas de proximidad • Ejemplos de medidas de proximidad: – Medidas de similitud (entre puntos): • producto escalar s• (x, y) = xT y = L xi yi = xy cos α i=1 x = a, ∀x ⇒ s• ∈ [−a2 , a2 ] • distancia de Tanimoto xT y xT y = T 2 T T + y − x y x x + y y − 2xT y + xT y 1 1 = = (d2 (x,y))2 (x−y)T (x−y) 1 + s• (x,y) 1+ xT y sT (x, y) = x2 Alberto Ortiz / EPS (última revisión 02/07/2010) 12 6 Medidas de proximidad • Ejemplos de medidas de proximidad: – Medidas de proximidad entre un punto y un cluster ℘ ≡ medida de disimilitud / similitud no hay representante de cluster hay representante de cluster ℘max (x, C) = max ℘(x, y) ℘rep (x, C) = ℘(x, µC ) ℘min (x, C) = min ℘(x, y) donde típicamente: y∈C y∈C µC = 1 ℘avg (x, C) = ℘(x, y) nC 1 y nC y∈C y∈C ... a nivel formal son interesantes, pero en la práctica son más bien necesarias las medidas de proximidad entre grupos Alberto Ortiz / EPS (última revisión 02/07/2010) 13 Medidas de proximidad • Ejemplos de medidas de proximidad: – Medidas entre clusters ℘max (C1 , C2 ) = sin representante ℘min (C1 , C2 ) = de cluster ℘avg (C1 , C2 ) = max ℘(x, y) min ℘(x, y) x∈C1 ,y∈C2 x∈C1 ,y∈C2 1 ℘(x, y) n1 n2 x∈C1 y∈C2 con representante de cluster ℘mean (C1 , C2 ) = ℘(µ1 , µ2 ) n1 n2 ℘ward (C1 , C2 ) = ℘(µ2 , µ2 ) n1 + n2 – Algunas de estas funciones pueden no ser medidas: p.e. ℘max cuando ℘ es MD, ℘min cuando ℘ es MS, o ℘avg tanto si ℘ es MD como MS Alberto Ortiz / EPS (última revisión 02/07/2010) 14 7 Índice • Introducción • Medidas de proximidad • Agrupamiento (clustering) jerárquico • Agrupamiento (clustering) por optimización Alberto Ortiz / EPS (última revisión 02/07/2010) 15 Agrupamiento jerárquico • En lugar de dar lugar a un único agrupamiento, generan una jerarquía de agrupamientos anidados. Por ejemplo: R0 :{x1 }, {x2 }, {x3 }, {x4 }, {x5 } R1 :{x1 , x2 }, {x3 }, {x4 }, {x5 } R2 :{x1 , x2 }, {x3 }, {x4 , x5 } R3 :{x1 , x2 }, {x3 , x4 , x5 } R4 :{x1 , x2 , x3 , x4 , x5 } R0 ⊏ R1 ⊏ R2 ⊏ R3 ⊏ R4 DENDROGRAMA – N ejemplares ⇒ jerarquía de N niveles − N pasos de ejecución – Tipos de algoritmos de agrupamiento jerárquico: • Aglomerativos: • Divisivos: {x1 }, {x2 }, . . . , {xN } → {x1 , x2 , . . . , xN } {x1 , x2 , . . . , xN } → {x1 }, {x2 }, . . . , {xN } Alberto Ortiz / EPS (última revisión 02/07/2010) 16 8 Agrupamiento jerárquico • Algoritmos aglomerativos: – Esquema general: (para medidas de disimilitud) (1) R0 = {Ci = {xi }, i = 1, . . . , N } (2) t = 0 (3) repetir (3.1) Escoger el par de clusters (Cr , Cs ) ∈ Rt (r = s) tal que: ℘(Cr , Cs ) = min{℘(Ci , Cj )} i,j (3.2) Rt+1 = (Rt − {Cr , Cs }) ∪ {Cr ∪ Cs } (3.3) t = t + 1 hasta que todos los ejemplares esten en el mismo cluster Observación: si dos ejemplares se unen en un mismo cluster, permanecen unidos hasta el final (≡ anidamiento) no hay forma de recuperarse de una unión previa descubierta como inadecuada más adelante Alberto Ortiz / EPS (última revisión 02/07/2010) 17 Agrupamiento jerárquico • Algoritmos aglomerativos: – Hay dos categorías principales de algoritmos aglomerativos: • basados en conceptos matriciales • basados en teoría de grafos – Veremos los primeros. Para ello, necesitamos una serie de conceptos previos: • matriz de ejemplares: x11 x12 . . . x1L x1 x21 x22 . . . x2L x2 D(X) = . .. .. .. .. . . . xN 1 xN 2 ℘(x1 , x1 ) • matriz de proximidad: ℘(x2 , x1 ) (p.e. matriz de P (X) = .. . disimilitud) ℘(xN , x1 ) Alberto Ortiz / EPS (última revisión 02/07/2010) ... xN L xN ℘(x1 , x2 ) ℘(x2 , x2 ) .. . ... ... ℘(xN , x2 ) ... ℘(x1 , xN ) ℘(x2 , xN ) .. . ℘(xN , xN ) 18 9 Agrupamiento jerárquico • Algoritmos aglomerativos: – Así, el algoritmo de agrupamiento pasa a ser: (para medidas de disimilitud) (1) R0 = {Ci = {xi }, i = 1, . . . , N} (2) t = 0 (3) repetir (3.1) Escoger el par de clusters (Cr , Cs ) ∈ Rt (r = s) tal que: Pt (r, s) = min Pt (i, j) i,j (3.2) Rt+1 = (Rt − {Cr , Cs }) ∪ {Cr ∪ Cs } (3.3) Calcular Pt+1 a partir de Pt : Pt+1 = Pt invalidar fila y columna ‘r’ de Pt+1 invalidar fila y columna ‘s’ de Pt+1 crear fila y columna en Pt+1 para Cq = {Cr ∪ Cs } calcular Pt+1 (·, q) y Pt+1 (q, ·) (3.4) t = t + 1 hasta que todos los ejemplares esten en el mismo cluster Alberto Ortiz / EPS (última revisión 02/07/2010) 19 Agrupamiento jerárquico • Algoritmos aglomerativos: 1 – Ejemplo: 2 • Sea X = {x1,x2,x3,x4,x5} tal que D(X) = 5 6 6.5 1 1 4 5 6 0.00 1.00 • [1] Empleando distancia euclídea la matriz de proximidad (de disimilitud) es P (X ) = 5.00 6.40 – los elementos de la diagonal son 0 7.43 Alberto Ortiz / EPS (última revisión 02/07/2010) 1.00 0.00 4.24 5.66 6.73 5.00 4.24 0.00 1.41 2.50 6.40 5.66 1.41 0.00 1.12 7.43 6.73 2.50 1.12 0.00 20 10 Agrupamiento jerárquico • Algoritmos aglomerativos: ℘(x, y) – Ejemplo: construcción del dendrograma para [1] y ℘(C1 , C2 ) = x∈Cmin ,y∈C 0.00 1.00 P0 = 5.00 6.40 7.43 0.00 1.00 5.00 P1 = 6.40 7.43 − 1.00 0.00 4.24 5.66 6.73 5.00 4.24 0.00 1.41 2.50 6.40 5.66 1.41 0.00 1.12 1.00 0.00 4.24 5.66 6.73 − 5.00 4.24 0.00 1.41 2.50 4.24 6.40 5.66 1.41 0.00 1.12 5.66 7.43 6.73 2.50 1.12 0.00 7.43 6.73 2.50 1.12 0.00 6.73 1 2 ⇒ C6 = {x1 , x2 } − − 4.24 (1) 5.66 (2) 6.73(3) 0.00 (1) = min{d(x3 , x1 )5.00, d(x3 , x2 )4.24} (2) = min{d(x4 , x1 )6.40, d(x4 , x2 )5.66} (3) = min{d(x5 , x1 )7.43, d(x5 , x2 )6.73} ⇒ C7 = {x4 , x5 } ¡¡¡¡disponemos disponemosde de esta estainformacíón informacíón aatravés travésde dePP0 !!!! 0 Alberto Ortiz / EPS (última revisión 02/07/2010) 21 Agrupamiento jerárquico • Algoritmos aglomerativos: ℘(x, y) – Ejemplo: construcción del dendrograma para [1] y ℘(C1 , C2 ) = x∈Cmin ,y∈C 0.00 1.00 5.00 P2 = 6.40 7.43 − − 1 1.00 0.00 4.24 5.66 6.73 − − 5.00 4.24 0.00 1.41 2.50 4.24 1.41 6.40 5.66 1.41 0.00 1.12 5.66 − 7.43 6.73 2.50 1.12 0.00 6.73 − − − 4.24 5.66 6.73 0.00 5.66 2 − − 1.41 (1) − ⇒ C8 = {x3 , {x4 , x5 }} − 5.66(2) 0.00 (1) = min{d(x3 , x4 )1.41, d(x3 , x5 )2.50} (2) = min{d(x1 , x4 )6.40, d(x1 , x5 )7.43, d(x2 , x4 )5.66, d(x2 , x5 )6.73} Alberto Ortiz / EPS (última revisión 02/07/2010) 22 11 Agrupamiento jerárquico • Algoritmos aglomerativos: ℘(x, y) – Ejemplo: construcción del dendrograma para [1] y ℘(C1 , C2 ) = x∈Cmin ,y∈C 0.00 1.00 5.00 6.40 P3 = 7.43 − − − 1.00 0.00 4.24 5.66 6.73 − − − 5.00 4.24 0.00 1.41 2.50 4.24 1.41 − 6.40 5.66 1.41 0.00 1.12 5.66 − − 7.43 6.73 2.50 1.12 0.00 6.73 − − − − 4.24 5.66 6.73 0.00 5.66 4.24 − − 1.41 − − 5.66 0.00 − 1 2 − − − − ⇒ C9 = {{x1 , x2 }, {x3 , {x4 , x5 }}} − 4.24 (1) − 0.00 (1) = min{d(x1 , x3 )5.00, d(x1 , x4 )6.40, d(x1 , x5 )7.43, d(x2 , x3 )4.24, d(x2 , x4 )5.66, d(x2 , x5 )6.73} Alberto Ortiz / EPS (última revisión 02/07/2010) 23 Agrupamiento jerárquico • Algoritmos aglomerativos: ℘(x, y) – Ejemplo: construcción del dendrograma para [1] y ℘(C1 , C2 ) = x∈Cmin ,y∈C 1 2 C6 = {x1 , x2 } (1.00) C7 = {x4 , x5 } (1.12) C8 = {x3 , {x4 , x5 }} (1.41) C9 = {{x1 , x2 }, {x3 , {x4 , x5 }}} (4.24) Alberto Ortiz / EPS (última revisión 02/07/2010) 24 12 Agrupamiento jerárquico • Algoritmos aglomerativos: – Comentarios: x1 x2 x3 x4 x5 • cortar el dendrograma a un cierto nivel da lugar a un agrupamiento – no es necesario construir el dendrograma completamente, sólo hasta alcanzar el número de clusters fijado • el dendrograma da idea de si el agrupamiento conseguido a un cierto nivel es natural o forzado – una gran diferencia en proximidad de un nivel a otro da idea de un agrupamiento forzado • el dendrograma cambia en función de la expresión utilizada para la medida de proximidad entre clusters ℘(Ci,Cj) • con cada fusión de clusters se incrementa la varianza total del agrupamiento: e2r = x—µr 2 , µr = x∈Cr Et = 1 x nr x∈Cr e2r (varianza total del agrupamiento Rt ) cl. nivel t Alberto Ortiz / EPS (última revisión 02/07/2010) 25 Agrupamiento jerárquico • Algoritmos aglomerativos: alternativas según función de proximidad – Algoritmo del vecino más próximo (single-link, single-linkage) • Para el caso de medida de disimilitud: (3.1) Escoger el par de clusters (Cr , Cs ) ∈ Rt tal que: ℘(Cr , Cs ) = min{℘min (Ci , Cj ) = i,j min x∈Ci ,y∈Cj ℘(x, y)} – favorece los clusters alargados (efecto cadena) • Ejemplo de aplicación: x1 x2 x3 x4 x5 x6 x7 1.0 1.1 1.2 1.3 1.4 1.5 x8 2.0 2.2 4.5 x10 2.6 x9 5.0 2.4 x11 Alberto Ortiz / EPS (última revisión 02/07/2010) 26 13 Agrupamiento jerárquico • Algoritmos aglomerativos: alternativas según función de proximidad – Algoritmo del vecino más lejano (complete-link, complete-linkage) • Para el caso de medida de disimilitud: (3.1) Escoger el par de clusters (Cr , Cs ) ∈ Rt tal que: ℘(Cr , Cs ) = min{℘max (Ci , Cj ) = i,j max x∈Ci ,y∈Cj ℘(x, y)} – favorece clusters compactos (diámetro reducido) • Ejemplo de aplicación: x1 x2 x3 x4 x5 x6 x7 1.0 1.1 1.2 1.3 1.4 1.5 x8 2.0 2.2 4.5 x10 2.6 x9 5.0 2.4 x11 Alberto Ortiz / EPS (última revisión 02/07/2010) 27 Agrupamiento jerárquico • Algoritmos aglomerativos: alternativas según función de proximidad – Los algoritmos del vecino más próximo y el más lejano son extremos en cuanto a la forma como se miden las distancias entre clusters • Variando esas distancias se consiguen algoritmos con comportamientos intermedios • Para el caso de medida de disimilitud: (3.1) Escoger el par de clusters (Cr , Cs ) ∈ Rt tal que: ℘(Cr , Cs ) = min{℘(Ci , Cj )} i,j ℘avg (Ci , Cj ) = 1 ℘(x, y) ni nj x∈Ci y∈Cj ℘mean (Ci , Cj ) = ℘(µi , µj ) ni nj ℘ward (Ci , Cj ) = ℘(µi , µj ) ni + nj Alberto Ortiz / EPS (última revisión 02/07/2010) 28 14 Agrupamiento jerárquico • Algoritmos aglomerativos: alternativas según función de proximidad – En particular: ℘ward (Ci , Cj ) = ni nj ℘(µi , µj ) ni + nj da lugar al mínimo incremento de varianza total entre pasos del algoritmo de agrupamiento si ℘(µi,µj) = ||µi – µj||: • Por eso, si el algoritmo de agrupamiento emplea esta distancia se habla de algoritmo (de agrupamiento jerárquico aglomerativo) de varianza mínima • A nivel práctico, este algoritmo favorece la fusión de clusters pequeños con clusters grandes en detrimento de fusionar clusters grandes o de tamaño medio entre sí, debido a la incorporación de los tamaños de los clusters en la medida de proximidad Alberto Ortiz / EPS (última revisión 02/07/2010) 29 Agrupamiento jerárquico • Algoritmos aglomerativos: alternativas según función de proximidad – Ejemplo (del uso de la distancia de Ward): Alberto Ortiz / EPS (última revisión 02/07/2010) 30 15 Agrupamiento jerárquico • Algoritmos aglomerativos: alternativas según función de proximidad – Ejemplo (del uso de la distancia de Ward): x1 x2 x3 x4 x5 x6 x7 1.0 1.1 1.2 1.3 1.4 1.5 x8 2.0 2.2 4.5 x10 2.6 x9 5.0 2.4 x11 – En los casos claros (clusters compactos y bien separados), todas las variantes dan los mismos resultados. Las diferencias aparecen en los “casos raros”. Alberto Ortiz / EPS (última revisión 02/07/2010) 31 Índice • Introducción • Medidas de proximidad • Agrupamiento (clustering) jerárquico • Agrupamiento (clustering) por optimización Alberto Ortiz / EPS (última revisión 02/07/2010) 32 16 Agrupamiento por optimización • Se trata de encontrar la mejor partición en M clusters de acuerdo con un cierto criterio o función de coste J (≡ agrupamiento particional) R = {C1 , C2 , . . . , CM }| M Ci = X y J(R) = min {J(R′ )} ′ i=1 R – La función de coste puede ser diseñada para forzar a que los clusters posean una cierta forma (rectas, planos, círculos, esferas, elipses, elipsoides, etc.) – El criterio más simple y el más ampliamente utilizado es la suma de las varianzas intracluster: M Je = xj − µi 2 i=1 xj ∈Ci • Un agrupamiento de este tipo se denomina partición de varianza mínima • La formulación de Je puede ser interpretada como una medida del error de tomar como representante de un cluster Ci a su centro de masas (media, centroide) µi • Je es apropiado cuando los clusters tienen forma (hiper)esférica y corresponden a nubes de puntos relativamente compactas, separadas y de tamaño similar Alberto Ortiz / EPS (última revisión 02/07/2010) 33 Agrupamiento por optimización • Je da lugar al algoritmo conocido como K-means, C-means o Isodata: (1) inicializar µ1 (0), . . . , µM (0), t = 0 (2) repetir (2.1) ∀j = 1, . . . , N , asignar xj al cluster del centroide µi (t) mas cercano (2.2) t = t + 1 (2.3) ∀i = 1, . . . , M , (re)calcular µi (t) para la nueva asignacion hasta no hay cambios: µi (t) ≈ µi (t − 1), ∀i – convergencia: (1) (2) M i=1 µi (t) − µi (t − 1) < ǫ (p.e. ǫ = 10−3 ) max {|µik (t) − µik (t − 1)|} < ǫ, ... k=1,...,L ¡¡ el resultado depende de µk(0) !! Alberto Ortiz / EPS (última revisión 02/07/2010) 34 17 Agrupamiento por optimización • Ejemplo: 2 clases Gaussianas t.q. n1 = n2 = 50 − µ1 = (10, 10), σ1 = 2 − µ2 = (5, 5), σ2 = 1 centroides iniciales: patrones enmarcados en azul 6 iteraciones centroides finales: µ1 = (10.24, 9.89), µ2 = (5.02, 4.90) Alberto Ortiz / EPS (última revisión 02/07/2010) 35 18