Algoritmo KMeans – Teoría

La agrupación K Means es un tipo de Aprendizaje no Supervisado, que se utiliza cuando se tienen datos no etiquetados, es decir, datos sin categorías o grupos definidos. El objetivo de este algoritmo es encontrar grupos en los datos, con el número de grupos representados por la variable K.

El algoritmo funciona de manera iterativa para asignar cada punto de datos a uno de los grupos K en función de las características que se proporcionan. Los puntos de datos se agrupan en función de la similitud de las características. Los resultados del algoritmo de agrupamiento K Means son:

  • Los centroides de los clústeres K, que puedes ser usados para etiquetar nuevos datos.
  • Etiquetas para los datos de formación, cada punto de datos se asigna a un único clúster.

En lugar de definir grupos antes de examinar los datos, la agrupación permite encontrar y analizar los grupos que se han formado orgánicamente.

Cada centroide de un clúster es un conjunto de valores de características que definen los grupos resultantes. El examen de las ponderaciones de las características del centroide puede utilizase para interpretar cualitativamente qué tipo de grupo representa cada conglomerado.

Este es un algoritmo versátil que puede ser utilizado para cualquier tipo de agrupación.

Imagínate que estás abriendo una pequeña librería. Tienes un montón de libros diferentes, y 3 estanterías. Tu objetivo es colocar libros similares en un estante. Lo que harías es recoger 3 libros, uno para cada estante para establecer un tema para cada estante. Estos libros dictarán ahora cuál de los libros restantes irá en cada estante.

Cada vez que tomas un libro nuevo de la pila, lo comparas con los primeros 3 libros, y pones este nuevo libro en el estante que tiene libros similares. Puedes repetir este proceso hasta que todos los libros hayan sido colocados.

Una vez que hayas terminado, podrías notar que cambiar el número de estantes y recoger diferentes libros iniciales para esos estantes, cambiando el tema para cada estante, aumentaría la eficacia con la que has agrupado los libros.  Por lo tanto, repites el proceso con la esperanza de un mejor resultado.

Bueno, el algoritmo K Means trabaja de esa forma.

El clustering K Means es un buen lugar para empezar a explorar un conjunto de datos sin etiquetas. La K en K Means denota el número de clúster. Este algoritmo está destinado a converger hacia una solución después de algunas iteraciones. Tiene 4 pasos básicos:

  • Inicializar los clústeres centroides, escoger los 3 libros para empezar.
  • Asignar los puntos de datos a los clústeres, colocar los libros restantes uno por uno.
  • Actualizar los centros de clúster, empezar de nuevo con 3 libros diferentes.
  • Repetir el paso 2 y 3 hasta que se cumpla la condición de parada.

No tienes que comenzar con 3 clúster inicialmente, pero 2 o 3 es, generalmente, un buen lugar para comenzar y actualizar más tarde.

Inicializar K y centroides

Como punto de partida, le debes decir al modelo cuántos clústeres debería hacer. Primero el modelo toma K puntos de partida del conjunto de datos. Estos puntos de datos se denominan centroides de clustering.

Ahora hay diferentes maneras de inicializar los centroides, los puedes elegir al azar o utilizar cualquiera de los métodos que fueron explicados anteriormente en otra entrada.

Asignación de clústeres a los puntos de datos

A partir de aquí en adelante el modelo realiza sus propios cálculos y asigna un clúster a cada punto de datos. Su modelo calculará la distancia entre el punto de datos y todos los centroides, y será asignado al clúster con el centroide más cercano. Una vez más, hay diferentes maneras de calcular esta distancia, todas tienen sus ventajas y desventajas.

Actualización de los centroides

Debido a que los centroides iniciales fueron elegidos arbitrariamente, el modelo los puede actualizar con nuevos valores de clúster. El nuevo valor podría o no aparecer en el set de datos, de hecho, sería una coincidencia si lo hiciera. Esto se debe a que el centroide del clúster actualizado es el promedio o el valor medio de todos los puntos de datos dentro de ese clúster.

Ahora bien, si se utilizara algún otro método, como K Modo o K Mediana, en lugar de tomar el valor promedio, se tomaría el modo y la mediana, respectivamente.

Criterio de parada

