66
Kmeans Ejemplo 2012 Departamento de Ingeniería de Sistemas y Computación Todos los derechos reservados 1

Kmeans Ejemplo

Embed Size (px)

Citation preview

Kmeans Ejemplo 2012

Departamento de Ingeniería de Sistemas y Computación

Todos los derechos reservados 1

Qué vamos a aprender

• Descripción y solución del problema parte 1.

• Algoritmo Kmeans: Descripción y aplicación

• Medidas de distancia

• Descripción y solución del problema parte 2.

• Descripción y solución del problema parte 3.

• Ejercicio Propuesto

• Bibliografía

2

Kmeans – Ejemplo

Contexto

• ¿Quién es alto y quién es bajo?

Opción:

Según un umbral

¿Qué valor para el umbral?

3

Umbral

Altos

Bajos

Kmeans – Ejemplo

Contexto

• ¿Quién es alto y quién es bajo? • ¿En Colombia?

• Depende del género…

• ¿Hombres: 1,80?

• ¿Mujeres: 1,70?

• ¿Respuesta única? • ¿En otros países?

• Guatemala.

• Holanda.

4

Kmeans – Ejemplo

Contexto

• ¿Quién es alto y quién es bajo?

¿Cómo determinamos el umbral?

• Promedio

• ¿Siempre funciona?

• Kmeans…

5

Kmeans – Ejemplo

Contexto

• Se quiere clasificar en dos grupos un conjunto de personas de Holanda de acuerdo a su estatura.

• Para cada persona se sabe su estatura en centímetros.

• Se quiere clasificar cada persona como alta o baja.

6 Estatura: 148 cm

Alto

Bajo

Contexto

• Se cuenta con las estaturas de 10 personas holandesas. Se quiere saber si clasifican como altas o bajas

7

Datos

Alto

Bajo

Kmeans – Ejemplo

Contexto

Los datos:

8

Número Altura (cm)

1 195

2 166

3 188

4 195

5 179

6 198

7 161

8 179

9 200

10 191

Kmeans – Ejemplo

Contexto

La gráfica de los datos:

9

Kmeans – Ejemplo

160

165

170

175

180

185

190

195

200

49 50 51

Motivación

Objetivo : Dividir o segmentar un conjunto de datos en una cantidad predefinida de grupos.

10 Algoritmo de

agrupamiento

𝑘 = 2

Kmeans – Ejemplo

Motivación

Objetivo : Dividir o segmentar un conjunto de datos en una cantidad predefinida de grupos.

11 Algoritmo de

agrupamiento

𝑘 = 2

𝐾-𝑚

Kmeans – Ejemplo

Aplicación: El algoritmo K means

Inicialización: 1. Asignar cada elemento a un grupo

• Aleatoriamente.

12

Kmeans – Ejemplo

N° Altura (cm)

Clase

1 195

2 166

3 188

4 195

5 179

6 198

7 161

8 179

9 200

10 191

Grupo 1 Grupo 2

Aplicación: El algoritmo K means

Inicialización:

Estado inicial gráficamente:

13

Kmeans – Ejemplo

Grupo 1 Grupo 2

160

165

170

175

180

185

190

195

200

49 50 51

190

160

165

170

175

180

185

190

195

200

49 50 51

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

Medida de distancia

14

Kmeans – Ejemplo

𝑑 = 𝑃1 − 𝑃22

182

𝐶𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑒 =195 + 195 + 179 + 191

4= 𝟏𝟗𝟎

𝐶𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑒 =166 + 188 + 198 + 161 + 179 + 200

6= 𝟏𝟖𝟐

190

160

165

170

175

180

185

190

195

200

49 50 51

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

Medida de distancia

Asignar cada elemento al grupo cuyo centroide esté más cerca.

Comenzamos por arriba

15

Kmeans – Ejemplo

𝑑 = 𝑃1 − 𝑃22

182

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

Primer punto:

𝑑𝐺𝑟𝑢𝑝𝑜1 < 𝑑𝐺𝑟𝑢𝑝𝑜2

Segundo punto:

𝑑𝐺𝑟𝑢𝑝𝑜1 < 𝑑𝐺𝑟𝑢𝑝𝑜2

16

Kmeans – Ejemplo 𝑑 = 𝑃1 − 𝑃2

2 Grupo 1 Grupo 2

190

160

165

170

175

180

185

190

195

200

49 50 51

182 Valor 𝒅𝐆𝐫𝐮𝐩𝐨𝟏 𝒅𝐆𝐫𝐮𝐩𝐨𝟐

200 100 40000

Valor 𝒅𝐆𝐫𝐮𝐩𝐨𝟏 𝒅𝐆𝐫𝐮𝐩𝐨𝟐

