Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

Algoritmos de Clustering

El clustering es un modelo de aprendizaje automático no supervisado que se centra en agrupar puntos de datos similares basándose en sus características o patrones. En lugar de depender de etiquetas predefinidas, el clustering descubre estructuras naturales en los datos, lo que lo hace especialmente útil para el análisis exploratorio y la segmentación. Profundicemos en cómo funciona el clustering y exploremos los diferentes tipos de algoritmos de clustering que se pueden utilizar para construir modelos de clustering efectivos.

A continuación se presentan los algoritmos de clustering soportados en Catalyst QuickML, junto con su tipo de Clustering, explicación, casos de uso del mundo real y parámetros clave.

Nota: Clustering está disponible en acceso anticipado en todos los centros de datos. Para utilizarlo, solicite acceso a través de support@zohocatalyst.com

K-Means

Explicación: K-Means particiona los datos en k clusters minimizando la varianza dentro de cada cluster, medida como la suma de las distancias euclidianas al cuadrado entre los puntos de datos y sus centroides de cluster. Funciona realizando iterativamente dos pasos: (1) asignar cada punto de datos al centroide más cercano (asignación dura), y (2) recalcular los centroides como la media de todos los puntos en el cluster. Este proceso se repite hasta que las asignaciones ya no cambian o se alcanza un número máximo de iteraciones.

Fórmula matemática:

copy
 min(C1, C2, ..., Ck) Σ(i=1 to k) Σ(x ∈ Ci) ||x − μi||² 

Donde:

  • Ci = cluster i
  • μi = centroide (media) del cluster i
  • ∣∣x−μi∣∣2 = distancia euclidiana al cuadrado entre el punto de datos x y el centroide μi

Caso de uso: Las empresas de retail utilizan K-Means para segmentar clientes en grupos como “económico”, “regular” y “premium” basándose en hábitos de gasto.

Parámetros clave:

Nota: En los rangos de parámetros proporcionados, los corchetes [ ] indican que el valor límite está incluido, mientras que los paréntesis ( ) indican que el valor límite está excluido. Ejemplo: [1, ∞) significa que el rango comienza desde 1 (incluido) y se extiende hasta infinito (excluido). Mientras que (0, 1] significa que 0 está excluido pero 1 está incluido.
Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Define cuántos clusters debe crear el algoritmo y, en consecuencia, cuántos centroides se generarán. Elegir el valor correcto es crítico, ya que muy pocos clusters pueden simplificar excesivamente los datos mientras que demasiados pueden llevar al sobreajuste. int [1, n_rows] 8
init Especifica el método utilizado para inicializar los centroides antes de que comiencen las iteraciones de clustering. string {'k-means++', 'random'} 'k-means++'
max_iter Determina el número máximo de iteraciones que el algoritmo K-Means realizará en una sola ejecución. int [1, ∞) 300
algorithm Indica la variante específica del algoritmo K-Means a utilizar. string {'lloyd', 'elkan'} 'lloyd'

MiniBatchKMeans

Explicación: MiniBatchKMeans es una versión más rápida y eficiente en memoria de K-Means que procesa pequeños subconjuntos aleatorios (mini-lotes) de los datos en cada iteración en lugar del conjunto de datos completo. Al usar estos mini-lotes para actualizar los centroides, converge mucho más rápido mientras da resultados cercanos al K-Means estándar. Esto lo hace especialmente útil para grandes conjuntos de datos o datos en streaming, donde ejecutar K-Means completo sería demasiado lento o consumiría muchos recursos.

Fórmula matemática:

copy
 min(C1, C2, ..., Ck) Σ(i=1 to k) Σ(x ∈ Bt ∩ Ci) ||x − μi||² 

Donde Bt es un mini-lote aleatorio en la iteración t.

Caso de uso: Las plataformas de comercio electrónico con millones de usuarios agrupan el comportamiento de navegación en tiempo real para recomendaciones de productos.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Define el número de clusters a formar así como el número de centroides a generar. int [1, n_rows] 8
init Especifica el método utilizado para inicializar los centroides. string {'k-means++', 'random'} 'k-means++'
max_iter Determina el número máximo de iteraciones que el algoritmo K-Means realizará en una sola ejecución. int [1, ∞) 300
batch_size Tamaño de los mini lotes. int [1, ∞) 1024

