You are on page 1of 82

ESMA 6835 Mineria de

Datos
CLASE 15:
Unsupervised classification, Clustering


Dr. Edgar Acuna
Departmento de Matematicas

Universidad de Puerto Rico- Mayaguez

math.uprrm.edu/~edgar

Introduccion
 La idea de analisis de conglomerados (“clustering” ) es
agrupar muestras (filas) o features (columnas) o ambos a la
vez, de acuerdo a la separación entre ellas determinada por
una medida de distancia dada, llamada medida de
dissimilaridad. Se supone que las clases a las que
pertenecen las muestras no son conocidas.

 También es conocido con el nombre clasificacion no
supervisado.
Cluster 4
 Para cada muestra (fila) existe un vector de mediciones
X=(X
1
,…X
G
).

 El objetivo es identificar grupos de muestras similares basado
en n mediciones observadas X
1
=x
1
,…., X
n
=x
n
.

 Por ejemplo si las X’s representan niveles de expression
obtenidos en microarreglos de tumores cancerosos uno podria
identificar las caracteristicas de las personas que tienen
distintos tipos de tumores.
 Cuando el numero de columnas es bastantes grande se pueden
formar tambien grupos de columnas con similar comportamiento y
en consecuencia se puede reducir la dimensionalidad que es muy
conveniente si se quiere usar luego un modelo para hacer
predicciones. Pues es mucho mas conveniente predecir con 10
features que con 100.

 También se puede aplicar conglomerados simultaneamente a filas
y columnas (Bi-clustering) (ver paper de Alon, et al, 1999, Getz et
al , 2000 y Lazaeronni y Owen, 2000)
Aspectos importantes en el analisis de conflomerados
i) Que features usar? ,
ii) Que medida de dissimilaridad usar?.
iii) Qué método o algoritmo de conglomerado usar?.
iv) Cuantos conglomerados se deben formar?
v) Cómo asignar las filas (o columnas) a los conglomerados?
vi) Cómo validar los conglomerados que se han formado?
Propiedades de medidas de
dissimilaridad
 No-negatividad: d(x,y) ≥ 0
 La distancia de una instancia asi mismo es 0,
d(x,x) = 0
 Simetria: d(x,y) = d(y,x)
 Desigualdad Triangular:
d(x,y) ≤ d(x,z) + d(z,y)

x y
z
Medidas de Dissimilaridad(variables continuas)
a) Distancia Minkowski o norma Lp.


Caso particulares:
 Distancia Euclideana: p=2,

 Distancia Manhattan o City-Block:

 Distancia Chebychev, p=·,

 La distancia ponderada Minkoswki, será:
p
M
i
p
i i i p
y x w D
/ 1
1
) ) ( ( ) (
¿
÷ =
=
y x,
p
M
i
p
i i p
y x D
/ 1
1
) ) ( ( ) ( ¿ ÷ =
=
y x,
¿
÷ =
=
M
i
i i
y x D
1
2
2
) ) ( (
¿
÷ =
=
M
i
i i
y x D
1
1
| |
| |
max
1
i i
M i
y x D ÷ =
s s
·
Medidas de Dissimilaridad (Cont)
b) Distancias basadas en formas cuadráticas.
Q=(Q
ij
) es una matriz cuadrada MxM definida positiva de
pesos entonces la distancia cuadrática entre x y y está dada por:


Si Q=V
-1
, V matríz de covarianza entre x y y se obtiene la distancia
Mahalanobis.
c) Distancia Camberra.


Si x
i
y y
i
son ambos ceros entonces el i-ésimo término de la suma se
considera como cero.
¿
=
+
÷
=
M
i
i i
i i
Can
y x
y x
y x D
1
| |
| |
) , (
¿¿
= =
÷ ÷ = ÷ ÷ =
M
i
M
j
j j ij i i
y x Q y x y x Q y x y x DQ
1 1
2 / 1
) ( ) ( )] ( )' [( ) , (
Medidas de dissimilaridad
(variables nominales)
Distancia Hamming. Sean x y y dos vectores de la misma
dimension y con valores en O={0,1,2,……..k-1}, entonces
la distancia Hamming (D
H
) entre ellos se define como el
número de entradas diferentes que tienen los dos
vectores. Por ejemplo si x=(1,1,0,0) y y=(0,1,0,1)
entonces D
H
=2.
 Tambien se pueden usar para variables no binarias.Por
ejemplo, si x=(0,1,3,2,1,0,1) y y=(1,1,2,2,3,0,2) entonces
DH(x,y)=4 .
 En el caso de variables binarias , la distancia Hamming,
la distancia L2 y la distancia L1 coinciden.
Medidas de similaridad (Variables continuas))
a) Medida de correlación:



Nota: 1-s(x,y) puede ser considerado como una medida de dissimilaridad
b) Medida de Tanimoto. Se define por


¿ ¿
¿
= =
=
÷ ÷
÷ ÷
=
M
i
M
i
i i
M
i
i i
y y x x
y y x x
y x r
1 1
2 2
1
) ( ) (
) )( (
) , (
|| |||| ||
) ( )' (
y y x x
y y x x
÷ ÷
÷ ÷
=
y x' y x
y x'
y x S
T
÷ +
=
2 2
|| || || ||
) , (
Tambien puede ser usada para variables nominales
Medidas de similaridad
(variables nominales)
i)La medida de Tanimoto. Sean X y Y dos vectors de longitud nx
y ny respectivamente. Sea que representa la
cardinalidad de , entonces la medida de Tanimoto se define
por


Es decir, la medida de Tanimono es la razón del número de
elementos que los vectores tienen en común entre el número
de elementos distintos. En el caso de variables binarias, la
medida de Tanimoto se reduce a


Donde a representa el número de posiciones donde los vectores
X y Y coinciden en tomar el valor 0, d representa el número
de coincidencias donde X y Y valen ambos 1. Mientras que c
y b representan el número de no coincidencias.

Y X Y X
Y X
n n n
n
·
·
÷ +
d b c a
d a
+ + +
+
) ( 2
Y X
n
·
ii) El coeficientes de coincidencias simple. Definido por


El problema de esta medida es que incluye a a en el numerador,
la cual indica ausencia de ambos factores.
iii) La medida de Jaccard-Tanimoto. Definida por


iv) La medida de Russel -Rao.


v) La medida de Dice-Czekanowski. Similar a la de Jaccard pero
asigna peso doble a las coincidencias. Es decir