198 64 39204

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

Tercer – Décimo punto:

17

Kmeans – Ejemplo 𝑑 = 𝑃1 − 𝑃2

2 Grupo 1 Grupo 2

190

182

Valor 𝒅𝐆𝐫𝐮𝐩𝐨𝟏 𝒅𝐆𝐫𝐮𝐩𝐨𝟐 Cambio

195 25 169 -

195 25 169 -

191 1 81 -

188 4 35344

179 121 9

179 121 9 -

166 576 256 -

161 841 25921 - 160

165

170

175

180

185

190

195

200

49 50 51

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

Estado Final:

18

Kmeans – Ejemplo 𝑑 = 𝑃1 − 𝑃2

2 Grupo 1 Grupo 2

190

182

N° Altura (cm)

Clase

1 200

2 198

3 195

4 195

5 191

6 188

7 179

8 179

9 166

10 161 160

165

170

175

180

185

190

195

200

49 50 51

194,5 Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

Medida de distancia

19

Kmeans – Ejemplo

𝑑 = 𝑃1 − 𝑃22

171,2

𝐶𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑒 =200 + 198 + 195 ∗ 2 + 191 + 188

6= 𝟏𝟗𝟒, 𝟓

𝐶𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑒 =179 ∗ 2 + 166 + 161

4= 𝟏𝟕𝟏, 𝟐𝟓

160

165

170

175

180

185

190

195

200

49 50 51

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

Tercer – Décimo punto:

20

Kmeans – Ejemplo 𝑑 = 𝑃1 − 𝑃2

2 Grupo 1 Grupo 2

Valor 𝒅𝐆𝐫𝐮𝐩𝐨𝟏 𝒅𝐆𝐫𝐮𝐩𝐨𝟐 Cambio

200 30.3 826.6 -

198 12.3 715.6 -

195 0.3 564.1 -

195 0.3 564.1 -

191 12.3 390.1 -

188 42.3 280.6 -

179 240.3 60.1 -

179 240.3 60.1 -

166 812.3 27.6 -

161 1122.3 105.1 -

194,5

171,2

160

165

170

175

180

185

190

195

200

49 50 51

El algoritmo K means: Resultado

21

Kmeans – Ejemplo

Grupo 1 Grupo 2

Altos Bajos

Analizando los

resultados:

194,5

171,2

160

165

170

175

180

185

190

195

200

49 50 51¡En Holanda!

Qué vamos a aprender

• Descripción del problema 1.

• Algoritmo Kmeans: Descripción y aplicación

• Medidas de distancia

• Descripción del problema 2.

• Descripción del problema 3.

• Ejercicio Propuesto

• Bibliografía

22

Fundamentos

El algoritmo K means

• Inicialización.

• Iteración 1 • Paso 1

• Iteración 2: Por cada elemento • Paso 2

• Condición de terminación. 23

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Batch update

Fundamentos

El algoritmo K means: Alternativa

• Inicialización.

• Iteración 1 • Iteración 2: Por cada elemento

• Paso 1

• Paso 2

• Condición de terminación. 24

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Online update

Fundamentos: El algoritmo K means

• Inicialización:

1. Asignar cada elemento a un grupo

• Aleatoriamente.

• Según umbral.

• Promedio.

• Estimarlo.

• Experto.

• Algoritmo adicional.

25

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

26

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

27

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

?

Fundamentos: El algoritmo K means

Recordando: ¿Qué es un centroide?

• Punto central de un conjunto de datos o clúster.

• Punto que minimiza la distancia total entre cada punto del clúster y el centro.

28

Kmeans – Ejemplo

Fundamentos: El algoritmo K means

¿Cómo medir que tan cercanos están dos elementos ?

Usar medida de distancia

29

Kmeans – Ejemplo

Fundamentos: El algoritmo K means

Medida de distancia

• Función numérica que indica una medida de cercanía o

similitud entre un par de observaciones.

• Propiedades que debe cumplir:

1. 𝑑 𝑃, 𝑄 = 𝑑 𝑄, 𝑃

2. 𝑑 𝑃, 𝑄 > 0 si 𝑃 ≠ 𝑄

3. 𝑑 𝑃, 𝑄 = 0 si 𝑃 = 𝑄

4. 𝑑 𝑃, 𝑄 ≤ 𝑑 𝑃, 𝑅 + 𝑑 𝑅, 𝑄 (desigualdad triangular)

30

Kmeans – Ejemplo

Fundamentos: El algoritmo K means

Medida de distancia

• Propiedades que debe cumplir:

1. 𝑑 𝑃, 𝑄 = 𝑑 𝑄, 𝑃

2. 𝑑 𝑃, 𝑄 > 0 si 𝑃 ≠ 𝑄