Dado que los pasos 2 y 3 se realizan de forma iterativa, sería eterno si no establecemos un criterio de parada. El criterio de parada indica a nuestro algoritmo cuándo dejar de actualizar los clústeres. Es importante notar que establecer un criterio de parada no necesariamente devolvería los mejores clústeres, pero para asegurarnos de que devuelve clústeres razonablemente buenos, y lo que es más importante, al menos devolver algunos clústeres necesitamos tener un criterio de parada.

Hay esencialmente tres criterios de parada que se pueden adoptar para detener el algoritmo K Means:

  • Los centroides de los clústeres recién formados no cambian
  • Los puntos permanecen en el mismo grupo
  • Se alcanza el número máximo de iteraciones

Podemos detener el algoritmo si los centroides de los clústeres recién formados no están cambiando. Incluso después de múltiples iteraciones, si estamos obteniendo los mismos centroides para todos clústeres, podemos decir que el algoritmo no está aprendiendo ningún patrón nuevo y es una señal para detener el entrenamiento.

Otra señal clara de que debemos detener el proceso de entrenamiento, es si los puntos permanecen en el mismo clúster incluso después de entrenar el algoritmo para múltiples iteraciones.

Finalmente, podemos detener el entrenamiento si se alcanza el número máximo de iteraciones. Supongamos que hemos seleccionado el número de iteraciones como 100. El proceso se repetirá durante 100 iteraciones antes de detenerse.

Elegir K

El algoritmo K Means encuentra los clústeres y las etiquetas de conjuntos de datos para un K en particular preseleccionado. Para encontrar el número de clústeres en los datos, el usuario necesita ejecutar el algoritmo de clústeres K Means para un rango de valores K y comparar los resultados. En general, no existe un método para determinar el valor exacto de K, pero se puede obtener una estimación precisa utilizando las siguientes técnicas.

Una de las métricas que se utiliza comúnmente para comparar los resultados a través de diferentes valores de K es la distancia media entre los puntos de datos y el centroide de su clúster. Dado que el aumento del número de clústeres siempre reducirá la distancia a los puntos de datos, el aumento de K es el mismo que el número de puntos de datos. Por lo tanto, esta métrica no puede utilizarse como único objetivo. En su lugar, se traza la distancia media al centroide en función de K y se puede utilizar el método de codo, donde la tasa de disminución se desplaza bruscamente, para determinar aproximadamente K.

Existen otras técnicas para validar K, incluyendo la validación cruzada, los criterios de información, el método de salto teórico de información y el método de la silueta. Varios de estos métodos fueron explicados en una anterior entrada.

Evaluación de la calidad del clúster

El objetivo aquí no es solo hacer clústeres, sino hacer clústeres buenos y significativos. La agrupación de calidad es cuando los puntos de datos dentro de un clúster están cerca y lejos de otros clústeres.

A continuación, se describen dos métodos para medir la calidad de los clústeres:

  • Inercia: dice cuán lejos están los puntos dentro de un clúster. Por lo tanto, se busca una pequeña inercia. El rango del valor de inercia comienza desde cero y sube.
  • Punto de la silueta: indica la distancia entre los puntos de datos de un clúster y los puntos de datos de otro clúster. El rango de puntuación de la silueta es de -1 a 1. La puntuación debe estar más cerca de 1 que de -1.

Desventajas del algoritmo K Means

El algoritmo K Means presenta algunas desventajas. La primera es que es necesario definir el número de clústeres y esta decisión puede afectar seriamente los resultados. Además, como la ubicación de los centroides iniciales es aleatoria, los resultados pueden no ser comparables y mostrar una falta de consistencia. K Means produce clústeres con tamaños uniformes, cada clúster tiene aproximadamente la misma cantidad de observaciones, aunque los datos pueden comportarse de manera diferente, y es muy sensible a los valores atípicos y a los datos ruidosos. Adicionalmente, asume que los puntos de datos en cada clúster son modelados como localizados dentro de una esfera alrededor de ese centroide del clúster, limitación esférica, pero cuando esta condición, o cualquiera de las anteriores, es violada, el algoritmo puede comportarse de manera intuitiva.

Ejemplo 1

kmeans 1

En el lado izquierdo, la agrupación intuitiva de los datos, con una clara separación entre dos grupos de puntos de datos, en forma de un pequeño anillo rodeado por uno más grande. En el lado derecho, los mismos puntos de datos agrupados por el algoritmo K Means, con un valor K de 2, donde cada centroide se representa con una forma de diamante. Como puedes ver, el algoritmo no identifica la agrupación intuitiva.

Ejemplo 2

kmeans 2

A la izquierda la agrupación de dos grupos de datos reconocibles. En el lado derecho, el resultado de la agrupación de K Means sobre los mismos puntos de datos no encaja en la agrupación intuitiva. Como en el caso del ejemplo 1, K Means creó particiones que no reflejan lo que visualmente identificamos debido a la limitación esférica del algoritmo. Intenta encontrar centroides con esferas de datos ordenados a su alrededor, y funciona mal ya que la forma geométrica del clúster se desvía de una esfera.

Ejemplo 3

kmeans 3

Una vez más, en el lado izquierdo hay dos grupos claros, un grupo de datos pequeño y compacto y otro más grande y disperso. K Means no logra identificar, lo puedes observar en la figura de la derecha. Aquí en un intento de equilibrar las distancias entre ambos grupos de datos y generar clústeres con tamaños uniformes, el algoritmo mezcla ambos grupos de daos y crea dos clústeres artificiales que no representan el conjunto de datos.

La cuestión es que los datos de la vida real son casi siempre complejos, desorganizados y ruidosos. Las situaciones en el mundo real raramente reflejan condiciones claras en las que aplicar este tipo de algoritmos desde el primer momento. En el caso del algoritmo K Means se espera que al menos una de sus suposiciones sea violada, por lo que necesitamos no solo identificar esto, sino saber qué hacer en tal caso.

La buena noticia es que existen alternativas y que las deficiencias se pueden corregir. Por ejemplo, la conversión de datos a coordenadas polares puede resolver la limitación esférica que describimos en el ejemplo 1. También puedes considerar el uso de otros tipos de algoritmos de agrupación en clúster si encuentras serias limitaciones. Posibles enfoques serían el uso de algoritmos basados en la densidad o jerárquicos, que fijan algunas de las limitaciones de K Means, aunque estos tienen sus propias limitaciones.

Ejemplos de casos de uso

Segmentación del comportamiento:

  • Segmento por historial de compras
  • Segmento por actividades en la aplicación, sitio web o plataforma
  • Definir a las personas en función de sus intereses
  • Crear perfiles basados en la supervisión de actividades

Categorización de inventario:

  • Agrupar el inventario por actividad de ventas
  • Agrupar el inventario por métricas de fabricación

Clasificación de las medidas de los sensores:

  • Detectar tipos de actividad en los sensores de movimiento
  • Agrupar imágenes
  • Audio separado
  • Identificar grupos en la vigilancia de la salud

Detección de robots o anomalías:

  • Separar grupos de actividades válidos de los bots
  • Agrupar actividad válida para limpiar la detección de valores atípicos

Además, el monitoreo si un punto de datos rastreado cambia entre grupos a lo largo del tiempo puede ser utilizado para detectar cambios significativos en los datos.

En resumen, K Means es un algoritmo maravilloso con muchos usos potenciales, tan versátil que puede ser utilizado para casi cualquier tipo de clustering de datos. Pero, por supuesto, hay que ser consciente de sus suposiciones y de la forma en que funciona si no se quiere ser guiado a resultados equivocados.

Con esto finalizamos la explicación de este contenido. Ya debes entener cómo funciona el algoritmo de agrumiento K Means, por lo tanto te dejo la siguiente pregunta, ¿Cuáles de las siguientes afirmaciones crees tú que sea cierta?

Opción 1: En el algoritmo K Means es necesario inicializar el valor de K al momento de desarrollar el modelo.

Respuecta Correcta.

Opción 2: Este algoritmo calcula el valor medio de todos los puntos de datos dentro de un clúster.

Respuesta Correcta.

Opción 3: En caso de que se elija un valor de K no adecuado para el conjunto de datos que se está utilizando, aún así el algoritmo obtendrá buenos resultados.

Respuesta Incorrecta. El algoritmo depende de la elección adecuada del número de clústeres.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *