Está en la página 1de 38

Clustering (Agrupamiento)

Definición
Clustering: Se basa en intentar responder como es que
ciertos Objetos (casos) pertenecen o “caen” naturalmente en
cierto número de clases o grupos, de tal manera que estos
objetos comparten ciertas características.

Esta definición asume que los objetos pueden dividirse ,


rasonablemente, en grupos que contienen objetos similares.
Si tal división existe, ésta puede estar oculta y debe ser
descubierta.Este es el objetivo principal de las técnicas o
estudios de clustering
Objetos (Datos) y Variables
 Un Objeto es un dato, el cual esta formado
por un conjunto finito de variables.
 Variables:
 Numéricas: son números reales en general
 Nominales : Son variables discretas pero que no
tienen un orden especificado (color de ojos)
 Ordinales: Son variables discretas con una
relación de orden (temp. Alta, Media, baja)
 Binarias: solo pueden tomar dos estados posibles
(dicotómicas)
Medidas de Disimilaridad
(Similaridad)
 Asocianun número (dij) a un par de
Objetos/Datos (i,j) , donde: (Sea S el
subespacio de objetos a clasificar)
 dij  0 para todo i, j S
 dij = 0 para todo i==j S
 dij = dji para todo i, j S
 dij  diz + dzj
Distancias
p
d ij   Wk xik  x jk City-Block
k 1

Wk  xik  x jk 
p
2
d ij  Euclídea
k 1

Wk  xik  x jk    0
p

d ij   Minkowski
k 1
Distancias
p

x ik  x jk
d ij  k 1
?
p p

 ik 
x 2

k 1
 jl
x 2

l 1

 xi    x jk  x j 
p

 x ik
d ij  k 1
?
 
p p
 x  x 
 ik i  jl j
2
 x  x
2

k 1 l 1
Problemas frecuentes
 Incompatibilidad en las Unidades de
Medida

 Variables
de distinto tipo (Numericas,
Nominales,etc..)

 Variables faltantes (Missing Values)


Tipos de Clustering
 Jerárquico
(Hierarchical) :
dendrogramas, Grafos (Arboles)

 De
partición: División en grupos (SOM,
LVQ, etc.)
Clustering Jerárquico 
Dendrogramas
1. El primer paso es calcular las distancias entre
todos los pares de objetos. Esto es lo mismo
que asumir que cada objeto constituye un
cluster: {C1, ...,CN}.
2. Se buscan los dos clusters más cercanos (Ci,
Cj), éstos se juntan y constituyen uno solo Cij.
3. Se repite el paso 2 hasta que no quedan pares
de comparación.
En general se representan como árboles binarios.
Clustering Jerárquico 
Dendrogramas
 La cuestión crítica de este método es la
forma de “juntar” los clusters entre sí, se
utilizan básicamente tres formas:
 Enlace simple
 Enlace promediado
 Enlace completo
Clustering Jerárquico 
Dendrogramas: Ejemplo en matlab
Datos=[ 0.8 1.8;...
1.1 1.6;...
0.8 1.3;...
1.0 0.9;...
1.4 0.6;...
1.5 0.1;...
1.1 0.1];
En formato Matlab
Dendrogramas: Enlace simple
(Single Linkeage)
1. El primer paso (común a todos los
métodos) es calcular la matriz de
distancias o matriz de disimilaridad.
2. Buscar el par mas cercano.
D1
D2 0.3606
D3 0.5000 0.4243
D4 0.9220 0.7071 0.4472
D5 1.3416 1.0440 0.9220 0.5000
D6 1.8385 1.5524 1.3892 0.9434 0.5099
D7 1.7263 1.5000 1.2369 0.8062 0.5831 0.4000
D1 D2 D3 D4 D5 D6 D7
Dendrogramas: Enlace simple
(Single Linkeage)
1. Los junto, formo un nuevo cluster y me
quedo con las mínimas distancias de
D1
D2
ambos clusters.
0.3606
D3 0.5000 0.4243
D4 0.9220 0.7071 0.4472
D5 1.3416 1.0440 0.9220 0.5000
D6 1.8385 1.5524 1.3892 0.9434 0.5099
D7 1.7263 1.5000 1.2369 0.8062 0.5831 0.4000
D1 D2 D3 D4 D5 D6 D7