Fuzzy C-Means

Explicación: Fuzzy C-Means es similar a K-Means pero permite asignaciones suaves, lo que significa que cada punto de datos puede pertenecer a múltiples clusters con diferentes grados de membresía. En lugar de asignar cada punto a un solo cluster, Fuzzy C-Means calcula una probabilidad de membresía para cada cluster basándose en la distancia del punto a cada centroide. Esto es particularmente útil para datos donde los clusters se superponen, ya que proporciona una vista más matizada de la membresía en lugar de forzar una elección estricta.

Fórmula matemática:

copy
 J = Σ(i=1 to k) Σ(j=1 to n) uij^m ||xj − ci||² 

Donde:

  • uij = grado de membresía del punto de datos xj en el cluster i
  • m = parámetro de difusidad (m>1)
  • ci = centroide del cluster i

Caso de uso: Las aplicaciones de música agrupan usuarios cuyos gustos se superponen entre múltiples géneros (pop, rock, electrónica).

Parámetro clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Define el número de centros que deben inicializarse. int [1, n_rows] 8

K-Medians

Explicación: K-Medians funciona como K-Means pero utiliza la mediana en lugar de la media para calcular los centros de cluster. Este pequeño cambio hace que el algoritmo sea más robusto frente a valores atípicos, ya que las medianas son menos influenciadas por valores extremos. El algoritmo sigue alternando entre asignar puntos al centro de cluster más cercano y recalcular los centros, pero al usar medianas, produce clusters que representan mejor el punto de datos típico en distribuciones sesgadas o de colas pesadas.

Fórmula matemática:

copy
 min(C1, ..., Ck) Σ(i=1 to k) Σ(x ∈ Ci) ||x − mi|| 

Donde mi es la mediana de todos los puntos en el cluster i.

Caso de uso: Las organizaciones de atención médica utilizan K-Medians para agrupar pacientes basándose en los costos medianos de tratamiento o duraciones de estancia hospitalaria, asegurando que los clusters no estén sesgados por unos pocos pacientes con facturas excepcionalmente altas o estancias inusualmente largas.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Define el número de clusters a asignar. int [1, n_rows] 8

K-Modes

Explicación: K-Modes está diseñado para clustering de datos categóricos. Reemplaza las medias con modas (el valor de categoría más frecuente en cada cluster) y utiliza una medida de disimilitud de coincidencia simple para asignar puntos a clusters. Esto lo hace adecuado para escenarios donde la distancia numérica no tiene sentido, como agrupar clientes por preferencias o categorías de productos. El algoritmo actualiza iterativamente las modas del cluster hasta que ya no cambian, produciendo grupos definidos por los valores de categoría más comunes.

Fórmula matemática:

copy
 min(C1, ..., Ck) Σ(i=1 to k) Σ(x ∈ Ci) d(x, θi) 

Donde d(x,θi) es el número de discrepancias entre los atributos categóricos de x y la moda θi.

Caso de uso: Los minoristas agrupan clientes usando datos categóricos como “prefiere online/offline”, “electrónica/ropa”, “descuento/lujo”.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Define el número de clusters a formar así como el número de centroides a generar. int [1, n_rows] 8
max_iter Determina el número máximo de iteraciones del algoritmo k-modes para una sola ejecución. int [1, ∞) 100
init Especifica el método utilizado para la inicialización. string {'Huang', 'Cao', 'random'} 'Cao'

Affinity Propagation

Explicación: Affinity Propagation agrupa datos intercambiando mensajes de similitud entre pares de puntos hasta que algunos puntos se identifican como “ejemplares”, que actúan como centros de cluster. A diferencia de K-Means, no necesita especificar el número de clusters de antemano — el algoritmo determina automáticamente cuántos clusters formar basándose en las similitudes de entrada y un parámetro de “preferencia” que controla qué tan probable es que cada punto se convierta en un ejemplar. Esto lo hace especialmente útil cuando el número natural de clusters es desconocido.

