Post on 28-Oct-2015
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
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
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
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