d c b a
d a
+ + +
+
d c b
d
+ +
d c b a
d
+ + +
d c b
d
2
2
+ +
Librerias y funciones en R para hallar distancias
La libreria stats de R tiene una funcion dist que calcula la matríz
distancia de una matríz de datos usando las distancias
Euclideana, Manhattan, Chebychev, Camberra, Mimkowski y
binary..
Librería(stats)
x =matrix(rnorm(100), nrow=5)
dist(x)
dist(x, method=”manhattan”,diag = TRUE)
dist(x, method=”maximum”,upper = TRUE)
# Ejemplo de distancia Camberra entre dos vectores
x <- c(0, 0, 1, 1, 1, 1)
y <- c(1, 0, 1, 1, 0, 1)
dist(rbind(x,y), method="canberra")
La libreria cluster de R tiene una función daisy que calcula la
matriz distancia de una matriz de datos usando solamente
las distancias euclideana y manhattan y considerando ademas
distintos tipos de variables mediante el uso del coeficiente de
Gower .

La función cor de R calcula la matríz de correlaciones entre las
columnas de una matríz y

la función plot.cor de la librería sma permite hacer un “heatmap”
de las correlaciones.
Plot de la matríz de corrrelaciones (sonar)
 Sonar, tiene 60 columnas
y 208 filas.

 La parte roja de la grafica
indica que la correlación es
bien alta y positiva, la parte
verde indica que es bien alta
pero negativa y la parte negra
indica que la correlación es
cerca de cero.
plot de correlaciones de sonar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
1234567891
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
Distancias entre clusters
Despues de elegir la medida de similaridad se transforma la
matriz n x p en una matriz distancia o de dissimilaridad
D = (d
ij
) de orden n x n para las n muestras a ser agrupadas.
Basado en esta matriz se debe determinar una medida de
distancia entre dos conglomerados (clusters) cualesquiera.
Entre estas medidas están:
Linkage simple: o(S,T)=min
{xeS,yeT}
d(x,y)
Linkage completo: o(S,T)=max
{xeS,yeT}
d(x,y)
Linkage promedio:


