Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

K-Means Clustering

Aprenda sobre K-Means Clustering, un algoritmo clave de aprendizaje no supervisado para agrupar datos en clústeres. ¡Explore su proceso, aplicaciones y comparaciones!

K-Means Clustering es un algoritmo ampliamente utilizado en el campo del aprendizaje no supervisado diseñado para dividir de datos en subgrupos distintos que no se solapan. En el contexto más amplio del aprendizaje automático (AM), este método es esencial para descubrir patrones y estructuras ocultas en datos no etiquetados. El algoritmo funciona organizando los puntos de datos en un número $K$ de clusters, donde cada punto pertenece al cluster con la media más cercana, sirviendo como prototipo de grupo. Este enfoque ayuda a minimizar la varianza dentro de cada conglomerado, garantizando que los puntos de datos del mismo grupo sean lo más parecidos posible, a la vez que se mantiene la similitud entre ellos. grupo sean lo más parecidos posible, a la vez que se diferencian los distintos grupos.

Cómo funciona el algoritmo

El proceso de K-Means es iterativo y comienza con la selección de $K$ centroides iniciales, que actúan como puntos centrales de los conglomerados. de los conglomerados. Estos centroides pueden elegirse al azar o mediante técnicas de inicialización más inteligentes como inicialización k-means para mejorar la velocidad de convergencia. A continuación, el algoritmo procede a través de dos pasos primarios hasta que los resultados se estabilizan:

  1. Asignación: Cada punto de los datos datos de entrenamiento se asigna al centroide más cercano basándose en una métrica de distancia, normalmente la distancia euclidiana. Este paso agrupa los datos en $K$ clusters.
  2. Actualización: el nuevo centroide de cada conglomerado se calcula calculando la media de todos los puntos de datos asignados a ese conglomerado específico.

Este ciclo se repite hasta que los centroides dejan de moverse significativamente, lo que indica que el algoritmo ha convergido. Determinar el número óptimo de conglomerados es una parte crítica del proceso, que a menudo se consigue utilizando técnicas como el método del codo o analizando la puntuación de silueta para medir la distancia de separación entre los conglomerados resultantes.

Aplicaciones reales de la IA

K-Means Clustering es versátil y encuentra utilidad en varias industrias para minería de datos y tareas de análisis.

  • Segmentación de clientes: Las empresas utilizan la segmentación para agrupar a los clientes en función de su comportamiento de compra, sus características demográficas o su historial de navegación. comportamiento de compra, datos demográficos o historial de navegación. Al identificar grupos distintos, las empresas pueden adaptar las estrategias de estrategias de marketing, de forma similar a cómo la IA la segmentación de clientes y la gestión de inventarios.
  • Compresión de imágenes: En el ámbito de la visión por ordenador (CV), K-Means se emplea para la cuantificación del color. Esta técnica reduce el número de colores únicos de una imagen agrupando los valores de los píxeles, realizando eficazmente reducción de la dimensionalidad manteniendo la integridad visual de la imagen.
  • Detección de anomalías: Al aprender la estructura de los conglomerados de datos normales, los sistemas pueden identificar valores atípicos que se alejan de cualquier centroide. Esto es valioso para aplicaciones de seguridad y detección de anomalías en el tráfico de red.

K-Means en la detección de objetos Historia

Mientras que los detectores de objetos modernos como Ultralytics YOLO11 a menudo utilizan técnicas de regresión avanzadas o cabezas sin anclaje, K-Means desempeñó un papel fundamental en la evolución de los modelos de detección. Las iteraciones anteriores, como YOLOv2 a YOLOv5, utilizaban agrupaciones de K-Means en las dimensiones de los recuadros delimitadores del conjunto de datos COCO. del conjunto de datosCOCO para determinar las cajas de anclaje óptimas. óptimos. Estos anclajes precalculados Estas anclas precalculadas proporcionaron al modelo unas mejores bases para predecir las formas de los objetos, lo que mejoró significativamente la estabilidad del entrenamiento y la recuperación.

K-Means frente a K-Nearest Neighbors (KNN)

Es habitual confundir K-Means con K-Nearest Neighbors (KNN), pero sirven para fines fundamentalmente diferentes.

  • K-Means es un algoritmo no supervisado utilizado para la agrupación. No no requiere datos etiquetados y se centra en encontrar la estructura inherente al conjunto de datos.
  • KNN es un algoritmo de aprendizaje supervisado utilizado para clasificación y regresión de imágenes. Se se basa en datos etiquetados para classify nuevos puntos de datos en función de la clase mayoritaria de sus vecinos más cercanos.

Otro concepto relacionado es DBSCAN, que agrupa en función de la densidad y no de la distancia a un punto central. A diferencia de K-Means, DBSCAN no requiere que se especifique de antemano el número de conglomerados. que se especifique de antemano el número de conglomerados y maneja mejor los valores atípicos.

Ejemplo de código: Cuantificación del color

El siguiente ejemplo Python muestra cómo utilizar K-Means para agrupar colores de píxeles, un paso común de preprocesamiento de datos en tareas de visión. preprocesamiento de datos en tareas de visión.

import numpy as np
from sklearn.cluster import KMeans

# Simulate a small image (10x10 pixels) with 3 RGB channels
# In a real scenario, you would load an image using cv2.imread()
image_data = np.random.randint(0, 255, (10, 10, 3), dtype=np.uint8)
pixels = image_data.reshape(-1, 3)

# Apply K-Means to reduce the image to 3 dominant colors (clusters)
kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42).fit(pixels)

# The cluster centers represent the dominant colors
print(f"Dominant RGB Colors:\n{kmeans.cluster_centers_}")

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora