Ir al contenido principal

Clustering en machine learning: 5 algoritmos esenciales de clustering

Explora cinco algoritmos clave de aprendizaje no supervisado —K-Means, DBSCAN, MeanShift, jerárquico y BIRCH—, además de aplicaciones de negocio y una co
Actualizado 24 jul 2026  · 15 min leer

Explorar con IA

Abrir en ChatGPTAbrir en ClaudeAbrir en Perplexity

El clustering es una técnica de aprendizaje automático no supervisado con multitud de aplicaciones: reconocimiento de patrones, análisis de imágenes, analítica de clientes, segmentación de mercado, análisis de redes sociales y más. Una amplia variedad de sectores lo utilizan, desde aerolíneas hasta sanidad.

Al ser un tipo de aprendizaje no supervisado, no necesitamos datos etiquetados para los algoritmos de clustering; esta es una de sus grandes ventajas frente al aprendizaje supervisado, como la clasificación. En este artículo veremos qué es el clustering, en qué casos de uso de negocio resulta útil y te presentaremos cinco algoritmos imprescindibles:

TL;DR

  • El clustering es aprendizaje no supervisado: no requiere datos etiquetados
  • K-Means es el algoritmo más utilizado; DBSCAN gestiona bien el ruido y las formas irregulares; el jerárquico es ideal para análisis exploratorio
  • No existe el algoritmo perfecto para todo. Elige según la forma de tus datos, el número esperado de clústeres y el nivel de ruido
  • La calidad de los clústeres no se mide como en modelos supervisados. Usa el Silhouette Score o el índice de Davies-Bouldin como guía, no como veredicto
  • scikit-learn implementa los cinco algoritmos que cubrimos aquí, más cinco adicionales

¿Qué es el clustering?

El clustering es el proceso de organizar un conjunto de objetos de modo que los objetos dentro del mismo grupo (clúster) sean más similares entre sí que respecto a los de otros grupos. Los profesionales de datos lo emplean a menudo en la fase de análisis exploratorio de datos para descubrir información y patrones nuevos. Como es aprendizaje no supervisado, no requiere un conjunto de datos etiquetado.

Conviértete en un Científico ML

Mejora tus conocimientos de Python para convertirte en un científico del aprendizaje automático.
Empieza a Aprender Gratis

El clustering no es un algoritmo concreto sino una tarea general a resolver. Puedes alcanzarla con distintos algoritmos que difieren mucho en su definición de qué es un clúster y cómo encontrarlo de forma eficiente.

Construyendo la intuición detrás del clustering

Antes de entrar en detalles algorítmicos, construyamos la intuición con un ejemplo sencillo de frutas. Imagina que tienes una gran colección de imágenes con tres frutas: (i) fresas, (ii) peras y (iii) manzanas.

En el conjunto de datos, todas las imágenes están mezcladas y tu objetivo es agrupar las frutas similares, es decir, crear tres grupos, cada uno con un tipo de fruta. Eso es exactamente lo que hará un algoritmo de clustering.

clustering algorithm

Criterios clave de éxito en un análisis de clustering

A diferencia de casos supervisados como clasificación o regresión, el clustering no puede automatizarse de extremo a extremo. Es un proceso iterativo de descubrimiento que requiere conocimiento del dominio y juicio humano para ajustar datos y parámetros del modelo hasta lograr el resultado deseado.

Y, lo más importante, al ser aprendizaje no supervisado y no usar datos etiquetados, no podemos calcular métricas como accuracy, AUC, RMSE, etc., para comparar algoritmos o técnicas de preprocesado. Por ello, evaluar el rendimiento de los modelos de clustering es complejo y en parte subjetivo.

Los criterios clave de éxito en modelos de clustering giran en torno a:

  • ¿Es interpretable?
  • ¿El resultado es útil para el negocio?
  • ¿Has aprendido algo nuevo o descubierto patrones que desconocías antes de clústerizar?

Cómo medir la calidad del clustering