Donde |S|, y |T| representan la cardinalidad de S y T.
Linkage centroide: o(S,T)=
Donde y representan los cenroides de S y T
respectivamente
¿
e e
= c
T y S x
y x d
T S
T S
,
) , (
| || |
1
) , (
) , ( y x d
x y
Median linkage: o(S,T)=median
{xeS,yeT}
d(x,y)
Linkage de Mc Quitty:

Linkage de Ward:

Aqui se junta el par de grupos que produce la
varianza mas pequena en el grupo juntado.
¿ ¿
e e
+
+
= c
T y S x
y y d x x d
T S
T S ) , ( ) , ( [
| | | |
1
) , (
¿ ¿
e e
+ = c
T y S x
y y d x x d T S ) , ( ) , ( ) , (
2 2
Tipos de Algoritmos para Conglomerados
(“Clustering”)
I. Métodos de particionamiento
El conjunto de datos es particionado en un número pre-
especificado de conglomerados K, y luego iterativamente
se va reasignando las observaciones a los conglomerados
hasta que algún criterio de parada (función a optimizar) se
satisface (suma de cuadrados dentro de los conglomerados
sea la más pequeña).
Ejemplos: K-means, PAM, CLARA, SOM, Conglomerados
basados en modelos de mezclas gausianas,
Conglomerados difusos.
II. Metodos Jerárquicos.
En estos algoritmos se generan sucesiones ordenadas
(jerarquias) de conglomerados. Puede ser juntando cluster
pequenos en mas grande o dividiendo grandes clusters en
otros mas pequenos. La estructura jerárquica es representada
en forma de un árbol y es llamada Dendograma. Se dividen
en dos tipos:
Algoritmos jerárquicos aglomerativos (bottom-up,
inicialmente cada instancia es un cluster).AGNES
Algoritmos jerárquicos divisivos (top-down, inicialmente
todas las instancias estan en un solo cluster. DIANA.

1-Algoritmo k-means (MacQueen, 1967).
El objetivo es minimizar la dissimiliridad de los elementos dentro de cada
cluster y maximizar la disimilaridad de los elementos que caen en
diferentes clusters.
INPUT: Un conjunto de datos S y k número de clusters a formar;
OUTPUT: L una lista de los clusters en que caen las observaciones de
S.
1. Seleccionar los centroides iniciales de los K clusters: c
1
, c
2
, ..., c
K
.
2. Asignar cada observación x
i
de S al cluster C(i) cuyo centroide c(i)
está mas cerca de x
i
. Es decir, C(i)=argmin
1sksK
||x
i
-c
k
||
3. Para cada uno de los clusters se recalcula su centroide basado en los
elementos que están contenidos en el cluster y minimizando la suma
de cuadrados dentro del cluster. Es decir,


Ir al paso 2 hasta que se consiga convergencia.




¿ ¿
÷ =
= =
K
k k i C
k i
WSS
1 ) (
2
|| || c x
K-Means
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
K=2
Escoger
arbitrariamente K
instances como los
centroides
Asignar
cada
instancia
al cluster
mas
cercano.
Actualizar
los
centroides
Actualizar
los
centroides
reasignar reasignar
Alternativas para los k centroides iniciales
 Usando las primeras k bservaciones
 Eligiendo aleatoriamente k observaciones.
 Tomando cualquier partición al azar en k clusters
y calculando sus centroides.

Características del Algoritmo k-means
 No se satisface el criterio de optimizacion globalmente,
solo produce un óptimo local.

 El algoritmo de k-means es computacionalmente rápida.

 Puede trabajar bien con datos faltantes (missing values).

 Es sensible a “outliers”.
R y la función kmeans
La librería mva de R tiene la función kmeans que ejecuta el
algoritmo kmeans.

Ejemplo: Consideremos conjunto de datos bupa (6 variables
predictoras y 345 observaciones).

> kmeans(bupa[,1:6],2)
> kmeans(bupa[,1:6],3)
> #K-means eligiendo como centros iniciales las observaciones10 y
100 de Bupa
> medias<-bupa[c(10,100),1:6]
> kmeans(bupa[,1:6],medias)
Particionamiento alrededor de medoides (PAM)
Introducido por Kauffman y Rousseauw, 1987.
MEDOIDES, son instancias representativas de los clusters que se
quieren formar.
Para un pre-especificado número de clusters K, el procedimiento
PAM está basado en la búsqueda de los K MEDOIDES,
M = (m
1
, . . . ,m
K
) de todas las observaciones a clasificar

Para encontrar M hay que minimizar la suma de las distancias de
las observaciones a su mas cercano Medoide.


d es una medida de dissimilaridad

¿
=
i
k i k M
m x d M ) ( min min arg *
,
k-Medoides

0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
Total Cost = 20
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
K=2
Arbitrariam
ente
escoger k
instances
como
medoides
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
Asignar
las
instancias
restantes
a su mas
cercano
medoide.
Seleccionar al azar una
instancia
nonmedoide ,O
ramdom
Calcular el
costo total
de swapping
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
Total Cost = 26
Swapping O
y O
ramdom
Si se mejora
la calidad
Hacer el loop
hasta que no
haya cambios
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
R y la función PAM
La función pam de la librería cluster encuentra los
conglomerados usando el particionamiento alrededor de
medoides.

Aplicaremos PAM al conjunto de datos bupa.
>pambupa=pam(bupa[,1:6],2,diss=F)

Generalmente los resultados son un poco mejores que el de
k- means.
Mapas auto-organizados (Self-orgamizing Maps,
SOM)(Kononen, 1988)
Son algoritmos de particionamiento que son restringidos al hecho
que los clusters pueden ser representados en una estructura
regular de dimensión baja, tal como un grid (los más usados son
los SOM en una y dos dimensiones).

Los clusters que son cercanos entre sí aparecen en celdas
adyacentes del grid. O sea, SOM mapea el espacio de entrada
de las muestras en un espacio de menor dimension en el cual la
medida de similaridad entre las muestras es medida por la
relación de cercanía de los vecinos.

Cada uno de los K clusters es representado por un objeto prototipo
Mi , i = 1,…K .

Mapas auto-organizados
(Self-orgamizing Maps, SOM)
En este método la posición de una observación en el espacio inicial de
entradas influye de alguna manera en su asignación a un conglomerado.

Se construye un plot en donde las observaciones similares son ploteadas
cercanas entre sí.

El algoritmo SOM es bastante similar a k-means
Un SOM es entrenado como una red neural.
El SOM puede ser considerado también como una técnica de reducción
de dimensionalidad y guarda relación con la técnica conocida como
escalamiento multidimensional (proceso de encontrar un conjunto de
puntos en un espacio multidimensional que corresponda a medidas de
similaridad entre objetos).
El algoritmo SOM considerando un grid rectangular
de dos dimensiones

Paso1-Seleccionar los numeros de filas (q
1
) y columnas (q
2
) en el grid. Luego habrá
K=q
1
q
2
clusters
Paso2. Inicializar el tamaño del parámetro de actualizacion (la tasa de aprendizaje en
terminos de redes neurales) o ( o=1) y el radio del grid (r=2)
Paso3. Inicializar los vectores prototipos M
j
, j c (1,…,q1) x (1,….,q2) mediante la
eleccion aleatoria de K instancias.
Paso4. Para cada observacion del conjunto de datos hacer los siguiente:
Identificar el vector índice j’ del prototipo Mj mas cercano a xi.
Identificar un conjunto S de prototipos vecinos de M
j’
. Es decir,
S={j: distancia (j ,j’)<r}

La distancia puede ser Euclideana o cualquiera otra
Actualizar cada elemento de S moviendo el correspondiente prototipo hacia x
i
:
M
j
÷M
j
+o(x
i
-M
j
) para todo j c S
Paso5. Disminuir el tamaño de o y r en una cantidad predeterminada y continuar
hasta alcanzar convergencia.
R y la función SOM
La función SOM de la librería class de B.
Ripley construye un SOM, al igual que la
libreria som. Aunque los resultados son
solamente visuales. De cada centroide
salen lineas que representan cada una
de las variables
Por ejemplo para el conjunto de datos bupa
>bupgr=somgrid(2,3,topo="hexa")
> sombupa=SOM(bupa[,1:6],bupgr)
> plot(sombupa)
> sombupa$codes
Otros software: Somtoolbox en Matlab,
Cluster por Eissen y Genecluster (MIT
Center por Genome Research). Este
ultimo muestra los elementos de cada
cluster
SOM usando la libreria SOM
Algoritmo jerárquicos
En la figura se muestra el
dendrograma del conjunto Bupa
obtenido usando la función
hclust para algoritmo
jerarquico aglomerativo de la
libreria mva.
> a=hclust(dist(bupa))
> plot(a)


Estos algoritmos generan sucesiones
anidadas de clusters que se pueden
visualizar con una estructura de arbol
llamado Dendrograma,
Dendrogramas
Los dendrogramas son fáciles de interpretar pero pueden conducir a
falsas conclusiones por las siguientes razones:
1) El dendograma correspondiente a un conglomerado jerárquico no es
único, puesto que por cada junte de clusters (merge) uno necesita
especificar que sub-árbol va a la derecha y cuál a la izquierda.
Por default la función hclust de la librería cluster ordena los
arboles de tal manera que los conglomerados más concentrados van
a la izquierda.
2) La estructura jerárquica del Dendrograma no representa con certeza
las verdaderas distancias entre los objetos distintos del conjunto de
datos.

El coeficiente de correlación cofenético puede ser usado para
medir cuan bien la estructura jerárquica del dendrograma
representa a las v erdaderas distancias. Se define como la
correlación entre las n(n - 1)/2 pares de dissimilaridades y sus
distancias cofenéticas del dendogramas. La función cophenetic
en la libreria mva calcula la distancia cofenéticas.

disbupa=dist(bupa[,1:6])
hbupa=hclust(disbupa, method=”ave”)
denbupa=cophenetic(hbupa)
cor(disbupa,denbupa)
La distancia cofenética da 0.915849


Ejemplo de un dendrograma y sus cortes
treebupa=as.dendrogram(hbupa)
bupita=cut(treebupa,h=100)
bupita=cut(treebupa, h=100)
> bupita
$upper
`dendrogram' with 2 branches and 4 members total, at height 176.9354
$lower
$lower[[1]]
`dendrogram' with 2 branches and 333 members total, at height 91.22225
$lower[[2]]
`dendrogram' with 2 branches and 3 members total, at height 64.38526
$lower[[3]]
`dendrogram' leaf '85', at height 0
$lower[[4]]
`dendrogram' with 2 branches and 8 members total, at height 62.8725

0
5
0
1
0
0
1
5
0
2
0
2
1
4
1
2
3
2
1
1
3
3
7
3
3
5
2
2
0
3
2
9
2
9
0
3
3
0
2
9
6
5
4
3
0
4
3
1
3
4
2
9
7
8
2
2
5
4
1
8
0
4
8
2
8
03
7
1
2
3
0
1
5
6
1
7
2
1
2
8
1
5
5
1
8
5
2
6
5
2
7
7
1
0
2
1
7
7
2
3
5
1
6
1
1
9
1
1
0
8
1
2
0
3
2
1
8
1
2
2
3
2
1
3
1
0
1
7
1
1
0
8
2
1
3
2
6
8
8
3
1
5
9
3
3
8
3
0
51
1
9
3
9
3
3
2
7
2
2
9
2
8
9
2
2
7
2
5
5
7
6
2
0
6
3
3
3
3
4
2
5
1
3
9
2
2
1
1
2
5
2
6
6
3
4
1
1
6
4
3
1
94
1
5
2
1
2
7
1
7
0
1
7
6
1
4
6
2
9
8
3
3
2
1
8
8
3
2
0
1
1
1
2
2
4
1
9
8
2
4
5
2
0
4
2
0
9
9
0
3
3
9
2
1
0
2
1
7
2
6
7
1
8
4
4
1
0
4
1
9
6
8
9
2
4
6
5
1
1
9
1
4
9
2
0
7
3
1
1
4
6
6
5
7
1
1
4
1
1
2
2
0
8
6
9
1
6
1
4
1
3
1
8
2
9
1
1
9
2
6
2
4
3
2
1
6
1
7
4
1
9
4
1
0
5
2
0
0
6
3
3
8
9
2
1
2
9
1
5
4
1
4
5
2
8
7
1
1
7
2
6
4
3
0
3
2
5
7
1
3
6
2
9
2
3
2
5
2
4
8
2
1
2
5
9
2
3
2
2
4
3
1
9
7
2
0
2
5
8
6
8
2
7
2
8
2
3
0
1
1
3
2
1
9
2
1
2
1
3
1
2
3
8
4
0
9
9
2
3
4
5
9
3
0
6
2
6
1
9
9
3
3
7
8
8
0
1
0
0
1
0
7
6
5
7
4
2
5
6
3
2
2
9
1
2
6
9
7
2
1
4
4
3
2
8
3
0
1
2
3
1
2
6
3
2
8
8
5
5
9
6
2
3
6
2
7
9
1
6
3
2
9
7
1
5
3
2
4
0
2
4
1
1
3
7
2
8
4
1
4
2
2
7
5
8
4
8
6
1
4
9
1
7
3
1
3
8
2
7
0
2
4
7
2
9
9
1
3
2
3
1
4
1
6
6
2
6
0
1
8
4
1
0
1
2
8
1
6
0
9
1
2
5
8
3
4
4
1
0
9
1
9
55
2
7
3
1
1
6
3
0
9
6
7
1
2
6
2
2
5
2
3
7
2
8
5
2
4
2
0
1
6
2
1
6
0
2
9
3
1
2
4
1
3
0
2
2
2
1
4
0
1
7
8
1
6
2
7
9
1
1
6
4
1
9
2
1
6
5
7
5
2
7
4
1
2
2
2
6
2
4
2
1
1
8
1
3
5
3
0
2
3
2
46
2
7
1
1
2
0
4
7
2
3
9
2
39
1
0
4
5
3
5
1
7
2
1
58
9
4
1
0
3
1
4
3
1
5
0
2
5
3
1
5
2
4
9
8
8
4
6
7
07
2
8
2
8
3
5
2
7
3
5
6
2
2
32
1
3
9
5
2
7
2
3
7
3
0
8
3
2
2
3
3
6
5
0
2
4
4
6
1
8
7
2
7
6
1
0
6
2
2
3
1
5
2
8
6
1
2
1
1
8
1
3
4
0
3
4
5
1
8
6
1
6
9
2
9
5
4
1
1
5
8
2
2
8
2
6
1
1
5
7
2
7
8
1
8
3
1
4
7
3
2
6
1
6
7
3
4
3
2
5
0
3
1
1
1
4
8
5
3
1
5
1
1
8
7
3
1
2
2
9
4
9
8
1
3
9
2
5
2
2
5
1
3
3
1
8
9
3
0
7
1
6
8
3
3
4
1
8
2
2
0
5
1
3
4
1
7
5
3
1
7
3
6
2
3
3
3
0
0
8
5
3
3
1
7
7
1
1
5
3
2
3
3
1
6
3
4
2
1
7
9
1
9
0
0
5
0
1
0
0
1
5
0
B
r
a
n
c
h

1
B
r
a
n
c
h

2
B
r
a
n
c
h

3
B
r
a
n
c
h

4
0
2
0
4
0
6
0
8
0
2
0
2
1
4
1
2
3
2
1
1
3
3
7
3
3
5
2
2
0
3
2
9
2
9
0
3
3
0
2
9
6
5
4
3
0
4
3
1
3
4
2
9
7
8
2
2
5
4
1
8
0
4
8
2
8
03
7
1
2
3
0
1
5
6
1
7
2
1
2
8
1
5
5
1
8
5
2
6
5
2
7
7
1
0
2
1
7
7
2
3
5
1
6
1
1
9
1
1
0
8
1
2
0
3
2
1
8
1
2
2
3
2
1
3
1
0
1
7
1
1
0
8
2
1
3
2
6
8
8
3
1
5
9
3
3
8
3
0
51
1
9
3
9
3
3
2
7
2
2
9
2
8
9
2
2
7
2
5
5
7
6
2
0
6
3
3
3
3
4
2
5
1
3
9
2
2
1
1
2
5
2
6
6
3
4
1
1
6
4
3
1
94
1
5
2
1
2
7
1
7
0
1
7
6
1
4
6
2
9
8
3
3
2
1
8
8
3
2
0
1
1
1
2
2
4
1
9
8
2
4
5
2
0
4
2
0
9
9
0
3
3
9
2
1
0
2
1
7
2
6
7
1
8
4
4
1
0
4
1
9
6
8
9
2
4
6
5
1
1
9
1
4
9
2
0
7
3
1
1
4
6
6
5
7
1
1
4
1
1
2
2
0
8
6
9
1
6
1
4
1
3
1
8
2
9
1
1
9
2
6
2
4
3
2
1
6
1
7
4
1
9
4
1
0
5
2
0
0
6
3
3
8
9
2
1
2
9
1
5
4
1
4
5
2
8
7
1
1
7
2
6
4
3
0
3
2
5
7
1
3
6
2
9
2
3
2
5
2
4
8
2
1
2
5
9
2
3
2
2
4
3
1
9
7
2
0
2
5
8
6
8
2
7
2
8
2
3
0
1
1
3
2
1
9
2
1
2
1
3
1
2
3
8
4
0
9
9
2
3
4
5
9
3
0
6
2
6
1
9
9
3
3
7
8
8
0
1
0
0
1
0
7
6
5
7
4
2
5
6
3
2
2
9
1
2
6
9
7
2
1
4
4
3
2
8
3
0
1
2
3
1
2
6
3
2
8
8
5
5
9
6
2
3
6
2
7
9
1
6
3
2
9
7
1
5
3
2
4
0
2
4
1
1
3
7
2
8
4
1
4
2
2
7
5
8
4
8
6
1
4
9
1
7
3
1
3
8
2
7
0
2
4
7
2
9
9
1
3
2
3
1
4
1
6
6
2
6
0
1
8
4
1
0
1
2
8
1
6
0
9
1
2
5
8
3
4
4
1
0
9
1
9
55
2
7
3
1
1
6
3
0
9
6
7
1
2
6
2
2
5
2
3
7
2
8
5
2
4
2
0
1
6
2
1
6
0
2
9
3
1
2
4
1
3
0
2
2
2
1
4
0
1
7
8
1
6
2
7
9
1
1
6
4
1
9
2
1
6
5
7
5
2
7
4
1
2
2
2
6
2
4
2
1
1
8
1
3
5
3
0
2
3
2
46
2
7
1
1
2
0
4
7
2
3
9
2
39
1
0
4
5
3
5
1
7
2
1
58
9
4
1
0
3
1
4
3
1
5
0
2
5
3
1
5
2
4
9
8
8
4
6
7
07
2
8
2
8
3
5
2
7
3
5
6
2
2
32
1
3
9
5
2
7
2
3
7
3
0
8
3
2
2
3
3
6
5
0
2
4
4
6
1
8
7
2
7
6
1
0
6
2
2
3
1
5
2
8
6
1
2
1
1
8
1
3
4
0
3
4
5
1
8
6
1
6
9
2
9
5
4
1
1
5
8
2
2
8
2
6
1
1
5
7
2
7
8
1
8
3
1
4
7
3
2
6
1
6
7
3
4
3
2
5
0
3
1
1
1
4
8
5
3
1
5
1
1
8
7
3
1
2
2
9
4
9
8
1
3
9
2
5
2
2
5
1
3
3
1
8
9
3
0
7
1
6
8
3
3
4
1
8
2
2
0
5
1
3
4
1
7
5
3
1
7
0
1
0
3
0
5
0
3
6
2
3
3
3
0
0
0
.
0
0
0
.
0
2
0
.
0
4
0
.
0
6
8
5
0
1
0
3
0
5
0
3
3
1
7
7
1
1
5
3
2
3
3
1
6
3
4
2
1
7
9
1
9
0
Heatmaps.
Son gráficas que muestran simultaneamente las
agrupaciones en conglomerados de columna y filas.
La función heatmap de la libreria mva permite hacer
heatmaps usando un gran número de tonalidades de
colores.
Ejemplo de heatmaps para Iris
Notar que solo las variables 2 y 3 determinan claramente
las 3 clases.
Algoritmo jerárquico aglomerativo
Suponiendo que tenemos una matriz de datos m x n.
Se empieza con m conglomerados si se desea formar grupos
de muestras (filas) o con n clusters si se quieren formar grupos
de variables (columnas).
En cada paso se juntan los cluster mas cercanos usando una
medida de distancia entre clusters (linkage)
Entre estas distancias están
Linkage promedio: promedio de las distancias de las
observaciones en cada cluster.
Linkage simple: la menor distancia entre las observaciones
de cada cluster
Linkage completo: la mayor distancia entre las observaciones
de cada cluster.
Ejemplo de Jerarquico Aglomerativo
En este caso usaremos la funcion agnes de la libreria cluster
bupagl<-agnes(bupa[,1:6],metric="euclidean",method="ward")
cutree(bupagl,k=2)

> table(cutree(bupagl,k=2))
1 2
62 283
> table(cutree(bupagl,k=3))
1 2 3
283 53 9
La función plot.agnes permite hacer un plot del dendrograma.
Pero no tiene la misma flexibilidad de las funciones en mva.
Métodos jerárquicos divisivos
Empieza con un solo cluster, que es aquel que contiene a
todas las muestras.
En cada paso se divide los clusters en dos subgrupos.
Son más lentos de calcular que los jeráquicos aglomerativos
A continuacion se muestra un ejemplo del método
jerarquico divisivo usando la función Diana de la libreria
cluster.
> bupadiv<-diana(bupa[,1:6],metric='euclidean')
> plot(bupadiv,which=2)
> bupadiv
Ejemplo usando Diana
> bupadiv=diana(bupa[,1:6],metric=
'euclidean')
> plot(bupadiv,which=2)
> bupadiv
> cutree(bupadiv,k=2)

> table(cutree(bupadiv,k=2))
1 2
33 312
> table(cutree(bupadiv,k=3))
1 2 3
25 8 312
1
4
2
2
7
3
3
1
0
7
3
4
2
5
1
3
9
2
2
1
1
2
5
2
6
6
7
6
2
0
6
8
0
1
5
2
3
3
3
1
2
7
1
6
4
3
1
9
3
4
1
2
3
4
1
4
6
6
3
1
1
9
1
4
9
8
9
2
4
65
1
5
7
1
1
4
9
0
1
9
9
1
1
2
1
9
4
1
9
6
1
0
0
1
9
8
2
0
4
2
0
91
6
6
9
1
8
4
4
1
0
4
2
1
0
2
1
7
2
6
7
1
1
9
2
6
2
2
2
2
2
0
8
1
2
4
1
4
1
3
1
8
1
0
5
2
0
0
1
7
4
3
3
9
1
1
1
2
0
2
1
41
2
3
2
1
1
3
3
7
3
2
9
2
9
2
6
8
3
2
1
1
0
8
2
1
3
1
7
1
1
9
3
3
1
0
4
3
1
2
2
8
3
2
1
6
2
1
3
3
7
3
0
8
9
5
2
7
2
3
0
1
9
3
3
2
7
3
2
6
2
2
3
2
2
9
1
4
0
9
9
2
3
6
2
7
9
2
9
7
5
9
2
6
0
7
2
1
4
4
2
6
9
2
6
3
4
2
5
0
2
4
4
6
1
8
7
2
7
6
2
8
8
3
2
2
3
3
6
8
2
4
8
2
8
0
1
8
0
5
4
3
0
4
3
1
32
9
6
2
9
0
3
3
0
5
8
8
2
3
1
0
3
5
6
2
2
3
2
8
3
7
1
0
1
7
2
1
5
3
5
2
8
5
2
7
3
1
5
2
4
9
2
4
5
2
0
71
9
5
4
6
7
0
1
1
8
1
4
3
1
5
0
2
5
3
2
7
0
1
4
0
1
7
8
1
3
2
3
1
4
2
4
7
2
9
9
1
4
9
2
8
5
3
4
4
8
9
4
4
5
1
2
1
0
9
1
1
6
3
0
9
2
4
2
3
7
6
2
1
6
0
2
9
3
2
0
1
1
3
0
1
3
7
2
8
4
2
4
1
1
5
3
2
4
0
6
7
1
2
6
2
2
5
2
7
3
2
1
2
5
9
2
4
8
3
2
5
3
2
8
2
6
7
8
3
0
6
6
5
7
4
2
5
6
9
1
2
5
82
1
2
6
0
1
0
1
2
8
1
8
4
8
6
1
3
8
1
7
3
1
4
2
2
3
1
1
3
1
2
3
8
2
7
5
1
6
3
1
6
6
1
8
42
3
22
2
4
6
4
7
2
3
9
1
2
0
1
6
5
1
3
5
2
4
2
1
1
6
4
7
9
1
6
2
7
5
2
7
4
2
2
69
1
9
2
9
2
6
3
2
7
1
3
0
2
3
2
4
1
4
5
2
8
7
3
0
3
1
5
4
2
7
1
3
6
2
9
2
2
5
7
1
9
7
2
0
2
5
5
9
6
6
8
5
8
1
1
7
2
6
43
8
1
2
9
3
0
1
1
3
2
1
9
2
8
2
1
0
6
3
1
5
2
4
3
3
7
1
2
3
0
1
7
0
1
7
6
1
7
7
9
7
2
5
4
1
4
6
2
9
8
2
2
9
2
8
9
2
2
8
2
6
5
1
0
2
2
3
5
2
7
7
1
2
8
1
5
5
1
8
5
1
5
6
1
7
2
2
5
0
1
2
1
3
4
0
1
4
8
1
8
1
1
4
7
2
6
1
1
5
7
2
7
8
1
9
1
1
08
1
2
0
3
2
1
81
6
1
1
8
8
3
2
0
3
3
2
1
5
8
2
5
5
1
5
9
3
3
8
3
0
5
2
2
0
3
3
54
1
1
8
3
2
8
6
1
6
9
2
9
5
1
8
6
3
4
5
3
1
2
2
5
1
3
3
1
6
7
3
4
3
5
3
1
5
1
3
1
1
1
7
5
1
8
7
7
7
2
0
5
1
6
8
3
3
4
9
8
1
8
2
1
3
9
2
5
2
1
8
9
3
0
7
2
9
43
6
3
0
0
1
3
4
3
1
7
2
3
3
8
5
1
1
5
3
2
3
1
7
9
1
9
0
3
1
6
3
4
2
3
3
1
0
5
0
1
0
0
1
5
0
2
0
0
2
5
0
3
0
0
Dendrogram of diana(x = bupa[, 1:6], metric = "euclidean")
Divisive Coefficient = 0.96
H
e
i
g
h
t
Comparación de métodos de particionamiento con
los métodos jerárquicos.
Los métodos de particionamiento tienen la ventaja de que
satisfacen un criterio de optimilidad aunque sea aproximadamente.
Desventajas: Necesitan un valor inicial del número de
clusters y toma mucho tiempo obtener los clusters.

Por otro lados los métodos jerárquicos tienen la ventaja que son
rápidos de calcular sobre todo el aglomerativo.
Desventaja: La rigidez que le da la estructura de árbol ( el llamado
factor de anidamiento). Es dificil corregir lo que se hizo antes.
Determinación del número de clusters.
Indices Internos. Estadisticas basados en las sumas de cuadrados
entre clusters y dentro de clusters. El número de clusters K es
aquel que maximiza o minimiza uno de estos indices.(Milligan,
GW& Cooper, MC). Entre los principales estan el indice de
Dunn, el Indice de Davies-Bouldin.
Ancho de silueta promedio.
Métodos basado en modelos de mezclas gaussianas.
Determinar el número de componentes de la mezcla es lo mismo
que determinar el número de clusters.
Se usan los criterios de AIC ( Criterio de Información de Akaike)
y BIC ( Criterio de Información Bayesiano).
 Indice de Dunn (1974). La idea es identificar los clusteres
que estan bien compactos y bien separados de los demas.
Dada una particion de clusters donde ci representa el i-
esimo cluster de la particion, se define el indice de Dunn por




donde d(c
i
,c
j
) – es la distancia entre los clusters c
i
, y c
j
y d'(c
k
)
representa la distancia intracluster del cluster c
k
.
En numero optimo de clusters es aquel que maximiza D.
La libreria fpc tiene una funcion cluster.stats que calcula el
indice de Dunn.
}}
) ( ' ( max
) , (
{ {min min
1
1 1
k n k
j i
n i j n i
c d
c c d
D
s s
s = s s s
=
Silhouette plots
Los plots siluetas, (Rousseeuw 1987) pueden ser usados para:
 Seleccionar el número de clusters.
 Evaluar cuan bien han sido asignados las observaciones en
los clusters.
El ancho de la silueta (silhouette width) de la i-ésima
observación es definida por: sil
i
= (b
i
- a
i
)/ max(a
i
, b
i
)
Donde, a
i
denota la distancia promedio entre la observación i y
todas las otras que están en el mismo cluster de i, y b
i
denota la
distancia promedio minima de i a las observaciones que están en
otros clusters.
Características de los Silhouette plots
Las observaciones con ancho de silueta grande están bien
agrupadas mientras aquellas con ancho de silueta baja tienden a
estar ubicada en el medio de dos clusters.

Para un número de clusters dado K, el ancho de silueta promedio
de la configuracion de conglomerados será simplemente el
promedio de sil
i
sobre todas las observaciones. Es decir,


Kaufman y Rousseeuw (1990) sugirieron estimar el número
óptimo de cluster K para el cual el ancho de silueta promedio
sea la mayor posible.
n
sil
s
i
i
¿
=
Ejemplo de los Silhouette plots
Ejemplo con el conjunto de datos Bupa y el metodo
jerarquico aglomerativo
> agbupa=agnes(dist(bupa[,1:6]),method=“ward”)
>a=silohuette(cutree(agbupa,k=2),daisy(bupa[,1:6]))
>b=silohuette(cutree(agbupa,k=3),daisy(bupa[,1:6]))
>c=silohuette(cutree(agbupa,k=4),daisy(bupa[,1:6]))
>par(mfrow=c(1,3))
>plot(a,”main=“”)
>plot(b,”main=“”)
>plot(c,”main=“”)
Mirando el plot k=2 clusters es lo recomendado.



Silhouette width s
i
-0.2 0.0 0.2 0.4 0.6 0.8 1.0
Average silhouette width : 0.56
n = 345
2 clusters C
j
j : n
j
| ave
i Cj
s
i
1 : 283 | 0.65
2 : 62 | 0.11
Silhouette width s
i
-0.2 0.0 0.2 0.4 0.6 0.8 1.0
Average silhouette width : 0.52
n = 345
3 clusters C
j
j : n
j
| ave
i Cj
s
i
1 : 283 | 0.59
2 : 53 | 0.18
3 : 9 | 0.5
Silhouette width s
i
-0.2 0.0 0.2 0.4 0.6 0.8 1.0
Average silhouette width : 0.36
n = 345
4 clusters C
j
j : n
j
| ave
i Cj
s
i
1 : 40 | 0.36
2 : 243 | 0.41
3 : 53 | 0.14
4 : 9 | 0.5
PLOTS SILUETAS PARA CLUSTERING DE BUPA
Ejemplo de los Silhouette plots
Ejemplo con el conjunto de datos Bupa y
el metodo PAM

silicom=rep(0,9)
for(i in 1:9){
silicom[i]=pam(vehicle[,1:18],i+1,
diss=F,stand=T)$silinfo$avg.width}

plot(2:10,silicom)
plot(2:10,silicom,type="o",xla="clusters",
main="plots de siluetas")
Aqui tambien salen 2 clusters.



2 4 6 8 10
0
.
2
0
0
.
2
5
0
.
3
0
0
.
3
5
plots de siluetas
clusters
s
i
l
i
c
o
m
.
Indices externos
Supongamos que tenemos dos particiones de n objetos x
1
, ..., x
n
: la
partición en R clases U = {u
1
, ..., u
R
} y la partición en C-clases =
V={v
1
, ...,v
C
}, por lo general una de ellas conocida de antemano.. Los
indices externos de concordancia entre las particiones pueden ser
expresados en término de una tabla de contingencia con entradas nij
que representa el número de objetos que están en ambos clusters u
i
and v
j
, i = 1,...,R, j = 1,...,C . Sean

y
que denotan las sumas de filas y columnas de la tabla de
contingencia. Sea
.
Dada las dos particiones U y V
a: numero de pares objetos que estan en el mismo cluster tanto en U
como en V.
c: numero de pares de objetos que estan en el mismo cluster en V pero
no en U.

b: numero de pares de objetos que estan en el mismo cluster en U pero
no en V.

d: numero de pares de objetos que estan en diferentes clusters tanto
en U como en V.
m
1
=a+b = numero de pares de objetos en el mismo cluster en U.

m
2
=a+c= numero de pares de objetos en el mismo cluster en V.
¿
=
|
|
.
|

\
|
R
i
i
n
1
.
2
¿
=
|
|
.
|

\
|
C
j
j
n
1
.
2
Ejemplo
a= 4, b =2, C=3, d=6, m
1
=6, m
2
=7, Z=14
1
2
3
4
5
6
P
1
P
2
1
2
3
4
5
6
Notar que M=a+b+c+d=
|
.
|

\
|
2
n
 Rand(1971)

 Jaccard

 Fowlkes and Mallows
|
|
.
|

\
|
+
=
|
|
.
|

\
|
+ ÷
+ =
¿ ¿
= =
2 2
)) )( 2 / 1 ( (
1
11 00
1
2
.
1
2
.
n
c c
n
n n z
Rand
C
j
j
R
i
i
11 10 01
11
1
2
.
1
2
.
) (
c c c
c
n Z n n
n z
Jac
C
j
j
R
i
i
+ +
=
÷ ÷ +
÷
=
¿ ¿
= =
2 1
11
2 / 1
1
.
1
.
]
2 2
[
) )( 2 / 1 (
m m
c
n n
n z
FM
C
j
j
R
i
i
=
|
|
.
|

\
|
|
|
.
|

\
|
÷
=
¿ ¿
= =
Un valor de Rand, Jaccard y FM cercano a 1 indica un
buen agrupamiento.

La medida I de Hubert y Arabie (1985)
Sean las variables aleatorias:
X(i,j)=1 si los objetos i y j caen en el mismo cluster de la
particion U e igual a 0 en otro caso.
Y(i,j)=1 si los objetos i y j caen en el mismo cluster de la
particion V e igual a 0 en otro caso.
Se define la medida I de Hubert como:




¿¿
= I ) , ( ) , (
1
j i Y j i X
M
Para obtener valores de I entre -1 y 1 se prefiere
normalizarlo y se obtiene

Y X
S S Y j i Y X j i X M / )] ) , ( ( ) ) , ( ( ) / 1 [( ÷
¿¿
÷ = I
Que es equivalente a:



¿¿
÷ =
Y X
S S Y X M j i Y j i X H / ] / ) , ( ) , ( [
Pero, usando el hecho que X y Y son binomiales,
se tiene que

M
n
X
i
R
i
)
2
(
.
1
¿
=
=
M
n
Y
J
C
J
)
2
(
.
1
¿
=
=
Que son las probabilidades de que los objetos i y j
caigan en los mismos clusters de las particiones U y
V respectivamente
Similarmente,

)
2
1 (
2
) 1 (
1
.
1
.
M
n
M
n
X X S
R
i
i
R
i
i
X
¿
|
.
|

\
|
÷
¿
|
.
|

\
|
= ÷ =
= =
)
2
1 (
2
) 1 (
1
.
1
.
M
n
M
n
Y Y S
C
j
j
C
j
j
Y
¿
|
.
|

\
|
÷
¿
|
.
|

\
|
= ÷ =
= =
Finalmente,

M
n Z
M
n n
M
n
M
j i Y j i X
R
i
C
j
ij
R
i
C
j
ij
R
i
C
j
ij
2 2
2
) , ( ) , (
1 1 1 1
2
1 1
÷
=
¿¿ ¿¿
÷
=
¿¿
|
.
|

\
|
=
¿¿
= = = =
= =
Sustituyendo, en la forma de I normalizada se tiene

)
2
)(
2
(
2 2
2 2
) ( * 5 .
1
.
1
.
1 1
. .
1 1
. .
¿ |
.
|

\
|
÷
¿ |
.
|

\
|
÷
¿ ¿ |
.
|

\
|
|
.
|

\
|
¿ ¿ |
.
|

\
|
|
.
|

\
|
÷ ÷
=
= = = =
= =
C
j
j
R
i
i
R
i
C
j
j i
R
i
C
j
j i
n
M
n
M
n n
n n
n z M
H

Ahora usando las identidades
¿
|
.
|

\
|
= +
=
R
i
i
n
b a
1
.
2
¿
|
.
|

\
|
= +
=
C
j
j
n
c a
1
.
2
y a= (z-n)/2, se tiene la siguiente formula simplificada
de H
)) ( ))( ( )( )( (
) )( (
c a M b a M c a b a
c a b a Ma
H
+ ÷ + ÷ + +
+ + ÷
=
>agbupa=agnes(dist(bupa[,1:6]),method="ward")
>a=cutree(agbupa,k=2)
> mexter(bupa[,7],a)
$rand
[1] 0.4990563

$jaccard
[1] 0.4163361

$fandm
[1] 0.5954606

$hubert
[1] -0.01218121


> agbupa=agnes(dist(bupa[,1:6]),method="complete")
> c=cutree(agbupa,k=2)
> mexter(bupa[,7],c)
$rand
[1] 0.5103809
$jaccard
[1] 0.5091815
$fandm
[1] 0.7124241
$hubert
[1] -0.01026507
> table(c)
c
1 2
344 1

 FOM=Figure of Merit (Yeung and
Ruzzo,2001)
 The Gap Statistics (Tibshirani,2000).
 Clest (Dudoit & Fridlyand, 2002)
Algoritmo Clest (Dudoit & Fridlyand, 2002).
Estima el número de conglomerados basado en la precision de la
prediccion.
Para cada número de clusters k, se divide al azar B veces el conjunto de
datos original en dos conjuntos que no se superponen.
Uno de ellos Lb forma la muestra de entrenamiento y el otro,
Tb forma la muestra de prueba , b = 1, . . . , B.
-Aplicar el algoritmo de conglomerados (se recomienda el PAM) a las
observaciones en el conjunto de entrenamiento Lb.
– Construir un clasificador ( puede ser LDA, k-nn, CART, etc) usando
las
etiquetas obtenidas del método de conglomerados.
-Aplicar el clasificador al conjunto de prueba Tb.
-Aplicar el algoritmo de conglomerados al conjunto de prueba Tb.
-Calcular un score s
k,b
comparando las etiquetas del conjunto
de prueba obtenidas por conglomerados y por predicción
del clasificador. Estos scores se obtienen aplicando indices
externos como RAND, Jaccard o Fowkles y Mallows
(FM)
-El score de similaridad para los k clusters es la
mediana de los B scores de similaridad tk =
median(s
k,1
, · · · , s
k,B
).
-El número de clusters K es estimado comparando el
score observado tk con su valor esperado
asumiendo cierta distribución de Referencia.

El programa Machaon (2004)
 Nadia.Bolshakova (CS Department,
Trinity College, UK)
Cluster Validty Tool for gene Expression
data
Model-Based Clustering ( Fraley
y Raftery, JASA 2002)
Cluster analysis is the automatic numerical grouping of
objects into cohesive groups based on measured
characteristics. It was invented in the late 1950s by Sokal,
Sneath and others, and has developed mainly as a set of
heuristic methods. More recently it has been found that
basing cluster analysis on a probability model can be
useful both for understanding when existing methods are
likely to be successful, and for suggesting new and better
methods. It also provides answers to several questions
that often arise in practice but are hard to answer with
heuristic methods: How many clusters are there? Which
clustering method should be used? How should we deal
with outliers?
Mixture Models
La distribucion Normal
Multivariada
El criterio BIC (Bayesian Information
Criiterio) para seleecionar el mejor
modelo
Uso de Mclust
Los siguientes modelos son comparados en 'Mclust':

"EII": spherical, equal volume
"VII": spherical, unequal volume
"EEI": diagonal, equal volume, equal shape
"VVI": diagonal, varying volume, varying shape
"EEE": ellipsoidal, equal volume, shape, and orientation
"VVV": ellipsoidal, varying volume, shape, and
orientation
El comportamiendo de los modelos dependen de la
descomposicion espectral de las matrices de covarianzas

> a=Mclust(bupa[,1:6],1,10)
> a
best model: diagonal, varying volume and shape with 3 groups

averge/median classification uncertainty: 0.073 / 0.021

> a$bic
VVI,3
-14849.09
> table(a$class)

1 2 3
54 132 159

> a$mu
1 2 3
[1,] 91.664438 90.427333 89.348818
[2,] 74.955187 73.977292 64.234641
[3,] 58.914106 29.433324 20.519567
[4,] 39.658591 24.257670 19.322190
[5,] 99.944124 36.716947 16.416432
[6,] 6.149999 3.735032 2.184232
>

 > a$BIC
 EII VII EEI VVI EEE VVV
 1 -18303.43 -18303.43 -15988.99 -15988.99 -15568.76 -15568.76
 2 -17202.79 -16598.66 -15516.20 -15013.02 -15413.77 -14963.88
 3 -16838.22 -16197.67 -15415.00 -14849.09 -15454.39 -14952.60
 4 -16678.31 -16009.19 -15413.34 NA -15449.75 -15069.52
 5 -16554.48 -15886.21 -15222.57 NA -15355.04 NA
 6 -16246.93 -15869.42 -15161.92 NA -15234.79 NA
 7 -16247.13 -15757.33 -15158.05 NA -15276.59 NA
 8 -16110.88 -15715.53 -15195.28 NA -15278.72 NA
 9 -16111.35 -15703.37 -15200.99 NA -15325.55 NA
 10 -16127.09 -15687.65 -15232.80 NA -15238.77 NA

1
1
1
1
1
1 1
1 1 1
2 4 6 8 10
-
1
8
0
0
0
-
1
7
0
0
0
-
1
6
0
0
0
-
1
5
0
0
0
number of clusters
B
I
C
2
2
2
2
2 2
2
2 2 2
3
3
3 3
3
3 3
3 3
3
4
4
4
5
5
5 5
5
5
5 5
5
5
6
6 6
6
V1
20 60 100 140 20 40 60 80 0 5 10 15 20
7
0
9
0
2
0
8
0
1
4
0
V2
V3
0
1
0
0
2
0
6
0
V4
V5
0
1
5
0
70 80 90 100
0
1
0
2
0
0 50 100 150 0 100 200 300
V6