Está en la página 1de 56

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL

Análisis de Clústers

Andrés G. Abad, Ph.D.

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 1 / 56


Agenda

Introducción al análisis de clústers

Pre-procesamiento de datos

Clústering jerárquico: algoritmo aglomerativo

Clústering particional: algoritmo k-medias

Clústering basado en densidades: algoritmo DBSCAN

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 2 / 56


Una aplicación temprana de análisis de clústers I
I John Snow graficó la ubicación de casos de cólera en un mapa durante la
epidemia en el verano de 1854 en Londres
I Su hipótesis era que la enfermedad se transmitı́a por el agua
I Ubico en el mapa de alcantarillas no sanitarias

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 3 / 56


Definición del Problema de Análisis de Clústers I

I Un objeto x = [x1 , . . . , xp ], con caracterı́sticas xi


I Asumimos que tenemos un conjunto de datos

D = {x(1) , . . . , x(n) }

I Asumimos que existe


1. Una noción de distancia entre todo par de objetos x(i) y x(j) medida como

d(x(i) , x(j) )

2. Una noción de similitud entre todo par de objetos x(i) y x(j) medida como

s(x(i) , x(j) )

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 4 / 56


Definición del Problema de Análisis de Clústers II
El problema de clústering
Buscamos una partición del conjunto D en k clústers {C1 , . . . , Ck } tal que:
I la distancia de los elementos dentro de cada cúster sea pequeña; y
I la distancia de los elementos entre los clústers sea grande
k
X X
{C∗1 , . . . , C∗k } = arg mı́n d(x(i) , x(j) )
{C1 ,...,Ck }
l=1 x(i) ,x(j) ∈Cl

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 5 / 56


Definición del Problema de Análisis de Clústers III

El análisis de clústers necesita definir tres elementos relevantes:


I Seleccionar el número de clústers k
I Medida de distancia d(·, ·) o de similitud s(·, ·)
I Algoritmo de clústering

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 6 / 56


Transformación de datos La decisión depende del conjunto de datos

I Estandarizar
1. Centrar: restrar la media de cada vector
2. Escalar: dividir para la desviación estandar
⇒ Mean = 0 y STDEV = 1
I Normalizar
I Mapea los valores al rango R[0,1]

xi − mı́n {x1 , . . . , xp }
x̃i =
máx {x1 , . . . , xp } − mı́n {x1 , . . . , xp }

I Ponderar caracterı́sticas
I Transformaciones (e.g. log, box-cox)
I Transformación Ranking (i.e. se reemplazan los valores medidos por sus
rankings)

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 7 / 56


Ponderando las caracterı́sticas I

I Pondere cada caracterı́stica según su importancia para la clasificación


sX
d(x, y) = wi (xi − yi )2
i

I Podemos usar nuestro conocimiento a priori para decidir que caracterı́sticas


son más importantes
I Podemos aprender los pesos wi utilizando validación cruzada

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 8 / 56


Distancia entre objetos I

Toda noción de distancia d entre dos objetos x, y, y z debe cumplir los siguientes
axiomas:
I d(x, y) = d(y, x) (conmutativo)
I d(x, y) ≥ 0 (no negativa)
I d(x, y) = 0 si y solo si x = y (reflexivo)
I d(x, y) ≤ d(x, z) + d(z, y) (desigualdad triangular)

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 9 / 56


Similitud entre objetos I

Toda noción de similitud s entre dos objetos x y y debe cumplir los siguientes
axiomas:
I 0 ≤ s(x, y) ≤ 1
I s(x, x) = 1
I s(x, y) = s(y, x)

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 10 / 56


Distancia y similitud I

I Matriz de distancias
 
 0 d12 · · · d1n 
d21 0 · · · d2n
 
 
Mdist (D) =  .. .. .. ..

. . . .

 
 
dn1 dn2 · · · 0

I Matriz de similitudes
 
 1 s12 · · · s1n 
s21 1 · · · s2n
 
 
Msim (D) =  .. .. .. ..

. . . .

 
 
sn1 sn2 · · · 1

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 11 / 56


Distancia entre objetos I

