Tecnicas de Agrupacion
Tecnicas de Agrupacion
Tecnicas de Agrupacion
TCNICAS DE AGRUPAMIENTO
En esta clase se presentan las tcnicas de agrupamiento, tambin conocidas como clustering,
que buscan grupos de instancias con caractersticas similares mediante el anlisis de
parecido entre sus atributos. Por tanto, a diferencia de las tcnicas anteriores de
clasificacin y prediccin, no se precisa de datos etiquetados con categoras o valores
objetivo, sino que es un anlisis no supervisado para encontrar una estructura en los datos.
Se revisan en primer lugar la tcnicas basadas en distancias, siendo el ms representativo el
mtodo k-medias, que agrupa los datos en k grupos de mnima distancia. Se revisa el
problema de definir distancias cuando el espacio de atributos es heterogneo con tcnicas de
normalizacin y transformacin de atributos nominales.
A continuacin, se presentan las tcnicas jerrquicas de agrupamiento, cuyo objetivo no es
separar en grupos en un mismo nivel, sino hacer una estructura jerrquica conocida como
dendograma. Se detalla el algoritmo COBWEB como tcnica representativa de este problema,
mostrando las heursticas de construccin del rbol jerrquico basadas en una funcin de
utilidad de tipo probabilstico que intenta maximizar el parecido entre instancias dentro de
cada categora y maximizar a su vez la separacin entre categoras
Por ltimo, se presenta el algoritmo EM (Expectation-Maximization) como tcnica que permite
estimar grupos de instancias y parmetros de distribuciones de probabilidad que los describen,
con un criterio de ajustar stas a un conjunto de categoras prefijado.
El tema se completa con una presentacin de las tcnicas semi-supervisadas, que buscan
aunar los clasificadores con las tcnicas de clustering con el objetivo de explotar datos no
etiquetados, habitualmente mucho ms disponibles que los etiquetados que se usan en las
tcncias habituales de clasificacin. Un ejemplo claro de tcnica semi-supervisada es la
combinacin del algoritmo EM con los clasificadores bayesianos.
Agrupamiento
Tcnicas y anlisis de clustering
Jess Garca Herrero
Universidad Carlos III de Madrid
Agrupamiento
Aprendizaje no supervisado. Objetivo: dados ejemplos sin
etiquetar (con clase), determinar un conjunto de grupos (clusters)
en los que se pueden dividir
No hay variable a predecir, sino se pretende descubrir una
estructura en los datos. Ejemplo
grupos de clientes con gustos similares en libros, msica, etc., para
anlisis de mercado
Agrupamiento
Ejemplos de entrada
1.9
1.85
1.8
Sitio de
acceso: A1
1
1
1
0
1
2
1 cantidad Vivienda:
gastada: A2
A3
0
2
0
1
2
0
2
1
1
1
2
1
Conceptual
Agrupamiento
ltima
compra: A4
Libro
Disco
Libro
Libro
Libro
Libro
altura (m)
1.75
1.7
1.65
1.6
1.55
1.5
45
50
55
60
65
70
peso (Kg)
75
Numrico
80
85
90
Ejemplo de salidas
Conjunto de clases
Clase1: ejemplo4, ejemplo6
Clase2: ejemplo2, ejemplo3, ejemplo5
Clase3: ejemplo1
Jerarqua de clases
Clase 1
Clase 3
Agrupamiento
Clase 2
Clase 4
Clase 5
Clase 6
4
3
2
1
1
4
A1?
Agrupamiento
Solucin 1
5
A2?
4
3
2
1
1
4
A1?
Agrupamiento
Solucin 2
5
A2?
4
3
2
1
1
4
A1?
Agrupamiento
Semilla 3
A2?
4
3
2
Semilla 2
Semilla 1
1
1
4
A1?
Agrupamiento
Centroide 3
A2?
4
3
2
Centroide 2
Centroide 1
1
4
A1?
Agrupamiento
Centroide 3
A2?
4
3
2
Centroide 2
Centroide 1
1
4
A1?
Agrupamiento
Centroide 3
A2?
4
3
2
Centroide 2
Centroide 1
1
4
A1?
Agrupamiento
4
3
2
1
1
4
A1?
Agrupamiento
Ej2. Inicio
5
Semilla 1
A2?
Semilla 2
3
2
1
1
4
A1?
Agrupamiento
4
3
2
1
1
4
A1?
Agrupamiento
Ej2. Inicio
5
Semilla 1
A2?
4
3
2
Semilla 2
1
1
4
A1?
Agrupamiento
4
3
2
1
1
4
A1?
Agrupamiento
Ej2. Inicio
5
Semilla 2
A2?
4
3
2
Semilla 1
1
1
4
A1?
Agrupamiento
4
3
2
1
1
4
A1?
Agrupamiento
Clculo de la distancia
Dados dos ejemplos Xi, Xj, con atributos xil, xjl, l=1,, F
d(Xi , X j )
( x il x jl )
l 1
atributos nominales:
F ( x il x jl ) 2
,
2
l
l 1
1, si x il x jl
d( x il , x jl )
0, si x il x jl
Agrupamiento
d(X i , X j )
X i X j t S1X i X j
Agrupamiento
Ejemplo
Clase 1
e4 ?
Clase 2
e1 , e 2
Clase 3
e3
Clustering jerrquico
Divisin recursiva: jerarqua conocida
como dendograma
La profundidad es proporcional a la
disimilaridad entre sus hijos
Agrupamiento
Dendogra
m24
Polar
plot
Agrupamiento
Operadores de agrupamiento
Clasificar una instancia:
Se introduce la instancia en cada una de las clases
sucesoras de la actual y se evalan las distintas categoras
Si el mejor es un nodo hoja, se introduce en el. Si no, se
llama recursivamente al algoritmo con l
Crear una clase:
Se comparan las calidades de:
la particin creada por aadir la instancia a la mejor clase
la particin resultante de crear una nueva clase para esa
instancia sola
Operadores de agrupamiento
Los dos operadores anteriores dependen mucho del orden de los
ejemplos.
e?
A
B
A
Agrupamiento
Operadores de agrupamiento
Separar dos nodos: Cuando se intenta introducir una instancia
en una clase que tenga sucesores, se estudia si se pueden subir
los sucesores al mismo nivel que la clase
e?
e?
A
e?
e?
B
A
A
Agrupamiento
Heurstica de bsqueda
Define el nivel bsico (aspecto cognitivo)
Ayuda a considerar al mismo tiempo la similitud intra-clase y la disimilitud
inter-clases
Intra-clase (p( Ai = Vijl Ck)): cuanto mas grande, ms ejemplos en la
clase comparten el mismo valor (clases homogneas)
Inter-clases (p( Ck|Ai=Vij )): cuanto mas grande, menos ejemplos de
distintas clases comparten el mismo valor (separacin entre clases)
Calidad de una particin {C1, C2,...,CM}, Ck mutuamente excluyentes, es
un compromiso entre las dos:
k 1 i j
Agrupamiento
2
p(C k ) p(Ai Vij | C k )
k 1
i j
2
i j p(A i Vij | C k )
donde
es el numero esperado de
valores de atributos que se pueden predecir correctamente para
un miembro cualquiera de Ck
La utilidad de una categora Ck es la mejora con respecto a no
tener informacin de la particin:
2
2
p(C k ) p(Ai Vij | C k ) p(Ai Vij )
i j
i j
Agrupamiento
1 M
2
2
CU(P)
p(Ck ) p(Ai Vij | Ck ) p(Ai Vij )
M k 1
i j
i j
1 M
2
CU(P) p(C k ) n p(A i Vij )
M k 1
i
j
Numero de atributos
Agrupamiento
Atributos numricos
Los atributos numricos se modelan con una distribucin normal
1 (a i ) 2
1
f (a i )
exp
2
2
2
1
2
2
j p(Ai Vij | Ck ) f (a i )da i
2 i
1
1 M
1
1
CU (C1 , C 2 ,..., C M )
p (C k )
M k 1
2 i ik
i
Agrupamiento
Algoritmo de agrupamiento
Nodo COBWEB (Instancia,Nodo) {
Actualizar los contadores de Nodo;
Si Nodo es hoja
Entonces IncluirInstancia (Instancia,Nodo);
Devolver Nodo
Si no MejorNodo= MejorClase (Instancia,Nodo);
Si es apropiado crear una nueva clase
Entonces Nuevo-nodo:= CrearNodo (Instancia,Nodo);
Devolver Nuevo-nodo
Si es apropiado combinar dos nodos
Entonces Nuevo-nodo:= CombinarNodos (Instancia,Nodo);
Devolver COBWEB (Instancia,Nuevo-nodo)
Si es apropiado separar dos nodos
Entonces Nuevo-nodo:= SepararNodos (Instancia,Nodo);
Devolver COBWEB (Instancia,Nodo)
Si es apropiado promocionar un nodo
Entonces Nuevo-nodo:= PromocionarNodo (Instancia,Nodo);
Devolver COBWEB (Instancia,Nodo)
Si no, Devolver COBWEB (Instancia,MejorNodo) }
Agrupamiento
Ejemplo COBWEB
Reconocimiento de caracteres (OCR)
Identificar letras a partir de 20 fuentes, con distorsiones aleatorias
Parmetros numricos extrados de las imgenes
x-box y-box w idth high onpix x-bar y-bar x2bar y2bar xybar x2ybar xy2bar x-ege xegvy y-ege yegvx letter
3
11
5
8
3
13
4
5
3
12
1
8
2
6
4
9
A
2
4
4
3
3
9
7
2
6
11
4
7
4
7
5
9
B
4
6
5
4
3
6
7
5
6
11
8
13
2
10
3
9
C
4
10
6
7
2
9
4
3
2
8
1
8
3
7
3
8
A
3
4
5
3
3
8
7
2
6
11
5
7
2
8
4
9
B
5
5
6
8
2
6
7
7
10
8
6
15
1
9
4
9
C
3
5
5
3
2
6
2
2
2
5
2
8
2
6
3
6
A
3
6
4
4
3
11
6
3
6
11
3
7
2
8
4
11
B
4
9
5
6
4
5
8
7
6
9
8
14
2
10
4
10
C
4
10
7
7
2
8
7
3
0
7
0
8
3
7
2
8
A
9
14
7
8
4
9
6
6
6
11
4
9
6
7
7
10
B
3
10
5
7
3
4
9
6
6
6
8
14
1
8
4
10
C
5
9
7
7
5
8
3
1
2
6
2
7
3
5
4
7
A
2
7
3
5
2
6
6
9
7
6
7
7
2
8
8
10
B
8
13
5
8
2
8
6
7
7
12
5
9
2
10
5
9
C
Agrupamiento
Ejemplo (cont)
1. A
2. B
3. C
2. B
1. A
3. C
4. A
1. A
4. A
2. B
5. B
1. A
4. A
2. B
5. B
3. C
Agrupamiento
6. C
3. C
Ejemplo (cont)
2. B
5. B
1. A
4. A
7. A
8.B
9. C
3. C
Agrupamiento
6. C
Ejemplo (cont)
1. A
11. B
4. A
2. B
9. C
12. C
5. B
7. A
10. A
13. A
Agrupamiento
14. B
15. D
8.B
3. C
6. C
Outlook
Temp.
Humidity
Windy
Sunny
Hot
High
False
Sunny
Hot
High
True
Overcast
Hot
High
False
Rainy
Mild
High
False
Rainy
Cool
Normal
False
Rainy
Cool
Normal
True
Overcast
Cool
Normal
True
Sunny
Mild
High
False
Sunny
Cool
Normal
False
Rainy
Mild
Normal
False
Sunny
Mild
Normal
True
Overcast
Mild
High
True
Overcast
Hot
Normal
False
Rainy
Mild
High
True
39
Outlook
Temp.
Humidity
Windy
Sunny
Hot
High
False
Sunny
Hot
High
True
Overcast
Hot
High
False
Rainy
Mild
High
False
Rainy
Cool
Normal
False
Rainy
Cool
Normal
True
Overcast
Cool
Normal
True
Sunny
Mild
High
False
Sunny
Cool
Normal
False
Rainy
Mild
Normal
False
Sunny
Mild
Normal
True
Overcast
Mild
High
True
Overcast
Hot
Normal
False
Rainy
Mild
High
True
40
5
Merge best host
and runner-up
3
Consider splitting the best host if
merging doesnt help
Final hierarchy
41
42
43
0.05
p(a)
0.04
0.03
0.02
0.01
10
20
30
a
40
50
60
Algoritmo EM
Se determina el nmero de grupos a ajustar: k
En cada grupo, parmetros de las distribuciones de cada atributo
pi, i , i i=1...k
Ej.: 2 grupos (A, B) y un atributo: 5 parmetros
2
f (x)
2 A
2
A
Agrupamiento
Algoritmo EM
Condicin de parada:
f ( x i | A)p A f ( x i | B)p B
i 1
Extensin:
Ejemplo
300 datos procedentes de dos distribuciones (no conocidas)
Inicializacin:
Agrupamiento
-10
10
20
30
40
50
60
70
Ejemplo
0.045
0.045
Iteracin 2
pA = 0.57; mA =30.68;
sA =15.0299
pB = 0.42; mB =14.61
sB = 7.23
0.04
0.035
0.03
0.025
0.02
0.035
0.03
0.025
0.02
0.015
0.015
0.01
0.01
0.005
0.005
0
-20
-10
10
20
30
40
50
60
70
0.045
0
-20
-10
10
20
30
40
50
60
70
0.045
Iteracin 15
pA = 0.33; mA =39.0;
sA =14.7
pB = 0.67; mB =16.37
sB = 6.75
0.04
0.035
0.03
0.025
0.02
0.035
0.03
0.025
0.02
0.015
0.01
0.01
0.005
0.005
-10
10
20
Agrupamiento
30
40
50
60
70
Iteracin 30
pA = 0.2; mA =49.2;
sA =7.1
pB = 0.8; mB =17.54
sB = 7.54
0.04
0.015
0
-20
Iteracin 5
pA = 0.45; mA =33.42;
sA =16.38
pB = 0.55; mB =16.05
sB = 6.1
0.04
0
-20
-10
10
20
30
40
50
60
70
Ejemplo
Agrupamiento con diferentes rangos y varianzas en los atributos:
c1=[0;-10];c2=[0;10];c3=[-5;0];c4=[5;0]; 100 muestras de cada distribucin
x1=x2=10; y1=y2=1;
15
x3=x4=1; y3=y4=3;
10
y
0
-5
-10
-15
-30
Agrupamiento
-20
-10
10
20
30
Agrupamiento
Salida EM
c1=[0;-10];c2=[0;10];c3=[-5;0];c4=[5;0]; 100 muestras de cada distribucin
x1=x2=10; y1=y2=1;
x3=x4=1; y3=y4=3;
Number of clusters selected by cross validation: 4
Cluster: 0 Prior probability: 0.2487
Attribute: X
Normal Distribution. Mean = 4.9001 StdDev = 1.0596
Attribute: Y
Normal Distribution. Mean = 0.7223 StdDev = 3.0122
Agrupamiento
Attribute: X
Normal Distribution. Mean = -5.1877 StdDev = 0.9635
Attribute: Y
Normal Distribution. Mean = -0.2764 StdDev = 3.1796
Nmero de clusters, k?
Valor k que minimiza distancia a los centros de
clusters con validacin cruzada
Utilizacin de penzliacin en la distancia a los
datos de entranamiento (criterio MDL)
Aplicar k-medias recursivamente con k = 2 y usar
criterio de parada (eg. based on MDL)
Semillas de subclusters en la direccin de mayor
varianza en el cluster (un sigma en cada direccin desde
el centro del cluster padre)
Agrupamiento
Aprendizaje semisupervisado
Semisupervised learning: utilizar datos etiquetados
y no etiquetados
Objetivo: mejorar la clasificacin
Clustering y clasificacin
Idea: nave Bayes sobre ejemplos etiquetados y
despus EM
1. Constuir modelo nave Bayes con datos etiquetados
2. Etiquetar datos no etiquetados con probabilidaes
(expectation step)
3. Entrenar nuevo modelo nave Bayes con todos los
datos (maximization step)
4. Repetir 2 y 3 hasta convergencia
Clustering y clasificacin
Aplicado con xito en textos
Ciertas frases son indicativas de clases
Algunas frases ocrren solo en textos no
etiquetados, otras en los dos