Caso de uso: En servicio al cliente, puede agrupar consultas de soporte entrantes en clusters sin conocimiento previo de cuántas categorías existen.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
damping Especifica el factor de amortiguación. float [0.5, 1.0) 0.5
max_iter Determina el número máximo de iteraciones. int [1, ∞) 200
convergence_iter Especifica el número de iteraciones consecutivas durante las cuales el número estimado de clusters permanece sin cambios antes de que el algoritmo declare la convergencia. int [1, ∞) 15
affinity Determina la medida de similitud utilizada entre puntos de datos. string {'precomputed', 'euclidean'} 'euclidean'

Birch – Balanced Iterative Reducing and Clustering using Hierarchies

Explicación: BIRCH está diseñado para conjuntos de datos grandes o en streaming. Construye incrementalmente un árbol CF (Clustering Feature), que almacena resúmenes compactos de puntos de datos, y utiliza estos resúmenes para realizar el clustering. El árbol CF permite a BIRCH agrupar rápidamente los datos entrantes sin tener que almacenar o procesar el conjunto de datos completo de una vez. Después de construir el árbol, un paso final de clustering global (a menudo usando K-Means) puede refinar los clusters. Este enfoque hace que BIRCH sea extremadamente eficiente en memoria y escalable.

Caso de uso: En aplicaciones IoT, Birch puede agrupar flujos continuos de datos de sensores (como el monitoreo de tráfico de ciudades inteligentes) en grupos significativos en tiempo real.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
threshold Define el radio máximo de un subcluster al fusionarse con el subcluster existente más cercano. float (0, 1.0) 0.5
branching_factor Determina el número máximo de subclusters CF en cada nodo. int [1, ∞) 50
n_clusters Determina el número final de clusters a formar después de que el árbol CF se haya construido. int, None [1, ∞) 3

K-Prototypes

Explicación: K-Prototypes extiende K-Means y K-Modes para manejar conjuntos de datos que contienen tanto variables numéricas como categóricas. Calcula los centros de cluster usando medias para las características numéricas y modas para las características categóricas, combinando ambos usando un parámetro de ponderación que equilibra su influencia. Esto hace posible agrupar datos de tipo mixto sin un preprocesamiento extensivo o conversión.

Fórmula matemática:

copy
 d(x, y) = Σ(j ∈ num) (xj − yj)² + γ Σ(j ∈ cat) δ(xj, yj) 

Donde:

  • δ(xj,yj)=0 si son iguales, en caso contrario 1
  • γ = peso que equilibra las distancias numéricas y categóricas

Caso de uso: En analítica de recursos humanos, las empresas pueden agrupar empleados basándose en datos mixtos — numéricos (por ejemplo, años de experiencia, salario) y categóricos (por ejemplo, departamento, rol) — para identificar patrones en la fuerza laboral.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Especifica el número de clusters a formar y el número de centroides a generar. int [1, n_rows] 8
max_iter Determina el número máximo de iteraciones del algoritmo k-modes para una sola ejecución. int [1, ∞) 100
init Especifica el método para la inicialización. string {'Huang', 'Cao', 'random'} 'Cao'
categorical Indica la lista de columnas categóricas. list, None Lista de columnas None

MeanShift

Explicación: MeanShift encuentra clusters tratando los puntos de datos como muestras de una función de densidad de probabilidad y desplazándolos iterativamente hacia la región más cercana de mayor densidad (moda). Los puntos que convergen a la misma moda forman un cluster. Este enfoque puede determinar automáticamente el número de clusters y funciona bien con clusters de forma arbitraria, pero su rendimiento depende de la elección del ancho de banda (el tamaño del kernel usado para la estimación de densidad).

Fórmula matemática:

copy
 m(x) = Σ(xi ∈ N(x)) K(xi − x) xi / Σ(xi ∈ N(x)) K(xi − x) 

Donde:

  • K es la función kernel (por ejemplo, Gaussiana)
  • N(x) es el vecindario alrededor de x

Caso de uso: Segmentación de imágenes donde regiones como “cielo”, “agua” y “tierra” forman clusters de píxeles similares.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
bin_seeding Cuando se establece en True, el algoritmo utiliza una versión discretizada de los datos de entrada para inicializar las ubicaciones del kernel en lugar de usar cada punto de datos. Esto reduce el número de semillas iniciales, haciendo el algoritmo más rápido, especialmente en grandes conjuntos de datos. bool {False, True} False
cluster_all Controla cómo se manejan los puntos no asignados (huérfanos). Si es True, todos los puntos se fuerzan al cluster más cercano. Si es False, los puntos huérfanos que no caen dentro de ningún cluster se etiquetan como -1 (ruido). bool {False, True} True
max_iter Especifica el número máximo de iteraciones permitidas para cada punto semilla. Si un punto semilla no ha convergido para este límite, el proceso se detiene para esa semilla. int [1, ∞) 300