D1/D2=D8
D3 0.4243
D4 0.7071 0.4472
D5 1.3416 0.9220 0.5000
D6 1.5524 1.3892 0.9434 0.5099
D7 1.5000 1.2369 0.8062 0.5831 0.4000
D1/D2=D8 D3 D4 D5 D6 D7
Dendrogramas: Enlace simple
(Single Linkeage)
D1/D2=D8
D3 0.4243
D4 0.7071 0.4472
D5 1.3416 0.9220 0.5000
D6 1.5524 1.3892 0.9434 0.5099
D7 1.5000 1.2369 0.8062 0.5831 0.4000
D1/D2=D8 D3 D4 D5 D6 D7

D8
D3 0.4243
D4 0.7071 0.4472
D5 1.3416 0.9220 0.5000
D6/D7=D9 1.5000 1.2369 0.8062 0.5831
D8 D3 D4 D5 D6/D7=D9
Dendrogramas: Enlace simple
(Single Linkeage)
D8
D3 0.4243
D4 0.7071 0.4472
D5 1.3416 0.9220 0.5000
D6/D7=D9 1.5000 1.2369 0.8062 0.5831
D8 D3 D4 D5 D6/D7=D9

D3/D8=D10
D4 0.4472
D5 0.9220 0.5000
D9 1.2369 0.8062 0.5831
D3/D8=D10 D4 D5 D9
Dendrogramas: Enlace simple
(Single Linkeage)
D3/D8=D10
D4 0.4472
D5 0.9220 0.5000
D9 1.2369 0.8062 0.5831
D3/D8=D10 D4 D5 D9

D4/D10=D11
D5 0.5000
D9 0.8062 0.5831
D4/D10=D11 D5 D9

D5/D11
D9 0.5831
D5/D11 D9
Dendrogramas: Enlace simple
(Single Linkage)
Clustering de Partición 
KMeans
 Elalgoritmo de las K-medias es otro
algoritmo de partición. Básicamente
este algoritmo busca formar clusters
(grupos) los cuales serán
representados por K objetos. Cada uno
de estos K objetos es el valor medio de
los objetos que pertenecen a dicho
grupo.
Clustering de Partición 
KMeans
1. Inicialmente se seleccionan K objetos del
conjunto de entrada. Estos K Objetos serán
los centroides iniciales de los K-grupos.
2. Se calculan las distancias de los
objetos(datos) a cada uno de los
centroides. Los Datos (Objetos) se asignan
a aquellos grupos cuya distancia es mínima
con respecto a todos los centroides.
Clustering de Partición 
KMeans
3. Se actualizan los centroides como el
valor medio de todos los objetos
asignados a ese grupo.
4. Se repite el paso 2 y 3 hasta que se
satisface algún criterio de
convergencia.
KMdemo
Clustering de Partición 
KMeans

at1 at2 K=2 centroides


d1 0.8 1.8 c1 0.8 1.8 d1
d2 1.1 1.6 c2 1.1 1.6 d2
d3 0.8 1.3
d4 1 0.9
d5 1.4 0.6
d6 1.5 0.1
d7 1.1 0.1
d8 0.5 2.4
d9 1.5 0.4
Clustering de Partición 
KMeans

distancias a centroides
c1 c2 Ndatos
d1 0 0.360555 iter 1 c1 0.7 1.83333333 d1,d3,d8
d2 0.360555 0 c2 1.26666667 0.61666667 d2,d4,d5,d6,d
d3 0.5 0.424264
d4 0.921954 0.707107
d5 1.341641 1.044031
d6 1.838478 1.552417
d7 1.726268 1.5
d8 0.67082 1
d9 1.565248 1.264911
Clustering de Partición 
KMeans

c1 c2 iter 2 c1 0.8 1.775 d1,d2,d3,d8


d4,d5,d6,d7,
d1 0.105409 1.272028 c2 1.3 0.42 d9
d2 0.463081 0.997358
d3 0.542627 0.827479
d4 0.980363 0.389087
d5 1.418136 0.134371
d6 1.909043 0.566912
d7 1.778889 0.542883
d8 0.600925 1.941148
d9 1.641476 0.318416
Clustering de Partición  Self-
Organizing Maps
 Los Mapas Autoorganizativos o Self-