31

Kmeans – Ejemplo

P

Q

𝑑 𝑃, 𝑄

𝑑 𝑄, 𝑃

> 0

Fundamentos: El algoritmo K means

Medida de distancia

• Propiedades que debe cumplir:

3. 𝑑 𝑃, 𝑄 = 0 si 𝑃 = 𝑄

32

Kmeans – Ejemplo

P Q

𝑑 𝑃, 𝑄 = 0

Fundamentos: El algoritmo K means

Medida de distancia

• Propiedades que debe cumplir:

4. 𝑑 𝑃, 𝑄 ≤ 𝑑 𝑃, 𝑅 + 𝑑 𝑅, 𝑄 (desigualdad triangular)

33

Kmeans – Ejemplo

P

Q

R

𝑑 𝑃, 𝑄

𝑑 𝑃, 𝑅

𝑑 𝑅, 𝑄

Fundamentos: El algoritmo K means

Medida de distancia • Las más usadas:

• Distancia geométrica o euclidiana: • Raíz de las diferencias al cuadrado. • Centroide: Promedio.

• City Block: • Suma de las diferencias absolutas. • Centroide: Mediana.

• Otras: • Coseno. • Correlación. • Hamming.

34

Kmeans – Ejemplo

P

Q

𝑑 𝑃, 𝑄

P

Q

𝑑 𝑃, 𝑄

Geométrica o euclidiana

City Block

Fundamentos: El algoritmo K means

Medida de distancia: Calculo del centroide

• Promedio.

• Mediana.

35

Kmeans – Ejemplo

156

170

130

144

{170, 256}

{30, 44}

1 variable

2 variables

3 variables

{30, 6, 15}

{20, 14, 7}

{25, 10, 23}

Fundamentos: El algoritmo K means

Medida de distancia Aplicación de las propiedades de la medida de distancia

Distancia euclidiana 1. 𝑑 𝑃, 𝑄 = 𝑑 𝑄, 𝑃

Kmeans – Ejemplo

𝑃 = 0,2

𝑄 = 4,0

36

𝑑 𝑃, 𝑄 = 0 − 4 2 + 2 − 0 2 = 𝟒, 𝟒𝟕

𝑑 𝑄, 𝑃 = 4 − 0 2 + 0 − 2 2 = 𝟒, 𝟒𝟕

𝒅 𝑷, 𝑸 = 𝒅 𝑸, 𝑷

Fundamentos: El algoritmo K means

Medida de distancia Aplicación de las propiedades de la medida de distancia

Distancia euclidiana 2. 𝑑 𝑃, 𝑄 > 0 si 𝑃 ≠ 𝑄

Kmeans – Ejemplo

𝑃 = 0,2

𝑄 = 4,0

37

𝑑 𝑃, 𝑄 = 0 − 4 2 + 2 − 0 2 = 𝟒, 𝟒𝟕

𝒅 𝑷, 𝑸 > 𝟎 si 𝑷 ≠ 𝑸

𝑃 ≠ 𝑄

Fundamentos: El algoritmo K means

Medida de distancia Aplicación de las propiedades de la medida de distancia

Distancia euclidiana 3. 𝑑 𝑃, 𝑄 = 0 si 𝑃 = 𝑄

Kmeans – Ejemplo

𝑃 = 2,1

𝑄 = 2, 1

38

𝑑 𝑃, 𝑄 = 2 − 2 2 + 1 − 1 2 = 𝟎

𝒅 𝑷, 𝑸 = 𝟎 si 𝑷 = 𝑸

𝑃 = 𝑄

Fundamentos: El algoritmo K means

Medida de distancia Aplicación de las propiedades de la medida de distancia

Distancia euclidiana 4. 𝑑 𝑃, 𝑄 ≤ 𝑑 𝑃, 𝑅 + 𝑑 𝑅, 𝑄

Kmeans – Ejemplo

𝑃 = 0,2

𝑄 = 4,0

39

𝑑 𝑃, 𝑄 = 𝟒, 𝟒𝟕

𝒅 𝑷, 𝑸 ≤ 𝒅 𝑷, 𝑹 + 𝒅 𝑹, 𝑸

𝑅 = 4,2

𝑑 𝑃, 𝑅 = 𝟒

𝑑 𝑅, 𝑄 = 𝟐 + 𝟔

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

40

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

41

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

42

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

¿Se reasignó algún elemento?

Si

Volver a iterar Regresar a Paso 1

43

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

44

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

45

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

• Iteración 1:

1. Calcular centroides

2. Iteración 2

3. Condición de terminación

46

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Fundamentos: El algoritmo K means

Aplicación: El algoritmo K means

