Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clustering
Clustering
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.
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..)
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
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
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
Vectores
de Pesos Nodos
Clustering de Partición Self-
Organizing Maps: Ejemplo
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
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