Sin datos etiquetados, no puedes calcular accuracy o AUC. Dos métricas ayudan a cuantificar la separación de tus clústeres. Las más comunes:

  • El Silhouette Score mide cuán similar es un punto a su propio clúster frente al clúster vecino más cercano. Va de -1 a 1; por encima de 0,5 indica clústeres bien separados.
  • El índice de Davies-Bouldin mide la similitud media entre cada clúster y su clúster más similar: cuanto más bajo, mejor.

Ambas están disponibles en scikit-learn: sklearn.metrics.silhouette_score(X, labels) y sklearn.metrics.davies_bouldin_score(X, labels).

1. K-Means

K-Means es el algoritmo más utilizado para tareas de clustering, en gran parte porque sus pasos son fáciles de seguir y su implementación en scikit-learn es directa. Es un algoritmo basado en centroides en el que el usuario debe definir el número de clústeres que quiere crear.

Esto suele venir dado por el caso de negocio o probando distintos valores para el número de clústeres y evaluando el resultado.

K-Means es un algoritmo iterativo que crea clústeres no solapados: cada instancia del conjunto de datos solo puede pertenecer a un clúster. La forma más sencilla de entender K-Means es seguir sus pasos con el diagrama de ejemplo siguiente. También puedes ver el proceso en detalle en nuestros tutoriales de K-Means en Python y K-Means en R.

  1. El usuario especifica el número de clústeres.
  2. Inicializa centroides aleatoriamente según ese número. En Iteration 1 del diagrama, observa los tres centroides inicializados al azar en azul, rojo y verde.
  3. Calcula la distancia entre los puntos y cada centroide y asigna cada punto al centroide más cercano.
  4. Recalcula la media del centroide según los puntos asignados; su posición cambia a lo largo de las Iteration 2 - 9 hasta converger.
  5. Las iteraciones continúan hasta que no cambia la media del centroide o se alcanza el parámetro max_iter, el máximo de iteraciones definido por el usuario. En scikit-learn, max_iter vale 300 por defecto.

K-means

Fuente de la imagen: Learnbymarketing.com

2. MeanShift

A diferencia de K-Means, el algoritmo MeanShift no requiere especificar el número de clústeres. El propio algoritmo lo determina automáticamente, una clara ventaja cuando no sabes cuántos clústeres hay en tus datos.

MeanShift también se basa en centroides y asigna iterativamente cada punto a clústeres. Su caso de uso más habitual es la segmentación de imágenes.

MeanShift se basa en la estimación de densidad mediante núcleos (kernel density estimation). Igual que en K-Means, asigna iterativamente cada punto hacia el centroide de clúster más cercano, inicializado aleatoriamente, y mueve cada punto en el espacio hacia donde hay más puntos, es decir, hacia la Moda (máxima densidad en la región, en el contexto de MeanShift).

Por eso a MeanShift también se le conoce como algoritmo de búsqueda de modos (Mode-seeking). Sus pasos son:

  • Elige un punto aleatorio y crea una ventana alrededor de él.
  • Calcula la media de todos los puntos dentro de esa ventana.
  • Desplaza la ventana siguiendo la dirección de la moda.
  • Repite hasta la convergencia.

Fuente de la imagen: ResearchGate

Para un paso a paso práctico de MeanShift, consulta nuestro tutorial de Mean Shift Clustering.

3. DBSCAN

DBSCAN, o Density-Based Spatial Clustering of Applications with Noise, es un algoritmo de clustering no supervisado que parte de que los clústeres son zonas de alta densidad separadas por regiones de menor densidad.

Su mayor ventaja frente a K-Means y MeanShift es que es robusto a valores atípicos: no incluirá outliers en ningún clúster.

DBSCAN solo requiere dos parámetros del usuario:

  • El radio del círculo a crear alrededor de cada punto, conocido como epsilon

  • minPoints, el número mínimo de puntos dentro de ese círculo para clasificar el punto como núcleo (Core).

Cada punto queda rodeado por un círculo de radio epsilon, y DBSCAN los clasifica como punto núcleo (Core), de borde (Border) o de ruido (Noise). Un punto es núcleo si el círculo que lo rodea contiene al menos minPoints.

Es de borde si hay menos puntos de los mínimos requeridos, y es ruido si no hay puntos adicionales dentro de un radio epsilon de ningún punto. Los puntos de ruido no se asignan a ningún clúster (son outliers).