DBSCAN

Explicación: DBSCAN (Density-Based Spatial Clustering of Applications with Noise) agrupa puntos que están densamente empaquetados juntos (regiones densas) en clusters y etiqueta los puntos que se encuentran solos en regiones de baja densidad como ruido. No requiere especificar el número de clusters de antemano, lo que lo hace ideal para conjuntos de datos con clusters de forma irregular o cuando se quiere identificar valores atípicos explícitamente. Su rendimiento depende en gran medida de los parámetros eps (radio del vecindario) y min_samples (número mínimo de puntos en una región densa).

Fórmula matemática:

copy
 |Nε(p)| ≥ minPts 

Donde p es un punto núcleo y Nε(p) = conjunto de puntos dentro de la distancia ε de p.

Caso de uso: Los sistemas bancarios agrupan patrones de transacciones normales, mientras que los sospechosos aislados se señalan como fraude.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
eps Define la distancia máxima entre dos puntos para que se consideren vecinos. Este parámetro influye fuertemente en el tamaño y la densidad de los clusters, convirtiéndolo en una de las configuraciones más críticas en DBSCAN. float (0, ∞) 0.5
min_samples Especifica el número mínimo de muestras vecinas requeridas (incluyendo el propio punto) para que un punto de datos se clasifique como punto núcleo. Controla qué tan densa debe ser una región para formar un cluster. int [1, ∞) 5
metric Determina la medida de distancia utilizada para calcular la similitud entre puntos de datos. string {'cityblock', 'cosine', 'euclidean', 'l1', 'l2', 'manhattan', 'minkowski'} 'euclidean'
algorithm Indica el método de búsqueda de vecinos más cercanos utilizado para encontrar las distancias punto a punto de manera eficiente. string {'auto', 'ball_tree', 'kd_tree', 'brute'} 'auto'

CLARA

Explicación: CLARA (Clustering Large Applications) es una versión escalable del algoritmo Partitioning Around Medoids (PAM) que funciona agrupando múltiples pequeñas muestras aleatorias de los datos en lugar del conjunto de datos completo. Luego evalúa la calidad del clustering en el conjunto de datos completo y selecciona el mejor conjunto de medoides. Este enfoque de muestreo hace que CLARA sea factible para conjuntos de datos muy grandes donde ejecutar PAM directamente sería computacionalmente costoso.

Fórmula matemática:

Ejecuta K-Medoids en pequeñas muestras aleatorias St de los datos:

copy
 min(M) Σ(x ∈ St) d(x, m(x)) 

Luego evalúa el costo total en el conjunto de datos completo para elegir la mejor muestra.

Caso de uso: Los operadores de telecomunicaciones agrupan millones de registros de llamadas en categorías como “llamadas internacionales” usando muestras de datos en lugar del conjunto de datos completo.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Determina el número de clusters a formar así como el número de medoides a generar. int [1, n_rows] 8
max_iter Especifica el número máximo de iteraciones durante el ajuste. int [1, ∞) 300

CLARANS

Explicación: CLARANS (Clustering Large Applications based on Randomized Search) mejora a CLARA utilizando una técnica de búsqueda aleatorizada para explorar diferentes configuraciones posibles de medoides. En lugar de verificar todos los intercambios posibles, explora solo un subconjunto de vecinos en cada paso, lo que logra un equilibrio entre eficiencia y calidad de clustering. Esto hace que CLARANS sea mejor para encontrar soluciones casi óptimas para grandes conjuntos de datos sin cálculos exhaustivos.

Concepto matemático:

Busca iterativamente mejores medoides usando intercambios locales aleatorizados:

copy
 min(M) Σ(x ∈ D) d(x, m(x)) 

CLARANS explora soluciones vecinas aleatorias en lugar de todas las posibilidades, equilibrando velocidad y precisión.