Las siguientes son distancias comunmente utilizadas en el análisis de datos:


I Variables numéricas
I Distancia euclideana
I Distancia manhattan
I Distancia Canberra
I Distancia Minkowski
I Variables binarias
I Índice de Jaccard
I Variables categóricas
I Índice de dice

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 12 / 56


Distancias para variables numéricas I

Considere dos vectores x = [x1 , . . . , xp ]| y y = [y1 , . . . , yp ]| en Rp

I Distancia euclideana:
q
l2 (x, y) = (x1 − y1 )2 + · · · + (xp − yp )2

I Distancia manhattan:

l1 (x, y) = |x1 − y1 | + · · · + |xp − yp |

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 13 / 56


Distancias para variables numéricas II

I Distancia Canberra:

|x1 − y1 | |xp − yp |
d(x, y) = + ··· +
|x1 | + |y1 | |xp | + |yp |

I Distancia Minkowski:
 1/p
lp (x, y) = |x1 − y1 |p + · · · + |xp − yp |p

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 14 / 56


Distancias para variables numéricas III

Distancia basada en la correlación: 1 − r


I Coeficiente de correlación de Pearson (PCC)

n ni=1 xi yi − ni=1 xi ni=1 yi


P P P
r=q P
( ni=1 x2i − ( ni=1 xi )2 )( ni=1 y2i − ( ni=1 yi )2 )
P P P

Desventaja: sensitivo a outliers

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 15 / 56


Distancia para variables binarias I

I Índice Jaccard: útil para vectores


binarios de presencia o ausencia
I Mide la similitud entre dos muestras
finitas
|X ∩ Y| |X ∩ Y|
J(X, Y) = =
|X ∪ Y| |X| + |Y| − |X ∩ Y|
I Considere dos vectores
x = [x1 , . . . , xp ] y y = [y1 , . . . , yp ]
donde xi , yj ∈ {0, 1}

x| y
J(x, y) =
1| x + 1| y − x| y

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 16 / 56


Distancia para variables categóricas I
I En una dimensión

