K-Means Clustering
Explora el agrupamiento K-Means para el aprendizaje no supervisado. Descubre cómo este algoritmo divide los datos, mejora las aplicaciones de IA e informa a modelos como Ultralytics .
El agrupamiento K-Means es un algoritmo fundamental y ampliamente utilizado en el campo del
aprendizaje no supervisado, diseñado para descubrir
estructuras ocultas dentro de datos sin etiquetar. Su objetivo principal
es dividir un conjunto de datos en subgrupos distintos, conocidos como clústeres, de modo que los puntos de datos dentro del mismo
grupo sean lo más similares posible, mientras que los de diferentes grupos sean distintos. Como piedra angular de la
minería de datos y el 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 funciona organizando
los elementos en K clústeres, donde cada elemento pertenece al clúster con la media más cercana, o centroide. Este
proceso minimiza la varianza dentro de cada grupo. El flujo de trabajo
sigue generalmente 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 basándose en una
métrica de distancia específica, normalmente la
distancia euclidiana.
-
Actualización: Los centroides se recalculan tomando la media (promedio) de todos los puntos de datos asignados a
ese clúster.
-
Iteración: Los pasos 2 y 3 se repiten hasta que los centroides ya no se mueven significativamente o se alcanza un número máximo
de iteraciones.
Determinar el número correcto de clústeres (K) es un aspecto crítico del uso de este algoritmo. Los profesionales
suelen utilizar técnicas como el método del codo o
analizar la
puntuación de silueta
para evaluar lo bien separados que están los clústeres resultantes.
Aplicaciones reales de la IA
La agrupación por métodos K-Means es muy versátil y resulta útil en diversos sectores para la simplificación y el
preprocesamiento de datos.
-
Compresión de imágenes y cuantificación del color: En
la visión por computadora (CV), K-Means ayuda a reducir el
tamaño de los archivos de 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 al tiempo que
conserva la estructura visual de la imagen. Esta técnica se utiliza a menudo antes de entrenar modelos avanzados de
detección de objetos para normalizar los datos de entrada.
-
Segmentación de clientes: Las empresas aprovechan la agrupación para clasificar a los clientes en función de su historial de compras
, datos demográficos o comportamiento en el sitio web. Esto permite aplicar estrategias de marketing específicas, un componente clave de la
IA en las soluciones minoristas. Al identificar a los compradores de alto valor
o los riesgos de pérdida de clientes, las empresas pueden adaptar sus mensajes de manera 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 alejan mucho de cualquier centroide. Esto es
muy útil para la detección de fraudes en las finanzas y la
detección de anomalías en la seguridad de las redes, ya que ayuda a
señalar actividades sospechosas que se desvían de los patrones estándar.
-
Generación de cuadros de anclaje: Históricamente, los detectores de objetos como YOLO anteriores YOLO utilizaban K-Means para
calcular los cuadros de anclaje óptimos 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 aplicación
Mientras que los marcos de aprendizaje profundo como la Ultralytics gestionan
complejos procesos de formación, K-Means se utiliza a menudo para analizar estadísticas de conjuntos de datos. El siguiente Python
muestra cómo agrupar coordenadas 2D, simulando 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 0
Comparación con algoritmos afines
Es importante distinguir K-Means de otros algoritmos con nombres o funciones similares para garantizar que
se seleccione la herramienta correcta para un proyecto.
-
K-Means frente a K-Nearest Neighbors (KNN): A menudo se confunden debido a la «K» de sus
nombres. K-Means es un algoritmo no supervisado que se utiliza para agrupar datos sin etiquetar. Por el contrario,
K-Nearest Neighbors (KNN) es un
algoritmo de aprendizaje supervisado que se utiliza para la
clasificación y regresión de imágenes, y que se basa
en datos etiquetados para realizar predicciones basadas en la clase mayoritaria de vecinos.
-
K-Means frente a DBSCAN: Aunque ambos agrupan datos, K-Means asume que los clústeres son esféricos y requiere
que se defina de antemano el número de clústeres.
DBSCAN
agrupa los datos en función de la densidad, puede encontrar clústeres de formas arbitrarias y gestiona mejor el ruido. Esto hace que DBSCAN
sea superior para datos espaciales complejos que se encuentran en conjuntos de datos con
estructuras irregulares en las que se desconoce el número de clústeres.