Caso de uso: Las autoridades de transporte urbano agrupan rutas de autobús por patrones de viaje para optimizar la programación.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Determina el número de clusters a formar así como el número de medoides a generar. int [1, n_rows] 8
maxneighbor Especifica el número máximo de vecinos examinados. int [1, ∞) 5

K-Medoids

Explicación: K-Medoids es similar a K-Means, pero en lugar de usar la media de los puntos de datos como centro del cluster, utiliza un punto de datos real llamado medoide. Esto lo hace más robusto al ruido y a los valores atípicos ya que los medoides son menos influenciados por valores extremos en comparación con los centroides. K-Medoids se utiliza frecuentemente cuando los conjuntos de datos contienen muchos valores atípicos o cuando la interpretabilidad de los clusters a través de puntos de datos reales es importante.

Fórmula matemática:

copy
 min(M) Σ(i=1 to k) Σ(x ∈ Ci) d(x, mi) 

Donde:

  • M={m1,…,mk} son medoides (puntos de datos reales)
  • d(x,mi) es una métrica de distancia (por ejemplo, Euclidiana, Manhattan)

Caso de uso: En atención médica, K-Medoids puede agrupar registros de pacientes basándose en síntomas y resultados de pruebas, usando perfiles reales de pacientes como medoides representativos. Esto asegura que los clusters no estén sesgados por pacientes con condiciones médicas inusualmente raras o extremas.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_clusters Determina el número de clusters a formar así como el número de medoides a generar. int [1, n_rows] 8
init Especifica el método de inicialización de medoides. string {'random', 'heuristic', 'k-medoids++', 'build'} 'heuristic'
metric Especifica la función de distancia utilizada para medir la similitud o disimilitud entre puntos de datos. string {'cityblock', 'cosine', 'euclidean', 'haversine', 'l2', 'l1', 'manhattan', 'nan_euclidean'} 'euclidean'
method Determina qué algoritmo utilizar. 'alternate' es más rápido mientras que 'pam' es más preciso. string {'pam', 'alternate'} 'alternate'
max_iter Define el número máximo de iteraciones que el algoritmo ejecutará sobre todo el conjunto de datos. Si el proceso de clustering no converge antes de alcanzar este límite, se detiene y devuelve las asignaciones de cluster actuales. int [1, ∞) 300

Gaussian Mixture Model (GMM)

Explicación: GMM modela los datos como una mezcla de varias distribuciones Gaussianas (normales), cada una representando un cluster. A diferencia de K-Means, que asigna cada punto a exactamente un cluster, GMM asigna probabilidades para que cada punto pertenezca a cada cluster (clustering suave). Los parámetros del modelo (medias, covarianzas y pesos de mezcla) se optimizan usando el algoritmo de Expectation-Maximization (EM). Esto permite a GMM capturar clusters con diferentes formas, tamaños y orientaciones, haciéndolo más flexible que K-Means cuando los datos no están bien separados o tienen distribuciones elípticas.

Fórmula matemática:

copy
 p(x) = Σ(i=1 to k) πi 𝓝(x | μi, Σi) 

Donde:

  • πi = peso (probabilidad) del componente i
  • μi = vector de media
  • Σi = matriz de covarianza
  • N(x∣μi,Σi) = distribución Gaussiana multivariada

Caso de uso: En analítica de marketing, GMM se utiliza para agrupar clientes en grupos superpuestos basándose en comportamiento y patrones de gasto, donde cada cliente puede tener una probabilidad de pertenecer a múltiples segmentos.

Parámetros clave:

Parámetro Descripción Tipo de Dato Valores Posibles Valor Predeterminado
n_components Especifica el número de componentes de la mezcla. int (0, ∞) 2
covariance_type Define la forma de los clusters especificando la estructura de la matriz de covarianza. string {'full', 'tied', 'diag', 'spherical'} 'full'
max_iter Establece el número máximo de iteraciones para el algoritmo de Expectation-Maximization (EM). int [1, ∞) 100
init_params Determina cómo se establecen los parámetros iniciales (pesos, medias y covarianzas) antes de que comience el algoritmo EM. string {'kmeans', 'k-means++', 'random', 'random_from_data'} 'kmeans'

Última actualización 2026-03-24 17:38:39 +0530 IST