esma 6835 mineria de datos clase 15: unsupervised classification, clustering dr. edgar acuna...

Post on 23-Jan-2016

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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=(X1,…XG).

El objetivo es identificar grupos de muestras similares basado en n mediciones observadas X1=x1,…., Xn=xn.

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á: pM

i

piiip yxwD /1

1))(()(

yx,

pM

i

piip yxD

/1

1))(()(

yx,

M

iii yxD

1

22 ))((

M

iii yxD

11 ||

||max1

iiMi

yxD

Medidas de Dissimilaridad (Cont)

b) Distancias basadas en formas cuadráticas.Q=(Qij) es una matriz cuadrada MxM definida positiva depesos 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 xi y yi son ambos ceros entonces el i-ésimo término de la suma seconsidera como cero.

M

i ii

iiCan yx

yxyxD

1 ||

||),(

M

i

M

jjjijii yxQyxyxQyxyxDQ

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 ={0,1,2,……..k-1}, entonces la distancia Hamming (DH) 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 DH=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

iii

M

iii

yyxx

yyxx

yxr

1 1

22

1

)()(

))((

),(||||||||

)()'(

yyxx

yyxx

yx'yx

yx'yxST

22 ||||||||),(

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.

YXYX

YX

nnn

n

dbca

da

)(2

YXn

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

dcba

da

dcb

d

dcba

d

dcb

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 lamatriz 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 lascolumnas 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

123456789

101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960

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

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 = (dij ) 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: (S,T)=min{xS,yT}d(x,y)Linkage completo: (S,T)=max{xS,yT}d(x,y)Linkage promedio:

Donde |S|, y |T| representan la cardinalidad de S y T.Linkage centroide: (S,T)=Donde y representan los cenroides de S y T respectivamente

TySx

yxdTS

TS,

),(||||

1),(

),( yxd

x y

Median linkage: (S,T)=median{xS,yT}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.

TySx

yydxxdTS

TS ),(),([||||

1),(

TySx

yydxxdTS ),(),(),( 22

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: c1, c2, ..., cK.

2. Asignar cada observación xi de S al cluster C(i) cuyo centroide c(i) está mas cerca de xi. Es decir, C(i)=argmin1kK||xi-ck||

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 kiCkiWSS

1 )(

2|||| cx

K-Means

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 100

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 elalgoritmo kmeans.

Ejemplo: Consideremos conjunto de datos bupa (6 variablespredictoras 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 procedimientoPAM está basado en la búsqueda de los K MEDOIDES, M = (m1, . . . ,mK) de todas las observaciones a clasificar

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

d es una medida de dissimilaridad

i

kikM mxdM )(minminarg* ,

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

Arbitrariamente 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 ,Oramdom

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 Oramdom

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 deentradas influye de alguna manera en su asignación a un conglomerado.

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

El algoritmo SOM es bastante similar a k-meansUn SOM es entrenado como una red neural. El SOM puede ser considerado también como una técnica de reducciónde dimensionalidad y guarda relación con la técnica conocida comoescalamiento multidimensional (proceso de encontrar un conjunto de puntos en un espacio multidimensional que corresponda a medidas desimilaridad entre objetos).

El algoritmo SOM considerando un grid rectangular de dos dimensiones

Paso1-Seleccionar los numeros de filas (q1) y columnas (q2) en el grid. Luego habrá K=q1q2 clustersPaso2. Inicializar el tamaño del parámetro de actualizacion (la tasa de aprendizaje en terminos de redes neurales) ( =1) y el radio del grid (r=2)Paso3. Inicializar los vectores prototipos Mj, j (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 Mj’. 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: MjMj +(xi-Mj) para todo j SPaso5. Disminuir el tamaño de y r en una cantidad predeterminada y continuar hasta

alcanzar convergencia.

R y la función SOMLa 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$codesOtros 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 eldendrograma 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

050

100

150

20 214

123

211

337

335

220

329

290

330

296 54304

31342 9782 254

180 48 2803 71230

156

172

128

155

185

265

277

102

177

235

16119 11081 203

218

122

321

310

171

108

213

268 83159

338

305 1

193 93327

229

289

227

255 76206

33334 25139 221

125

266

341

164

319 4

152

127

170

176

146

298

332

188

320

111

224

198

245

204

20990 339

210

217

267 1844 104

196 89246 51191 49 20731 1466 57114

112

208 6916 141

318 29119

26243 216

174

194

105

20063 3892 129

154

145

287

117

264

303

257

136

292

325

24821 259

232

243

197

20258 6827 28230 113

219

212

131

238 4099 23459 30626 19933 7880 100

107 6574 25632 291

269 72144

328

301

231

263

28855 96 236

279

163

297

153

240

241

137

284

142

27584 86149

173

138

270

247

299

132

314

166

260

184

101

28160 91258

344

109

1955

273

116

30967 126

225

237

285 24201 62160

293

124

130

222

140

178

162 7911 64192

16575 27412 226

242

118

135

302

324 6

271

12047 23923 910 4535 17215 8 94103

143

150

25315 24988 4670 728 28352 7356 2232 1395 27237 308

322

33650 244 6187 276

106 22315

286

121

181

340

345

186

169

295 41158

228

261

157

278

183

147

326

167

343

250

311

14853 151

187

312

294 98139

25225 133

189

307

168

334

182

205

134

175

317 36233

30085 331 77115

323

316

342

179

190

050

100

150

Bran

ch 1

Bran

ch 2

Bran

ch 3

Bran

ch 4

020

4060

80

20 214

123

211

337

335

220

329

290

330

29654 304

313 4297 82254

18048 2803 71 230

156

172

128

155

185

265

277

102

177

235

161 19110 81 203

218

122

321

310

171

108

213

26883 159

338

305 1

193 93327

229

289

227

255 76206

33334 251 39221

125

266

341

164

3194

152

127

170

176

146

298

332

188

320

111

224

198

245

204

209 90339

210

217

267 1844 104

196 89246 51191 49207 31 1466 57114

112

208 6916 141

318 29119

26243 216

174

194

105

200 6338 92129

154

145

287

117

264

303

257

136

292

325

248 21259

232

243

197

202 58 6827 28230 113

219

212

131

23840 99234 59 30626 19933 7880 100

107 6574 25632 291

26972 144

328

301

231

263

288 5596 236

279

163

297

153

240

241

137

284

142

275 8486 149

173

138

270

247

299

132

314

166

260

184

101

281 6091 258

344

109

1955

273

116

30967 126

225

237

285 24201 62 160

293

124

130

222

140

178

162 7911 64192

165 75274 12226

242

118

135

302

3246

271

120 47 23923 910 4535 17215 894 103

143

150

25315 24988 4670 728 28352 7356 223 213 95272 37308

322

336 50244 6187 276

10622 315

286

121

181

340

345

186

169

29541 158

228

261

157

278

183

147

326

167

343

250

311

148 53151

187

312

294 98139

25225 133

189

307

168

334

182

205

134

175

317

010

3050

36 233

300

0.00

0.02

0.04

0.06

85

010

3050

331 77 115

323

316

342

179

190

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 gruposde muestras (filas) o con n clusters si se quieren formar gruposde variables (columnas). En cada paso se juntan los cluster mas cercanos usando una medida de distancia entre clusters (linkage)Entre estas distancias estánLinkage promedio: promedio de las distancias de lasobservaciones en cada cluster.Linkage simple: la menor distancia entre las observacionesde cada clusterLinkage completo: la mayor distancia entre las observacionesde cada cluster.

Ejemplo de Jerarquico Aglomerativo

En este caso usaremos la funcion agnes de la libreria clusterbupagl<-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 9La 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 atodas las muestras. En cada paso se divide los clusters en dos subgrupos.Son más lentos de calcular que los jeráquicos aglomerativosA continuacion se muestra un ejemplo del métodojerarquico divisivo usando la función Diana de la libreriacluster.> 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

14

22

7 33

10

73

42

51

39

22

11

25

26

67

62

06 80

15

23

33

12

71

64

31

93

41

23

41

46

6 31

19

14

98

92

46 51

57

11

4 90 19

91

12

19

41

96 10

01

98

20

42

09 16

69

18

44

10

42

10

21

72

67

11

92

62

22

22

08

12

41

41

31

81

05

20

01

74

33

91

11

20

21

4 12

32

11

33

73

29

29

26

83

21

10

82

13

17

11

93 31

04

31

22 83

21

6 21

33

73

08

95

27

23

01

93

32

73

26

22

32

29

14

09

92

36

27

92

97 59

26

07

21

44

26

92

63 4

25

02

44 61

87

27

6 28

83

22

33

68

24

82

80

18

0 54

30

43

13 29

62

90

33

0 58

82

31

03

56

22

32

83 7

10

17

21

5 35 28

52

73

15

24

92

45

20

7 19

54

67

01

18

14

31

50

25

32

70

14

01

78

13

23

14

24

72

99

14

92

85 34

48

94 45 12

10

91

16

30

92

42

37 62

16

02

93

20

11

30

13

72

84

24

11

53

24

06

71

26

22

52

73

21

25

92

48

32

53

28

26

78

30

66

57

42

56 91

25

8 21

26

01

01

28

18

48

61

38

17

31

42

23

11

31

23

82

75

16

31

66

18

4 23

2 22

46

47

23

91

20

16

51

35

24

21

16

4 79

16

27

52

74

22

6 91

92 92 63

27

13

02

32

41

45

28

73

03

15

42

71

36

29

22

57

19

72

02

55

96 68 58

11

72

64 38

12

93

01

13

21

92

82

10

63

15 24

33

71

23

01

70

17

6 17

7 97

25

41

46

29

82

29 28

92

28

26

51

02

23

52

77

12

81

55

18

51

56

17

22

50

12

13

40

14

81

81 14

72

61

15

72

78

19

11

0 81

20

32

18 1

61

18

83

20 33

21

58

25

51

59

33

83

05

22

03

35 41

18

3 28

61

69

29

5 18

6 34

53

12

25

13

31

67

34

35

31

51 31

1 17

5 18

77

72

05

16

83

34

98

18

21

39

25

21

89

30

72

94 3

63

00

13

43

17

23

38

51

15

32

31

79

19

03

16

34

23

31

05

01

00

15

02

00

25

03

00

Dendrogram of diana(x = bupa[, 1:6], metric = "euclidean")

Divisive Coefficient = 0.96

He

igh

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 cuadradosentre clusters y dentro de clusters. El número de clusters K esaquel 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 mismoque 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(ci,cj) – es la distancia entre los clusters ci, y cj y d'(ck)

representa la distancia intracluster del cluster ck. 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

),({{minmin

111

knk

jinijni cd

ccdD

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: sili = (bi - ai)/ max(ai, bi)

Donde, ai denota la distancia promedio entre la observación i y

todas las otras que están en el mismo cluster de i, y bi denota ladistancia promedio minima de i a las observaciones que están enotros 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 sili 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 ii

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 w idth si

-0.2 0.0 0.2 0.4 0.6 0.8 1.0

Average silhouette w idth : 0.56

n = 345 2clustersCjj : nj | aveiCjsi

1 : 283 | 0.65

2 : 62 | 0.11

Silhouette w idth si

-0.2 0.0 0.2 0.4 0.6 0.8 1.0

Average silhouette w idth : 0.52

n = 345 3clustersCjj : nj | aveiCjsi

1 : 283 | 0.59

2 : 53 | 0.18

3 : 9 | 0.5

Silhouette w idth si

-0.2 0.0 0.2 0.4 0.6 0.8 1.0

Average silhouette w idth : 0.36

n = 345 4clustersCjj : nj | aveiCjsi

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.20

0.25

0.30

0.35

plots de siluetas

clusters

silico

m

. Indices externosSupongamos que tenemos dos particiones de n objetos x1, ..., xn: la

partición en R clases U = {u1, ..., uR} y la partición en C-clases = V={v1, ...,vC}, 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 ui and vj, 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.

m1=a+b = numero de pares de objetos en el mismo cluster en U.

m2=a+c= numero de pares de objetos en el mismo cluster en V.

R

i

in

1

.

2

C

j

jn

1

.

2

Ejemplo

a= 4, b =2, C=3, d=6, m1=6, m2=7, Z=14

1 2

3

4 5

6

P1 P2

1 2

3

4 5

6

Notar que M=a+b+c+d=

2

n

Rand(1971)

Jaccard

Fowlkes and Mallows

22

)))(2/1((

1 11001

2.

1

2.

ncc

n

nnz

Rand

C

jj

R

ii

111001

11

1

2.

1

2.

)(

ccc

c

nZnn

nzJac

C

jj

R

ii

21

11

2/1

1

.

1

. ]22

[

))(2/1(

mm

c

nn

nzFM

C

j

jR

i

i

Un valor de Rand, Jaccard y FM cercano a 1 indica un buen agrupamiento.

La medida 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 de Hubert como:

),(),(

1jiYjiX

M

Para obtener valores de entre -1 y 1 se prefiere normalizarlo y se obtiene

YX SSYjiYXjiXM /)]),(()),(()/1[(

Que es equivalente a:

YX SSYXMjiYjiXH /]/),(),([

Pero, usando el hecho que X y Y son binomiales, se tiene que

M

n

X

iR

i)

2( .

1

M

n

Y

JC

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

XXS

R

i

iR

i

i

X

)2

1(2

)1(1

.

1

.

M

n

M

n

YYS

C

j

jC

j

j

Y

Finalmente,

M

nZ

M

nn

M

n

M

jiYjiXR

i

C

jij

R

i

C

jij

R

i

C

j

ij

22

2),(),(1 11 1

2

1 1

Sustituyendo, en la forma de normalizada se tiene

)2

)(2

(22

22)(*5.

1

.

1

.

1 1

..

1 1

..

C

j

jR

i

iR

i

C

j

ji

R

i

C

j

ji

nM

nM

nn

nnnzM

H

Ahora usando las identidades

R

i

inba

1

.

2

C

j

jnca

1

.

2

y a= (z-n)/2, se tiene la siguiente formula simplificada de H

))())(()()((

))((

caMbaMcaba

cabaMaH

>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 lasobservaciones en el conjunto de entrenamiento Lb.– Construir un clasificador ( puede ser LDA, k-nn, CART, etc) usando

lasetiquetas 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 sk,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(sk,1, · · · , sk,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)> abest 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

11 1

1 11 1 1

2 4 6 8 10

-18

00

0-1

70

00

-16

00

0-1

50

00

number of clusters

BIC

2

2

22 2 2 2 2 2 2

3

3 3 33 3 3 3 3 3

4

44

55 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

7090

2080

140

V2

V3

010

0

2060

V4

V5

015

0

70 80 90 100

010

20

0 50 100 150 0 100 200 300

V6

top related