Organizing Maps es un modelo de red
neuronal desarrollado por Teuvo Kohonen en
los 80s.
 Básicamente este modelo procesa una base
de datos, resultando en un mapa
(usualmente bidimensional) donde casos
similares se “mapean” en regiones cercanas.
 De esta manera “vecindad” significa
“similaridad”.
Clustering de Partición  Self-
Organizing Maps
 La estructura de este modelo es una
capa de nodos (uni, bi o tridimensional).
La disposición de los nodos es sobre un
espacio geométrico y no están
conectados entre si.
 Todos los nodos se conectan a las
mismas entradas del modelo.
Clustering de Partición  Self-
Organizing Maps
Clustering de Partición  Self-
Organizing Maps
 Disposición de los
nodos en el array
Clustering de Partición  Self-
Organizing Maps
 Funcionamiento
Clustering de Partición  Self-
Organizing Maps: Entrenamiento
1. Se inicializan los 4. Se actualizan los
pesos de cada pesos del nodo
nodo (por ej. ganador y de sus
aleatoriamente.) vecinos.
2. Se presenta una 5. Se vuelve al paso
entrada a la red. 2 hasta que se
3. Se busca el nodo satisface el criterio
ganador de detención
impuesto.
Clustering de Partición  Self-
Organizing Maps: Entrenamiento
 Consideraciones Iniciales:
 Selección de la dimensión de la red
 Selección de la cantidad de nodos
 Selección de una medida de similaridad
 Inicialización aleatoria de pesos
 Selección del coeficiente de aprendizaje
 Elección de una vecindad inicial.
Clustering de Partición  Self-
Organizing Maps: Entrenamiento
 Búsqueda del nodo
ganador:

X L  W png  arg min X L  Wk
c

 Actualización de
los pesos:

Wk  n  1  Wk  n    n  X L  Wk  n si k  V  n
Wk  n  1  Wk  n si k  V  n
Clustering de Partición  Self-
Organizing Maps: Entrenamiento
Clustering de Partición  Self-
Organizing Maps: Resultado

Espacio de Entrada Espacio de Salida (Mapa)

Vectores
de Pesos Nodos
Clustering de Partición  Self-
Organizing Maps: Ejemplo

Toy problem: Base de datos de animales

pequeño
mediano? grande? bípedo ? cuadrup ? pelo ? garras melena plumas Caza ? corre ? vuela ? Nada ?
?
1 0 0 1 0 0 0 0 1 0 0 1 0 dove
1 0 0 1 0 0 0 0 1 0 0 0 0 hen
1 0 0 1 0 0 0 0 1 0 0 1 1 duck
1 0 0 1 0 0 0 0 1 0 0 0 1 goose
1 0 0 1 0 0 0 0 1 1 0 1 0 owl
1 1 0 1 0 0 0 0 1 1 0 1 0 hawk
0 1 0 1 0 0 0 0 1 1 0 1 0 eagle
0 1 0 0 1 1 0 0 0 1 0 0 0 fox
0 1 0 0 1 1 0 0 0 0 1 0 0 dog
0 1 0 0 1 1 0 1 0 1 1 0 0 wolf
1 0 0 0 1 1 0 0 0 1 0 0 0 cat
0 0 1 0 1 1 0 0 0 1 1 0 0 tiger
0 0 1 0 1 1 0 1 0 1 1 0 0 lion
0 0 1 0 1 1 1 1 0 0 1 0 0 horse
0 0 1 0 1 1 1 1 0 0 0 0 0 zebra
0 0 1 0 1 1 1 0 0 0 0 0 0 cow
Clustering de Partición  Self-
Organizing Maps: Ejemplo

Toy problem: Mapa de animales


Clustering de Partición  Self-
Organizing Maps: Ejemplo

Toy problem: Mapa de animales (Distancias – Clusters)


Clustering de Partición  Self-
Organizing Maps: Ejemplo

Toy problem: presentación de un nuevo caso

pequeño ?mediano? grande? bípedo ? cuadrup ? pelo ? garras melena plumas Caza ? corre ? vuela ? Nada ?
0 0 1 1 0 1 0 0 0 1 1 0 1 MAN
Clustering de Partición  Self-
Organizing Maps: Ejemplo

Hijo’e tigre !!!

También podría gustarte