0 si x = y;
(
δ(x, y) =
1 si x , y.
I Índice Dice: útil para variables categóricas (primero convertidos en binarias)
2|X ∩ Y|
QS(X, Y) =
|X| + |Y|

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 17 / 56


Combinando distancias - Distancia de Gower I

La distancia de Gower es un método para combinar en una sola medida de


distancia varias variables de tipos diferentes (númericas, binarias, categóricas,
etc)

Distancia de Gower

1. Asigne una medida de distancia para cada variable y luego normalı́cela entre
0y1
2. Combine (convexamente) las diferentes medidas; generalmente utilice el
promedio

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 18 / 56


Combinando distancias - Distancia de Gower II
En detalle, la distancia de Gower dG entre dos objetos x = [x1 , . . . , xp ] y
y = [y1 , . . . , yp ] es la siguiente.
1. Considere las distancias (parciales) d1 , . . . , dp , donde di = d(xi , yi ).
2. Normalice las distancias haciendo
di − mı́nx,y (di )
d̃i =
máxx,y (di ) − mı́nx,y (di )

3. Combine estas distancias parciales normalizadas haciendo


X
dG = λi d̃i ,
i

i λi = 1 y λi ≥ 0.
P
donde

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 19 / 56


Heurı́sticas para resolver el problema I
Problema de naturaleza combinatoria y dificil de resolver exactamente
I Clustering jerárquico: se crean una descomposición jerárquica del conjutno
de objetos bajo cierto criterio
I Clustering particional: se crea una partición del conjunto de objetos para
construir los distintos clústers
I Algoritmo basado en densidades: capaz de encontrar clústers con formas
arbitrarias

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 20 / 56


Agenda

Introducción al análisis de clústers

Pre-procesamiento de datos

Clústering jerárquico: algoritmo aglomerativo

Clústering particional: algoritmo k-medias

Clústering basado en densidades: algoritmo DBSCAN

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 21 / 56


Clústering jerárquico I
I Produce un conjunto de agrupamientos anidados organizados como un árbol
jerárquico
I Puede ser visualizado como un dendograma
I Un diagrama con forma de árbol que registra la sequencia de uniones y
separaciones
I Puede ser aplicado a cualquier distancia

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 22 / 56


Clústering jerárquico II

Los pasos del algoritmo son los siguientes

Algorithm 1 Algoritmo para clústering aglomerativo (nivel conceptual)

Require: Calcule la matriz de proximidad


Require: Considere a cada punto como un clúster
1: procedure clústering aglomerativo (nivel conceptual)
2: repeat
3: Unir los dos clústers más cercanos
4: Actualizar la matriz de proximidad
5: until Hasta que solo quede un clúster
6: end procedure

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 23 / 56


Clústering jerárquico III

El número de dendogramas con n nodos


terminales (hojas) es

(2n − 3)!
2(n−2) (n
− 2)!

# hojas # dendo-
gramas
2 1
3 3
4 15
5 105
... ...
10 34,459,425

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 24 / 56


Clustering jerárquico aglomerativo I

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 25 / 56


Cluster Linkage I

Sea C1 y C2 dos clusters


I Single (MIN) linkage

d(C1 , C2 ) = mı́n{d(x, y) : x ∈ C1 , y ∈ C2 }

I Complete (MAX) linkage

d(C1 , C2 ) = máx{d(x, y) : x ∈ C1 , y ∈ C2 }

I Average linkage

1 X
d(C1 , C2 ) = d(x, y)
|C1 ||C2 |
x∈C1 ,y∈C2

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 26 / 56


Cluster Linkage II
The Single Link or MIN will merge two clusters when a single pair of elements is
linked

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 27 / 56


Cluster Linkage III
The Complete Linkage or MAX will merge two clusters when all pairs of elements
have been linked

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 28 / 56


Agenda

Introducción al análisis de clústers

Pre-procesamiento de datos

Clústering jerárquico: algoritmo aglomerativo

Clústering particional: algoritmo k-medias

Clústering basado en densidades: algoritmo DBSCAN

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 29 / 56


Problema de k-medias I

Una formulación muy utilizada para el problema de clusters es la de k medias

Def. del Problema


Dado un conjunto D de n puntos en un espacio p dimensional buscamos una
partición C = {C1 , . . . , Ck } tal que:
K X
X
Costo(C) = d(x, ci )
i=1 x∈Ci

sea mı́nimo, donde ci es el centroide de los puntos en el clúster Ci .

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 30 / 56


Problema de k-medias II

Def. centroide ci
El centroide ci del cluster Ci es un punto tal que
X
ci = arg mı́n d(x, ci )
x∈Ci

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 31 / 56


Problema de k-medias III
Comunmente se utiliza la distancia euclideana
I ası́ la función objetivo Costo(C) corresponde a la Suma cuadrática total
interna (total within sum of squares o WSS)

Considerando distancia euclideana


Dado un conjunto D de n puntos en un espacio p dimensional buscamos una
partición C = {C1 , . . . , Ck } tal que

Costo(C) =WSS
K X
X
= (x − ci )2
i=1 x∈Ci

sea mı́nimo, donde ci es el vector promedio de los puntos en el clúster Ci .

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 32 / 56


Problema de k-medias IV

Notación
I k: número de clústers
I Nk : número de puntos en el clúster k
I xki : punto i-ésimo en el clúster k
I x̄k : promedio del clúster k
I x̄: promedio de todos los puntos

Total SS (TSS) = Within SS (WSS) + Between SS (BSS)


PK PNk 2
P K P Nk 2
PK 2
k=1 i=1 (xki − x̄) = k=1 i=1 (xki − x̄k ) + k=1 (x̄k − x̄)

Minimizar WSS es equivalente a maximizar BSS.

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 33 / 56


Observaciones Adicionales del algoritmo k-medias I

I The centroid depends on the distance function


I The minimizer for the distance function
I Centroid:
I The mean of the points in the cluster for SSE, and cosine similarity
I The median for Manhattan distance.
I Finding the centroid is not always easy
I It can be an NP-hard problem for some distance functions (e.g., median form
multiple dimensions)

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 34 / 56


Algoritmo de k-medias I

I El algoritmo de k-medias (o heurı́stica de Lloyd) es un algoritmo iterativo que


aproxima al problema de optimización combinatoria NP-duro
I En cada iteración realiza asignaciones de individuos a diferentes clusters
secuencialmente
I El algoritmo es sensible a la inicialización
I Cada clúster esta asociado a un centroido (punto central)
I Cada punto es asignado al clúster con el centroide más cercano
I Se debe especificar el número k de clúster
I El objetivo es minimizar la suma de la distancias de los puntos a sus
respectivos centroides (WSS)

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 35 / 56


Algoritmo de k-medias II

Los pasos del algoritmo son los siguientes

Algorithm 2 Algoritmo k-medias (nivel conceptual)

Require: Seleccione k puntos como centroides iniciales


1: procedure k-medias (nivel conceptual)
2: repeat
3: Forme k clúster asignando todos los puntos al centroide más cercano
4: Recalcule el centroide de cada clúster
5: until los centroides no cambien
6: end procedure

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 36 / 56


Algoritmo de k-medias III

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 37 / 56


Algoritmo de k-medias IV
El algoritmo en detalle es el siguiente.

Algorithm 3 Algoritmo k-medias

Require: Datos D = {x(n) }N n=1


, número de clusters K, centroides de clusters ck =
x(jk ) para k = 1, . . . , K
1: procedure k-medias
2: repeat
3: for n = 1, . . . , N do
4: y(n) = arg mı́nk d(x(n) , ck )
5: end Pfor
6: ck = n:y(n) =k x(n) /N, k = 1, . . . , K
7: until Convergencia
8: end procedure

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 38 / 56


Determinación del número k de clústers I
I Se compara el Total Within Sum of Square (WSS) para K = 1, 2, . . . .
I Técnica llamada el método del “codo” (elbow)

El cambio abrupto en k = 4 sugiere que hay 4 clústers en los datos


Andrés G. Abad, Ph.D., agabad@espol.edu.ec 39 / 56
Agenda

Introducción al análisis de clústers

Pre-procesamiento de datos

Clústering jerárquico: algoritmo aglomerativo

Clústering particional: algoritmo k-medias

Clústering basado en densidades: algoritmo DBSCAN

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 40 / 56


Clústering basado en densidades: algoritmo DBSCAN I
I Capaz de encontrar clúster con formas arbitrarias
I Clústers definidos como regiones con alta densidad rodeadas de regiones de
baja densidad
I Automaticamente selecciona el número de clústers
I Necesita escanear solamente una vez el conjunto de datos

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 41 / 56


Clústering basado en densidades: algoritmo DBSCAN II

I Requiere dos parámetros


I ε debe ser seleccionado
I Nmin generalmente 4

I Se definen tres tipo de puntos


I Puntos medulares: aquellos con al menos Nmin en su ε-vecindad
I Puntos de borde: punto que no es medular pero que esta dentro de la
ε-vecindad de un punto medular
I Puntos de ruido: un punto que no es medular ni de borde

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 42 / 56


Clústering basado en densidades: algoritmo DBSCAN III
ε-vecindario de un punto
El ε-vecindario de un punto x se define como

Nε (x) = {y ∈ D : d(x, y) ≤ ε},

donde D es el conjunto de datos y d es cierta medida de distancia.

Directamente alcanzable por densidad


Un punto x es directamente alcanzable por densidad desde un punto y (con
respecto a un ε y un Nmin ) si
I x ∈ Nε (y);
I |Nε (y)| ≥ Nmin , donde |Nε (y)| denota el número de puntos en Nε (y)
Esta relación no es simétrica.

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 43 / 56


Clústering basado en densidades: algoritmo DBSCAN IV

Alcanzable por densidad


Un punto x es alcanzable por densidad desde un punto y si existe una secuencia
de puntos x = x1 , . . . , xi = y tal que xl is directamente alcanzable por densidad
desde xl+1 para l = 1, . . . , i − 1.

Conectados por densidad


Dos putnos x y y son conectados por densidad con respecto a ε y Nmin si existe
un punto z tal que tanto x como y con alcanzables por densidad desde z con
respecto a ε y Nmin .

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 44 / 56


Clústering basado en densidades: algoritmo DBSCAN V

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 45 / 56


Clústering basado en densidades: algoritmo DBSCAN VI

Cluster
Un cluster C con respecto a ε y Nmin es un subconjunto no vacı́o de D que satisface las siguientes
condiciones:
1. ∀x, y ∈ D, si x ∈ C y y es alcanzable por densidad desde x con respecto a ε y Nmin , entonces
y ∈ C (maximalidad)
2. ∀x, y ∈ D, x y y estan conectados por densidad con respecto a ε y Nmin (conectividad)

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 46 / 56


Clústering basado en densidades: algoritmo DBSCAN VII

La distancia entre dos clusters C1 y C2 se define como (single linkage)

d(C1 , C2 ) = mı́n d(x, y)


x∈C1 ,y∈C2

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 47 / 56


Clústering basado en densidades: algoritmo DBSCAN VIII

I Identificar todos los puntos


medulares, de borde, y de ruido
I Dos puntos dentro de una distancia
de ε son asignados al mismo clúster
I Los puntos de borde son asignados
a uno de los clústers de sus puntos
medulares asociados
I Puntos de ruido no son asignados a
clústers, simplemente son
clasificados como ruido

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 48 / 56


Heurı́stica para escoger ε y Nmin I

Sorted k-dist graph


Sea Fk : D → R una función definida como

Fk (x) = distancia entre x y el k-ésimo vecino más cercano.

Se ordena Fk (D) en orden ascendiente y grafica en dos dimensiones.


1. Encuentre k∗ donde k > k∗ no cambie el gráfico significativamente.
2. Haga Nmin = k∗ (sugerencia: Nmin igual a 4 o 5)
3. Encuentre el punto z0 correspondiente al “codo”
4. Haga ε = Fk∗ (z0 )

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 49 / 56


Heurı́stica para escoger ε y Nmin II

Tenemos ε ≈ 1,8 y Nmin = 5.

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 50 / 56


Apéndice
Formulación matemática I
Variables de
( decisión:
1 si el objeto xi es asignado al clúster j
I wij =
0 si no
Icj ∈ Rd : centroide del cluster j
Parámetros:
I xi ∈ Rd : objeto i

N X
X K
mı́n z = wij d(xi , cj )
i=1 j=1
K
X
s.t.: wij = 1 (i = 1, . . . , N)
j=1

wij ∈ {0, 1}

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 52 / 56


Formulación matemática II

I NP-duro si la dimensión de los datos es de al menos 2 (d ≥ 2)


I No se sabe como encontrar la solución óptima en tiempo polinomial
I Para d = 1 el problema puede ser resuelto en tiempo polinomial (¿Cómo?)
I En la práctica, un algoritmo iterativo simple funciona bien

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 53 / 56


Formulación matemática III

Si hacemos d(xi , cj ) = |xi − cj | entonces tenemos la siguiente formulación MIP.


Variables de decisión:
(
1 si el objeto xi es asignado al clúster j
I wij =
0 si no
I cj ∈ Rd : centroide del cluster j
I ηij , γij : variables artificiales
Parámetros:
I xi ∈ Rd : objeto i

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 54 / 56


Formulación matemática IV

N X
X K
mı́n z = (ηij − γij )
i=1 j=1
K
X
s.t.: wij = 1 (i = 1, . . . , N)
j=1

xi − cj ≤ ηij (i = 1, . . . , N; j = 1, . . . , K)
cj − xi ≤ ηij (i = 1, . . . , N; j = 1, . . . , K)
γij ≤ (1 − wij )M (i = 1, . . . , N; j = 1, . . . , K)
ηij , γij ≥ 0, wij ∈ {0, 1} M0

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 55 / 56


Distancia para distribuciones de probabilidad I

I Divergencia Kullback-Leibler: útil para comparar distribuciones de


probabilidad Z ∞
p(x)
DKL (PkQ) = p(x) log dx
−∞ q(x)

I No es una distancia debido a que no es simétrica y no respeta la desigualdad


triangular

Andrés G. Abad, Ph.D., agabad@espol.edu.ec 56 / 56

También podría gustarte