Iteración 1: 1. Calcular centroides

2. Iteración 2

3. Condición de terminación

¿Se reasignó algún elemento?

No

Terminamos

47

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

Qué vamos a aprender

• Descripción del problema 1.

• Algoritmo Kmeans: Descripción y aplicación

• Medidas de distancia

• Descripción del problema 2.

• Descripción del problema 3.

• Ejercicio Propuesto

• Bibliografía

48

Kmeans – Ejemplo

Contexto

• Se quiere clasificar en dos grupos un conjunto de personas de Guatemala de acuerdo a su estatura.

• Para cada persona se sabe su estatura en centímetros.

• Se quiere clasificar cada persona como alta o baja.

49 Estatura: 148 cm

Alto

Bajo

Contexto

• Se cuenta con las estaturas de 10 personas guatemaltecas. Se quiere saber si clasifican como altas o bajas

50

Datos

Alto

Bajo

Kmeans – Ejemplo

Contexto

Los datos:

51

Número Altura (cm)

1 138

2 149

3 142

4 177

5 142

6 157

7 168

8 149

9 177

10 151

Kmeans – Ejemplo

Contexto

La gráfica de los datos:

52

Kmeans – Ejemplo

135

145

155

165

175

49 50 51

Fundamentos

El algoritmo K means

• Inicialización.

• Iteración 1 • Paso 1

• Iteración 2: Por cada elemento • Paso 2

• Condición de terminación. 53

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

El algoritmo K means: Resultado

54

Kmeans – Ejemplo

Grupo 1 Grupo 2

Bajos Altos

Analizando los

resultados:

146,4

173

¡En Guatemala!

135

140

145

150

155

160

165

170

175

180

49 50 51

Qué vamos a aprender

• Descripción del problema 1.

• Algoritmo Kmeans: Descripción y aplicación

• Medidas de distancia

• Descripción del problema 2.

• Descripción del problema 3.

• Ejercicio Propuesto

• Bibliografía

55

Kmeans – Ejemplo

Contexto

• Se quiere clasificar en dos grupos un conjunto de personas de Guatemala y de Holanda de acuerdo a su estatura.

• Para cada persona se sabe su estatura en centímetros.

• Se quiere clasificar cada persona como alta o baja.

56 Estatura: 148 cm

Alto

Bajo

Contexto

• Se cuenta con las estaturas de 20 personas guatemaltecas y holandesas. Se quiere saber si clasifican como altas o bajas

57

Datos

Alto

Bajo

Kmeans – Ejemplo

Contexto

Los datos:

58

Número Altura (cm)

1 138

2 149

3 142

4 177

5 142

6 157

7 168

8 149

9 177

10 151

Kmeans – Ejemplo

Número Altura (cm)

11 195

12 166

13 188

14 195

15 179

16 198

17 161

18 179

19 200

20 191

Contexto

La gráfica de los datos:

59

Kmeans – Ejemplo

135

140

145

150

155

160

165

170

175

180

185

190

195

200

49 50 51

Contexto

La gráfica de los datos discriminado por país de origen:

60

Kmeans – Ejemplo

135

145

155

165

175

185

195

49 51

Fundamentos

El algoritmo K means

• Inicialización.

• Iteración 1 • Paso 1

• Iteración 2: Por cada elemento • Paso 2

• Condición de terminación. 61

Kmeans – Ejemplo

Inicio

Inicialización

Paso 1

Paso 2

Fin

Por cada elemento

¿Se reasignó algún

elemento?

El algoritmo K means: Resultado

62

Kmeans – Ejemplo

Grupo 1 Grupo 2

Bajos Altos

Analizando los

resultados:

152

188

¡Holandeses y Guatemaltecos!

135

145

155

165

175

185

195

49 50 51

El algoritmo K means: Resultado

Analizando los resultados:

80% de los holandeses Altos

80% de los guatemaltecos Bajos

63

Kmeans – Ejemplo

135

145

155

165

175

185

195

49 51135

145

155

165

175

185

195

49 51

64

Kmeans – Ejemplo

¿Preguntas?

Kmeans – Ejercicio Propuesto

Supongamos que ahora para cada persona se tiene:

• Altura

• Género

• Masculino

• Femenino

Preguntas:

1. ¿Cuántas clases deberíamos generar? (¿valor de 𝑘?)

2. ¿Cómo sugiere realizar la inicialización?

3. ¿Qué medida de distancia podríamos usar?

• Valídela. 65

Referencias

[1] Data Mining: Practical Machine Learning Tools and Techniques, I. H. Witten, E. Frank & M. A. Hall, 3ª. Edición, Morgan Kaufmann Publishers, Elsevier, USA, 2011. Págs 285 – 288.

66