K-Means Clustering
Explora la agrupación K-Means para el aprendizaje no supervisado. Descubre cómo este algoritmo particiona los datos, mejora las aplicaciones de IA y proporciona información para modelos como Ultralytics YOLO26.
El agrupamiento K-Means es un algoritmo fundamental y ampliamente utilizado en el campo del aprendizaje no supervisado, diseñado para descubrir estructuras ocultas en datos no etiquetados. Su objetivo principal es dividir un conjunto de datos en subgrupos diferenciados, conocidos como clústeres, de modo que los puntos de datos del mismo grupo sean lo más similares posible, mientras que los de grupos distintos sean diferentes. Como elemento fundamental de la minería de datos y del análisis exploratorio, K-Means permite a los científicos de datos organizar automáticamente información compleja en categorías manejables sin necesidad de etiquetas predefinidas ni supervisión humana.
Cómo funciona el algoritmo#
El funcionamiento de K-Means es iterativo y se basa en métricas de distancia para determinar la agrupación óptima de los datos de entrenamiento. El algoritmo organiza los elementos en K clústeres, donde cada elemento pertenece al clúster cuya media, o centroide, está más cerca. Este proceso minimiza la varianza dentro de cada grupo. El flujo de trabajo suele seguir estos pasos:
-
Inicialización: El algoritmo selecciona K puntos iniciales como centroides. Estos pueden elegirse aleatoriamente o mediante métodos optimizados como k-means++ para acelerar la convergencia.
-
Asignación: Cada punto de datos del conjunto de datos se asigna al centroide más cercano según una métrica de distancia específica, normalmente la distancia euclídea.
-
Actualización: Los centroides se recalculan tomando el promedio (la media) de todos los puntos de datos asignados a ese clúster.
-
Iteración: Los pasos 2 y 3 se repiten hasta que los centroides dejan de moverse de forma significativa o se alcanza un número máximo de iteraciones.
Determinar el número correcto de clústeres (K) es un aspecto fundamental del uso de este algoritmo. Los profesionales suelen utilizar técnicas como el método del codo o analizar el coeficiente de silueta para evaluar hasta qué punto están separados los clústeres resultantes.
Aplicaciones reales en IA#
El agrupamiento K-Means es muy versátil y se utiliza en diversos sectores para simplificar y realizar el preprocesamiento de datos.
- Compresión de imágenes y cuantización del color: En la visión artificial (CV), K-Means ayuda a reducir el tamaño de archivo de las imágenes agrupando los colores de los píxeles. Al agrupar miles de colores en un conjunto más pequeño de colores dominantes, el algoritmo realiza eficazmente una reducción de la dimensionalidad a la vez que conserva la estructura visual de la imagen. Esta técnica suele utilizarse antes de entrenar modelos avanzados de detección de objetos para normalizar los datos de entrada.
- Segmentación de clientes: Las empresas utilizan el agrupamiento para agrupar a los clientes según su historial de compras, sus características demográficas o su comportamiento en el sitio web. Esto permite desarrollar estrategias de marketing dirigidas, un componente clave de las soluciones de IA en el comercio minorista. Al identificar a los compradores de alto valor o a los clientes con riesgo de abandono, las empresas pueden adaptar sus mensajes de forma eficaz.
- Detección de anomalías: Al aprender la estructura de los clústeres de datos «normales», los sistemas pueden identificar valores atípicos que se encuentran lejos de cualquier centroide. Esto resulta útil para detectar fraudes en el sector financiero y para la detección de anomalías en la seguridad de redes, ya que ayuda a señalar actividades sospechosas que se desvían de los patrones habituales.
- Generación de cajas de anclaje: Históricamente, los detectores de objetos, como las versiones antiguas de YOLO, utilizaban K-Means para calcular cajas de anclaje óptimas a partir de conjuntos de datos de entrenamiento. Aunque los modelos modernos, como YOLO26, utilizan métodos avanzados sin anclajes, comprender K-Means sigue siendo relevante para la evolución de las arquitecturas de detección.
Ejemplo de implementación#
Aunque los frameworks de aprendizaje profundo, como Ultralytics Platform, gestionan flujos de trabajo de entrenamiento complejos, K-Means se utiliza a menudo para analizar las estadísticas de los conjuntos de datos. El siguiente fragmento de Python muestra cómo agrupar coordenadas 2D —que simulan centroides de objetos— utilizando la popular biblioteca Scikit-learn.
import numpy as np
from sklearn.cluster import KMeans
# Simulated coordinates of detected objects (e.g., from YOLO26 inference)
points = np.array([[10, 10], [12, 11], [100, 100], [102, 101], [10, 12], [101, 102]])
# Initialize K-Means to find 2 distinct groups (clusters)
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(points)
# Output the cluster labels (0 or 1) for each point
print(f"Cluster Labels: {kmeans.labels_}")
# Output: [1 1 0 0 1 0] -> Points near (10,10) are Cluster 1, near (100,100) are Cluster 0Comparación con algoritmos relacionados#
Es importante distinguir K-Means de otros algoritmos con nombres o funciones similares para garantizar la selección de la herramienta adecuada para un proyecto.
- K-Means frente a los vecinos más cercanos (KNN): Estos algoritmos suelen confundirse por la «K» de sus nombres. K-Means es un algoritmo no supervisado utilizado para agrupar datos no etiquetados. En cambio, los vecinos más cercanos (KNN) es un algoritmo de aprendizaje supervisado utilizado para la clasificación de imágenes y la regresión, que se basa en datos etiquetados para realizar predicciones según la clase mayoritaria de los vecinos.
- K-Means frente a DBSCAN: Aunque ambos algoritmos agrupan datos, K-Means presupone que los clústeres son esféricos y requiere definir de antemano el número de clústeres. DBSCAN agrupa los datos según su densidad, puede encontrar clústeres de formas arbitrarias y gestiona mejor el ruido. Esto hace que DBSCAN sea superior para datos espaciales complejos presentes en conjuntos de datos con estructuras irregulares cuando se desconoce el número de clústeres.