Usos habituales de DBSCAN:

  • Separa bien clústeres de alta y baja densidad;
  • Funciona muy bien con datos no lineales, y
  • Sirve para detección de anomalías, ya que separa los puntos ruidosos sin asignarlos a clúster.

DBSCAN vs K-Means

Comparando DBSCAN con K-Means, las diferencias más comunes son:

  • K-Means agrupa todas las instancias del conjunto de datos, mientras que DBSCAN no asigna los puntos de ruido (outliers) a ningún clúster válido
  • K-Means tiene dificultades con clústeres no globales; DBSCAN los maneja sin problema
  • K-Means asume que los puntos provienen de una distribución gaussiana; DBSCAN no hace suposiciones sobre los datos.

Puedes profundizar en nuestra guía del algoritmo DBSCAN, con ajuste de parámetros y ejemplos prácticos.

DBSCAN

Fuente de la imagen: Medium

4. Clustering jerárquico

El clustering jerárquico construye una jerarquía de clústeres. Hay dos variantes.

  • Aglomerativo: enfoque ascendente (bottom-up) en el que cada observación empieza como su propio clúster y, al subir, se van uniendo en pares y formando clústeres.
  • Divisivo: enfoque descendente (top-down): todas las observaciones empiezan en un único clúster, que se va dividiendo recursivamente al bajar.

Para analizar datos de redes sociales, el jerárquico es con diferencia el método más habitual. Los nodos (ramas) del grafo se comparan según su similitud; agrupando pequeños conjuntos de nodos relacionados se forman grupos mayores.

Su gran ventaja es que es fácil de entender e implementar. Normalmente se interpreta mediante una imagen como la siguiente: un dendrograma.

Puedes saber más en nuestro tutorial de clustering jerárquico, donde verás cómo construir e interpretar dendrogramas en Python.

Fuente de la imagen: ResearchGate

5. BIRCH

BIRCH significa Balanced Iterative Hierarchical Based Clustering. Se utiliza con conjuntos de datos muy grandes donde K-Means no escala de forma práctica. El algoritmo divide los datos grandes en clústeres pequeños e intenta conservar la máxima información posible. En lugar de clústerizar el conjunto grande directamente, agrupa primero los pequeños para obtener el resultado final.

BIRCH suele complementar a otros algoritmos generando un resumen de la información que estos pueden aprovechar. Como en K-Means, hay que definir el número de clústeres para entrenarlo.

Una de sus ventajas es que puede clústerizar progresiva y dinámicamente puntos multidimensionales, creando clústeres de la máxima calidad bajo restricciones de memoria y tiempo dadas. En la mayoría de los casos, BIRCH solo necesita un recorrido por la base de datos, lo que lo hace escalable.

Su uso más común es como alternativa eficiente en memoria a K-Means para clústerizar grandes volúmenes de datos que K-Means no puede manejar por limitaciones de memoria o cómputo.

Aplicaciones de negocio del clustering

El clustering tiene aplicaciones transversales: medios, sanidad, manufactura, retail y, en general, cualquier contexto con grandes cantidades de datos no etiquetados. Algunos ejemplos prácticos:

Segmentación de clientes

Se categoriza a los clientes según su comportamiento de compra o intereses para diseñar campañas de marketing más enfocadas.

Imagina que tienes 10 millones de clientes y quieres crear campañas personalizadas. No vas a diseñar 10 millones de campañas, ¿qué haces? Puedes usar clustering para agrupar esos clientes en, por ejemplo, 25 clústeres y crear 25 campañas en lugar de 10 millones.

Customer Segmentation

Fuente de la imagen: Medium

Clustering en retail

En retail hay muchas oportunidades. Por ejemplo, puedes recopilar datos de cada tienda y clústerizar a nivel de tienda para identificar cuáles son similares según variables como afluencia, ventas medias, número de SKUs, etc.

Otro ejemplo es clústerizar por categoría. En el siguiente diagrama hay ocho tiendas. Los colores representan clústeres distintos. Aquí hay cuatro clústeres.

Fíjate en que la categoría de desodorantes en la Tienda 1 pertenece al clúster rojo, mientras que en la Tienda 2 pertenece al azul. Esto indica que ambas tiendas tienen públicos objetivo diferentes para desodorantes.

Retail cluster

Fuente de la imagen: dotactiv.com

Clustering en atención clínica y gestión de enfermedades

La sanidad y las ciencias clínicas ofrecen casos especialmente potentes. Un ejemplo es la investigación de Komaru & Yoshida et al. 2020, donde recopilaron datos demográficos y de laboratorio de 101 pacientes y los segmentaron en 3 clústeres.

Cada clúster presentaba condiciones distintas. Por ejemplo, el clúster 1 incluía pacientes con WBC y CRP bajos; el clúster 2, con BMP y suero altos; y el clúster 3, con suero bajo. Cada clúster mostraba una trayectoria de supervivencia diferente según la mortalidad al año tras hemodiálisis.

Clinical clustering

Fuente de la imagen: elsevierhealth.com

Segmentación de imágenes

La segmentación de imágenes clasifica una imagen en distintos grupos. Hay mucha investigación usando clustering. Es útil para aislar objetos en una imagen y analizarlos por separado.

En el ejemplo, la imagen de la izquierda es la original y la de la derecha, el resultado del algoritmo. Se aprecian claramente 4 clústeres, que corresponden a 4 objetos distintos determinados por los píxeles (tigre, hierba, agua y arena).
Image segmentation

Comparativa de algoritmos de clustering

Hay 10 algoritmos de clustering no supervisado implementados en scikit-learn, una popular librería de machine learning en Python. Existen diferencias fundamentales en cómo cada uno determina y asigna los clústeres.

Estas diferencias matemáticas se reducen a cuatro aspectos para comparar:

  • Parámetros necesarios del modelo
  • Escalabilidad
  • Casos de uso
  • Geometría, es decir, la métrica utilizada para calcular distancias

En el diagrama siguiente, cada columna representa la salida de un algoritmo distinto, como K-Means, Affinity Propagation, MeanShift, etc. Son 10 algoritmos entrenados sobre el mismo conjunto de datos.

Algunos producen el mismo resultado. Observa que Agglomerative Clustering, DBSCAN, OPTICS y Spectral Clustering generan los mismos clústeres.

Sin embargo, si comparas K-Means con MeanShift, verás resultados distintos. En K-Means, solo hay dos grupos (azul y naranja), mientras que en MeanShift aparecen tres (azul, verde y naranja).

Comparación de diferentes clústeres

Fuente de la imagen: scikit-learn

Por suerte (o por desgracia), en clustering no hay una única respuesta correcta. Ojalá pudiéramos decir: «El algoritmo X es el que mejor funciona aquí.»

No es posible, y por eso el clustering es una tarea exigente.

En última instancia, qué algoritmo funciona mejor no depende de una métrica fácil de medir, sino de la interpretación y de cuán útil sea el resultado para el caso de uso concreto.

Cómo elegir el algoritmo de clustering adecuado

Cada algoritmo se adapta a condiciones de datos distintas. Usa esta tabla como punto de partida y prueba al menos dos con tus datos reales antes de decidirte.

Algoritmo Cuándo usarlo Limitación clave Parámetros necesarios
K-Means Conjuntos grandes con clústeres aproximadamente esféricos Sensible a outliers; necesita k de antemano Número de clústeres (k)
MeanShift Recuento de clústeres desconocido; segmentación de imágenes Lento en datasets grandes; el ancho de banda es difícil de ajustar Bandwidth (puede estimarse automáticamente)
DBSCAN Datos ruidosos; formas irregulares; detección de anomalías Se complica si los clústeres tienen densidades muy distintas epsilon, minPoints
Jerárquico Análisis exploratorio; datos de redes sociales; conjuntos pequeños Intensivo en memoria; no escala a millones de filas Método de enlace (ward, complete, average)
BIRCH Datasets muy grandes donde K-Means se queda sin memoria Menos preciso que K-Means en conjuntos más pequeños Branching factor, threshold, número de clústeres

Un comienzo práctico: prueba primero K-Means por rapidez; cambia a DBSCAN si tus datos tienen formas irregulares o outliers; usa clustering jerárquico cuando quieras explorar la estructura visualmente con un dendrograma antes de elegir k.

