K-means: explicación práctica

K-Means es un método del Aprendizaje No Supervisado utilizado para la visión de características, detección de datos atípicos, descubrimiento de clases y preparación de los datos. Es considerado el algoritmo más simple y fundamental de la familia de los métodos de agrupamiento. Su objetivo principal es identificar k grupos en un conjunto de datos buscando una alta similitud intragrupal pero baja similitud intergrupal, es decir, los que se parecen permanecerán lo más juntos posibles pero separándose lo más posible de otros con características diferentes, tal y como los grupos de amigos en la escuela. Este método está basado en la Distancia Euclidiana, que es lo mismo la distancia recta entre dos puntos. 

Es aplicable para un conjunto de datos continuos y sus resultados tienden a generar grupos de forma esférica y mutuamente excluyentes. También es un método que es sensible a datos atípicos y efectivo para un conjunto de datos pequeños.

Para poder explicar a K-Means haremos un pequeño ejemplo. Tenemos los siguientes datos y queremos agruparlos por características en común.

PuntoXY
1210
225
384
458
575
664
712
849
Conjunto de datos

Paso 1

Define los grupos que quieres encontrar (valor de k)

Para este ejemplo vamos a considerar 3 grupos, es decir, un valor de k = 3

Paso 2

Selecciona k datos aleatoriamente del conjunto de datos que tendrán el papel de representantes de grupo o centroides y los separamos del conjunto de datos. Estos datos serán los primeros centroides.

Aleatoriamente elegimos a los datos con el ID 2, 4 y 7. Por lo tanto los centroides son:

G1G2G3
(2, 5)(5, 8)(1,2)
Grupos con sus centroides

Paso 3

Calculamos la distancia entre cada punto y cada uno de los centroides para encontrar la menor distancia. Para eso usamos la Distancia Euclideana que se desglosa de la siguiente forma:

Punto 1: (2, 10)G1: (2,5)
  1. Restar el primer valor del primer punto y el primer valor del segundo punto, y esa resta elevarla al cuadrado

2 – 2 = 0 ² = 0

  1. Restar el segundo valor del primer punto y el segundo valor del segundo punto, y esa resta elevarla al cuadrado

10 – 5 = 5 ² = 25

  1. Después, los valores que elevamos al cuadrado se suman

0  + 25 = 25

  1. Finalmente la suma calculada obtenemos su raíz cuadrada

√ 25 = 5

Y de esta forma calculamos la Distancia Euclideana de dos puntos, que formalmente se expresa de esta forma:

Expresión formal de la Distancia Euclidiana

Esta serie de pasos se aplica en cada uno de los puntos con cada uno de los centroides para buscar la menor distancia entre el punto y los centroides. Para esto creamos una tabla de distancias para apoyarnos. Si seguimos calculando las distancias tendremos los siguientes resultados:

PuntoG1G2G3
15.03.68.06
2EXCLUIDO
36.085.07.34
4EXCLUIDO
51.03.606.70
64.124.125.38
7EXCLUIDO
84.471.416.70

Paso 4

Asignamos cada punto al grupo con menor distancia

Con las distancias obtenidas, el resultado de este paso es el siguiente

PuntoG1G2G3
1(2,10)
2(2,5)
3(8,4)
4(5,8)
5(7,5)
6(6,4)(6,4)
7(1,2)
8(4,9)

Como podemos ver, tenemos dos distancias de 4.12 unidades en el Punto 6, por lo que en este caso se le asignará el grupo con menor cantidad de datos para equilibrar los grupos. Con esto, tenemos los siguientes resultados por grupo:

  • Grupo 1 (G1) : 3 elementos , incluido el centroide
  • Grupo 2 (G2) : 4 elementos, incluido el centroide
  • Grupo 3 (G3) : 1 elemento, el cual es el centroide.

Paso 5

Calculamos nuevos centroides, obteniendo la media de todos los puntos para cada grupo.

PuntoG1G2G3
1(2,10)
2(2,5)
3(8,4)
4(5,8)
5(7,5)
6(6,4)
7(1,2)
8(4,9)

Para ello, primero obtenemos la media de los puntos del grupo 1, por lo que calculamos primero la media de los primeros valores de los puntos, siendo:

Media G1Media G2Media G3
((2+7+6) / 3) = 15 / 3 = 5
((5+5+4) / 3) = 14 / 3 = 4.66
((2+8+5+4) / 4) = 19 / 4 = 4.75
((10+4+8+9) / 4) = 31 / 4 = 7.75

Único elemento
(5, 4.66)(4.75, 7.75)(1,2)

Aquí vemos cómo evolucionaron los centroides con respecto a la 1a iteración: 

G1G2G3
Inicial(2,5)(5,8)(1,2)
1ra iteración(5, 4.66)(3.5, 7.75)(1,2)

Paso 6

Repetimos desde el paso 3 con la diferencia que incluimos los puntos que fungieron como primeros centroides.

El proceso de detiene cuando las medias o centroides ya no cambien o delimitando las iteraciones. 

Este es el K-means. Los resultados que se encuentren dependen de la selección del centroide, y por lo tanto, no es una garantía de obtener el mejor resultado, ya que los resultados dependen de la selección del centroide. 

Deja un comentario