Conclusiones

El clustering es más difícil de aplicar que técnicas supervisadas como la clasificación y la regresión por dos motivos: no puedes medir el rendimiento frente a objetivos etiquetados y parámetros como el número de clústeres requieren criterio de dominio más que selección algorítmica.

El clustering es una habilidad valiosa en múltiples roles: data scientists, ingenieros de ML y analistas se encuentran con problemas que el clustering puede resolver.

Si quieres profundizar en clustering y aprendizaje no supervisado, e implementarlo en Python y R, estos cursos te ayudarán a avanzar:

Preguntas frecuentes (FAQs)

¿El clustering es aprendizaje automático no supervisado o supervisado?

El clustering es una técnica de machine learning no supervisado. No requiere datos etiquetados para entrenar.

¿Necesitamos datos etiquetados para hacer clustering?

No, no necesitamos datos etiquetados para los algoritmos de clustering. Si tienes datos etiquetados, necesitas un algoritmo de clasificación supervisado.

¿Puedo hacer clustering con datos categóricos?

Sí. Igual que en machine learning supervisado, si tienes variables categóricas debes codificarlas con técnicas como one-hot encoding. Algunos algoritmos, como K-Modes, aceptan datos categóricos directamente sin codificación.

¿El clustering es machine learning?

Sí, el clustering es machine learning. En concreto, aprendizaje no supervisado.

¿El clustering es analítica descriptiva o predictiva?

El clustering puede usarse tanto para analítica descriptiva como predictiva. Se utiliza más a menudo en análisis exploratorio de datos, que es analítica descriptiva.

¿Podemos medir el rendimiento de los algoritmos de clustering?

No existe una forma segura de medir el rendimiento de algoritmos de clustering como en el aprendizaje supervisado (AUC, accuracy, R2, etc.). La calidad depende de la interpretación y del caso de uso. Aun así, hay métricas orientativas como Homogeneity Score, Silhouette Score, etc.

¿Podemos usar clustering para feature engineering en machine learning supervisado?

Sí, los algoritmos de clustering asignan etiquetas en forma de grupos en tu conjunto de datos. Al final, obtienes una nueva columna categórica. Por eso, el clustering se usa a menudo para crear variables (feature engineering) en tareas supervisadas.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Científico de Datos, Fundador y Creador de PyCaret

Temas

Cursos de machine learning

programa

Fundamentos del machine learning en R

24 h
Predice respuestas categóricas y numéricas mediante clasificación y regresión, y descubre la estructura oculta de los conjuntos de datos con aprendizaje no supervisado.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

blog

Machine learning supervisado

Descubre qué es el machine learning supervisado, en qué se diferencia del machine learning no supervisado y cómo funcionan algunos algoritmos esenciales del machine learning supervisado
Moez Ali's photo

Moez Ali

8 min

blog

Clasificación en machine learning: Introducción

Aprende sobre la clasificación en machine learning viendo qué es, cómo se utiliza y algunos ejemplos de algoritmos de clasificación.
Zoumana Keita 's photo

Zoumana Keita

14 min

Tutorial

Tutorial de K-Means Clustering en R

Aprenda qué es k-means y descubra por qué es uno de los algoritmos de agrupación más utilizados en la ciencia de datos.
Eugenia Anello's photo

Eugenia Anello

Clustering k-means

Tutorial

Introducción a k-Means Clustering con scikit-learn en Python

En este tutorial, aprenda a aplicar k-Means Clustering con scikit-learn en Python

Kevin Babitz

Tutorial

Tutorial sobre máquinas de vectores de soporte con Scikit-learn

En este tutorial, aprenderás sobre las máquinas de vectores de soporte, uno de los algoritmos de machine learning supervisado más populares y utilizados.
Avinash Navlani's photo

Avinash Navlani

Tutorial

Agrupación jerárquica en R

La agrupación es la forma más común de aprendizaje no supervisado, un tipo de algoritmo de aprendizaje automático que se utiliza para hacer inferencias a partir de datos no etiquetados.
DataCamp Team's photo

DataCamp Team

Ver MásVer Más