Articulo de referencia

Agrupamiento k -medias

El agrupamiento k -means es un método de cuantificación vectorial , originario del procesamiento de señales , que busca particionar n observaciones en k clústeres, donde cada ob...

El agrupamiento k -means es un método de cuantificación vectorial , originario del procesamiento de señales , que busca particionar n observaciones en k clústeres, donde cada observación pertenece al clúster con la media más cercana (centros de clúster o centroide del clúster ). Esto resulta en una partición del espacio de datos en celdas de Voronoi . El agrupamiento k -means minimiza las varianzas dentro de los clústeres ( distancias euclidianas al cuadrado ), pero no las distancias euclidianas regulares, que serían el problema de Weber , más difícil : la media optimiza los errores al cuadrado, mientras que solo la mediana geométrica minimiza las distancias euclidianas. Por ejemplo, se pueden encontrar mejores soluciones euclidianas utilizando k -medianas y k -medoides .

El problema es computacionalmente difícil ( NP-difícil ); sin embargo, los algoritmos heurísticos eficientes convergen rápidamente a un óptimo local . Estos suelen ser similares al algoritmo de expectativa-maximización para mezclas de distribuciones gaussianas mediante un enfoque de refinamiento iterativo empleado tanto por k-means como por el modelado de mezclas gaussianas . Ambos utilizan centros de clústeres para modelar los datos; sin embargo, el agrupamiento k -means tiende a encontrar clústeres de extensión espacial comparable, mientras que el modelo de mezcla gaussiana permite que los clústeres tengan formas diferentes.

El algoritmo k -medias no supervisado guarda cierta relación con el clasificador de k vecinos más cercanos , una técnica popular de aprendizaje automático supervisado para clasificación que a menudo se confunde con k -medias debido a su nombre. Al aplicar el clasificador de 1 vecino más cercano a los centros de clúster obtenidos por k -medias, se clasifican los nuevos datos en los clústeres existentes. Esto se conoce como clasificador de centroide más cercano o algoritmo de Rocchio .

Descripción

Dado un conjunto de observaciones ( x 1 , x 2 , ..., x n ) , donde cada observación es unad{\displaystyle d}El agrupamiento k -means , un vector real de dimensión n, tiene como objetivo particionar las n observaciones en k ( n ) conjuntos S = { S 1 , S 2 , ..., S k } para minimizar la suma de cuadrados dentro de cada grupo (WCSS) (es decir, la varianza ). Formalmente, el objetivo es encontrar: argramometroinorteSi=1kincógnitaSiincógnitaμi2=argramometroinorteSi=1k|Si|VarSi{\displaystyle \mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}\sum _{\mathbf {x} \in S_{i}}\left\|\mathbf {x} -{\boldsymbol {\mu }}_{i}\right\|^{2}=\mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}|S_{i}|\operatorname {Var} S_{i}} donde μ i es la media (también llamada centroide) de los puntos enSi{\displaystyle S_{i}}, es decir μi=1|Si|incógnitaSiincógnita,{\displaystyle {\boldsymbol {\mu _{i}}}={\frac {1}{|S_{i}|}}\sum _{\mathbf {x} \in S_{i}}\mathbf {x} ,}|Si|{\displaystyle |S_{i}|}es el tamaño deSi{\displaystyle S_{i}}, y{\displaystyle \|\cdot \|}es la norma L2 habitual . Esto equivale a minimizar las desviaciones cuadráticas por pares de los puntos en el mismo clúster :argramometroinorteSi=1k1|Si|incógnita,ySiincógnitay2{\displaystyle \mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}\,{\frac {1}{|S_{i}|}}\,\sum _{\mathbf {x} ,\mathbf {y} \in S_{i}}\left\|\mathbf {x} -\mathbf {y} \derecha\|^{2}} La equivalencia se puede deducir de la identidad.|Si|incógnitaSiincógnitaμi2=12incógnita,ySiincógnitay2{\textstyle |S_{i}|\sum _{\mathbf {x} \in S_{i}}\left\|\mathbf {x} -{\boldsymbol {\mu }}_{i}\right\|^{2}={\frac {1}{2}}\sum _{\mathbf {x} ,\mathbf {y} \in S_{i}}\left\|\mathbf {x} -\mathbf {y} \right\|^{2}}Dado que la varianza total es constante, esto equivale a maximizar la suma de las desviaciones al cuadrado entre puntos de diferentes clústeres (suma de cuadrados entre clústeres, BCSS). [ 1 ] Esta relación determinista también está relacionada con la ley de la varianza total en la teoría de la probabilidad.

Historia

El término " k -medias" fue utilizado por primera vez por James MacQueen en 1967, [ 2 ] aunque la idea se remonta a Hugo Steinhaus en 1956. [ 3 ] El algoritmo estándar fue propuesto por primera vez por Stuart Lloyd de Bell Labs en 1957 como una técnica para la modulación por codificación de pulsos , aunque no se publicó como artículo de revista hasta 1982. [ 4 ] En 1965, Edward W. Forgy publicó esencialmente el mismo método, razón por la cual a veces se le denomina algoritmo Lloyd-Forgy. [ 5 ]

Vista aérea del complejo Holmdel de Bell Labs, donde Stuart Lloyd desarrolló los primeros métodos de agrupamiento k-means para el procesamiento de señales y la cuantificación vectorial.

Las primeras aplicaciones del algoritmo k-means se encontraron principalmente en el procesamiento de señales y la compresión de datos, particularmente en el contexto de la cuantización vectorial . El trabajo de Lloyd en Bell Labs se centró en la representación de señales analógicas utilizando un conjunto limitado de valores discretos, donde se empleó la agrupación para reducir la cantidad de datos necesarios sin comprometer la calidad de la señal. [ 4 ]

Con el aumento de la capacidad de procesamiento, el algoritmo de agrupamiento k-means se popularizó en el reconocimiento de patrones y la clasificación estadística debido a su simplicidad y eficiencia computacional. Posteriormente, se adoptó en las primeras tareas de aprendizaje automático y análisis de datos que involucraban grandes conjuntos de datos. [ 6 ]

A pesar de su uso generalizado, desde el principio se reconocieron limitaciones como la sensibilidad a la ubicación inicial del centroide y la dificultad para manejar grupos no esféricos, lo que motivó el desarrollo de métodos de agrupamiento y técnicas de inicialización mejorados.

Desde entonces se han desarrollado numerosas extensiones de k-means para abordar las limitaciones del algoritmo original, incluyendo métodos como fuzzy c-means, que permite que los puntos de datos pertenezcan a múltiples clústeres con diferentes grados de pertenencia, y kernel k-means, que utiliza funciones de núcleo para identificar clústeres separables no linealmente. [ 6 ]

Algoritmos

Algoritmo estándar ( k -medias ingenuas)

Convergencia de k -medias

El algoritmo más común utiliza una técnica de refinamiento iterativo. Debido a su omnipresencia, a menudo se le denomina " algoritmo k -medias"; también se le conoce como algoritmo de Lloyd , particularmente en la comunidad de informática. En ocasiones, también se le llama " k -medias ingenuo", ya que existen alternativas mucho más rápidas. [ 7 ]

Dado un conjunto inicial de k medias m 1 (1) , ..., m k (1) (ver más abajo), el algoritmo procede alternando entre dos pasos: [ 8 ]

  1. Paso de asignación : Asigne cada observación al clúster con la media (centroide) más cercana: aquella con la distancia euclidiana al cuadrado más baja . [ 9 ] (Matemáticamente, esto significa particionar las observaciones según el diagrama de Voronoi generado por las medias).Si(t)={incógnitapag:incógnitapagmetroi(t)2incógnitapagmetroj(t)2 j,1jk},{\displaystyle S_{i}^{(t)}=\left\{x_{p}:\left\|x_{p}-m_{i}^{(t)}\right\|^{2}\leq \left\|x_{p}-m_{j}^{(t)}\right\|^{2}\ \forall j,1\leq j\leq k\right\},}donde cadaincógnitapag{\displaystyle x_{p}}se asigna a exactamente unoS(t){\displaystyle S^{(t)}}, incluso si pudiera asignarse a dos o más de ellos.
  2. Paso de actualización : Recalcular las medias ( centroides ) de las observaciones asignadas a cada grupo. Esto también se denomina reajuste.metroi(t+1)=1|Si(t)|incógnitajSi(t)incógnitaj{\displaystyle m_{i}^{(t+1)}={\frac {1}{\left|S_{i}^{(t)}\right|}}\sum _{x_{j}\in S_{i}^{(t)}}x_{j}}

La función objetivo en k -medias es la suma de cuadrados dentro de cada clúster (WCSS). Tras cada iteración, la WCSS disminuye monótonamente, generando una secuencia no negativa decreciente. Esto garantiza que k -medias siempre converge, aunque no necesariamente al óptimo global.

El algoritmo ha convergido cuando las asignaciones ya no cambian o, equivalentemente, cuando el WCSS se ha estabilizado. No se garantiza que el algoritmo encuentre la asignación de clúster óptima. [ 10 ]

El algoritmo se suele presentar asignando objetos al clúster más cercano según su distancia. El uso de una función de distancia distinta a la distancia euclidiana (al cuadrado) puede impedir la convergencia del algoritmo. Se han propuesto diversas modificaciones del algoritmo k -medias, como k- medias esféricas y k- medoides, para permitir el uso de otras medidas de distancia.

Pseudocódigo

El siguiente pseudocódigo describe la implementación del algoritmo estándar de agrupamiento k -means. La inicialización de los centroides, la métrica de distancia entre puntos y centroides, y el cálculo de nuevos centroides son decisiones de diseño y variarán según la implementación. En este ejemplo de pseudocódigo, distance()se devuelve la distancia entre los puntos especificados.

La función kmeans(k, puntos) es // Inicializar centroides centroides ← lista de k centroides iniciales convergió ← falso mientras converge == falso hacer // Crear clústeres vacíos clústeres ← lista de k listas vacías // Asigna cada punto al centroide más cercano para i ← 0 hasta length(points) - 1 hacer punto ← puntos[i] índice más cercano ← 0 minDistance ← distancia(punto, centroides[0]) para j ← 1 a k - 1 hacer d ← distancia (punto, centroides[j]) si d < minDistance ENTONCES distanciaMínima ← d índice más cercano ← j clústeres[índice más cercano]. agregar (punto) // Recalcular los centroides como la media de cada clúster. newCentroids ← lista vacía para i ← 0 a k - 1 hacer nuevoCentroid ← calcularCentroid (clusters[i]) newCentroids.append ( newCentroid ) // Comprobar la convergencia Si newCentroids == centroids ENTONCES convergió ← verdadero demás centroides ← nuevosCentroides clústeres de retorno

Métodos de inicialización

Los métodos de inicialización más comunes son Forgy y Partición Aleatoria. [ 11 ] El método Forgy elige aleatoriamente k observaciones del conjunto de datos y las utiliza como medias iniciales. El método Partición Aleatoria asigna primero aleatoriamente un clúster a cada observación y luego procede al paso de actualización, calculando así la media inicial como el centroide de los puntos asignados aleatoriamente al clúster. El método Forgy tiende a dispersar las medias iniciales, mientras que Partición Aleatoria las coloca todas cerca del centro del conjunto de datos. Según Hamerly et al., [ 11 ] el método Partición Aleatoria es generalmente preferible para algoritmos como k -medias armónicas y k -medias difusas . Para los algoritmos de maximización de la esperanza y k -medias estándar , el método de inicialización Forgy es preferible. Sin embargo, un estudio exhaustivo de Celebi et al. [ 12 ] encontró que los métodos de inicialización populares como Forgy, Partición Aleatoria y Maximin a menudo tienen un rendimiento deficiente, mientras que el enfoque de Bradley y Fayyad [ 13 ] tiene un rendimiento "consistente" en "el mejor grupo" y k -means++ tiene un rendimiento "generalmente bueno".

El algoritmo no garantiza la convergencia al óptimo global. El resultado puede depender de los clústeres iniciales. Dado que el algoritmo suele ser rápido, es común ejecutarlo varias veces con diferentes condiciones iniciales. Sin embargo, el rendimiento en el peor de los casos puede ser lento: en particular, ciertos conjuntos de puntos, incluso en dos dimensiones, convergen en tiempo exponencial, es decir, 2 Ω( n ) . [ 14 ] Estos conjuntos de puntos no parecen surgir en la práctica: esto se corrobora por el hecho de que el tiempo de ejecución suavizado de k -medias es polinomial. [ 15 ]

El paso de "asignación" se denomina "paso de expectativa", mientras que el paso de "actualización" es un paso de maximización, lo que convierte a este algoritmo en una variante del algoritmo generalizado de expectativa-maximización .

Complejidad

Encontrar la solución óptima al problema de agrupamiento k -medias para observaciones en d dimensiones es:

  • NP-difícil en el espacio euclidiano general (de d dimensiones) incluso para dos clústeres, [ 16 ] [ 17 ]
  • NP-difícil para un número general de clústeres k incluso en el plano, [ 18 ]
  • Si k y d (la dimensión) son fijos, el problema se puede resolver exactamente en tiempoO(nortedk+1){\displaystyle O(n^{dk+1})}, donde n es el número de entidades que se van a agrupar. [ 19 ]

Por lo tanto, se suelen utilizar diversos algoritmos heurísticos, como el algoritmo de Lloyd mencionado anteriormente.

El tiempo de ejecución del algoritmo de Lloyd (y la mayoría de sus variantes) esO(nortekdi){\displaystyle O(nkdi)}, [ 10 ] [ 20 ] donde:

  • n es el número de vectores d -dimensionales (que se van a agrupar).
  • k el número de clústeres
  • i el número de iteraciones necesarias hasta la convergencia.

En datos que sí presentan una estructura de agrupamiento, el número de iteraciones hasta la convergencia suele ser pequeño, y los resultados solo mejoran ligeramente después de la primera docena de iteraciones. Por lo tanto, el algoritmo de Lloyd se considera a menudo de complejidad "lineal" en la práctica, aunque en el peor de los casos es superpolinomial cuando se ejecuta hasta la convergencia. [ 21 ]

  • En el peor de los casos, el algoritmo de Lloyd necesitai=2Ω(norte){\displaystyle i=2^{\Omega ({\sqrt {n}})}}iteraciones, de modo que la complejidad en el peor de los casos del algoritmo de Lloyd es superpolinomial . [ 21 ]
  • El algoritmo k -medias de Lloyd tiene un tiempo de ejecución suavizado polinomial. Se demuestra que [ 15 ] para un conjunto arbitrario de n puntos en[0,1]d{\displaystyle [0,1]^{d}}, si cada punto es perturbado independientemente por una distribución normal con media 0 y varianzaσ2{\displaystyle \sigma ^{2}}, entonces el tiempo de ejecución esperado del algoritmo k -means está acotado porO(norte34k34d8registro4(norte)/σ6){\displaystyle O(n^{34}k^{34}d^{8}\log ^{4}(n)/\sigma ^{6})}, que es un polinomio en n , k , d y1/σ{\displaystyle 1/\sigma }.
  • Se demuestran mejores límites para casos sencillos. Por ejemplo, se demuestra que el tiempo de ejecución del algoritmo k -medias está acotado porO(dnorte4METRO2){\displaystyle O(dn^{4}M^{2})}para n puntos en una red entera{1,,METRO}d{\displaystyle \{1,\dots ,M\}^{d}}. [ 22 ]

El algoritmo de Lloyd es el método estándar para este problema. Sin embargo, consume mucho tiempo de procesamiento calculando las distancias entre cada uno de los k centros de clúster y los n puntos de datos. Dado que los puntos suelen permanecer en los mismos clústeres tras varias iteraciones, gran parte de este trabajo es innecesario, lo que hace que la implementación ingenua sea muy ineficiente. Algunas implementaciones utilizan el almacenamiento en caché y la desigualdad triangular para crear límites y acelerar el algoritmo de Lloyd. [ 23 ] [ 10 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ]

Número óptimo de clústeres

Determinar el número óptimo de clústeres ( k ) para el agrupamiento k -medias es un paso crucial para garantizar que los resultados del agrupamiento sean significativos y útiles. [ 28 ] Existen varias técnicas para determinar un número adecuado de clústeres. A continuación, se presentan algunos de los métodos más utilizados:

  • Método del codo (agrupamiento) : Este método consiste en graficar la variación explicada en función del número de clústeres y seleccionar el punto de inflexión de la curva como el número de clústeres a utilizar. [ 29 ] Sin embargo, la noción de "codo" no está bien definida y se sabe que es poco fiable. [ 30 ]
  • Silueta (agrupamiento) : El análisis de silueta mide la calidad del agrupamiento y proporciona información sobre la distancia de separación entre los grupos resultantes. [ 31 ] Una puntuación de silueta más alta indica que el objeto se ajusta bien a su propio grupo y se ajusta mal a los grupos vecinos.
  • Estadística de brecha : La estadística de brecha compara la variación total dentro del clúster para diferentes valores de k con sus valores esperados bajo la distribución de referencia nula de los datos. [ 32 ] El valor óptimo de k es el que produce la mayor estadística de brecha.
  • Índice de Davies-Bouldin : El índice de Davies-Bouldin es una medida de la separación entre clústeres. [ 33 ] Valores más bajos del índice de Davies-Bouldin indican un modelo con mejor separación.
  • Índice de Calinski-Harabasz : Este índice evalúa los clústeres en función de su compacidad y separación. Se calcula utilizando la relación entre la varianza entre clústeres y la varianza dentro de los clústeres; valores más altos indican clústeres mejor definidos. [ 34 ]
  • Índice de Rand : Calcula la proporción de concordancia entre dos clústeres, considerando tanto los pares de elementos que se asignan correctamente al mismo clúster como a clústeres diferentes. [ 35 ] Valores más altos indican mayor similitud y mejor calidad de agrupamiento. Para proporcionar una medida más precisa, el Índice de Rand Ajustado (ARI), introducido por Hubert y Arabie en 1985, corrige el Índice de Rand ajustándolo a la similitud esperada de todos los emparejamientos debido al azar. [ 36 ]

Variaciones

Método de Hartigan-Wong

El método de Hartigan y Wong [ 10 ] proporciona una variación del algoritmo k -medias que avanza hacia un mínimo local del problema de la suma mínima de cuadrados con diferentes actualizaciones de la solución. El método es una búsqueda local que intenta iterativamente reubicar una muestra en un clúster diferente mientras este proceso mejore la función objetivo. Cuando ninguna muestra puede reubicarse en un clúster diferente con una mejora de la función objetivo, el método se detiene (en un mínimo local). De manera similar al k -medias clásico, el enfoque sigue siendo una heurística, ya que no garantiza necesariamente que la solución final sea globalmente óptima.

Dejarφ(Sj){\displaystyle \varphi (S_{j})}ser el costo individual deSj{\displaystyle S_{j}}definido porincógnitaSj(incógnitaμj)2{\textstyle \sum _{x\in S_{j}}(x-\mu _{j})^{2}}, conμj{\displaystyle \mu _{j}}el centro del grupo.

Paso de asignación
El método de Hartigan y Wong comienza dividiendo los puntos en grupos aleatorios.{Sj}j{1,k}{\displaystyle \{S_{j}\}_{j\in \{1,\cdots k\}}}.
Paso de actualización
A continuación determina elnorte,metro{1,,k}{\displaystyle n,m\in \{1,\ldots ,k\}}yincógnitaSnorte{\displaystyle x\in S_{n}}para la cual la siguiente función alcanza un máximoΔ(metro,norte,incógnita)=φ(Snorte)+φ(Smetro)φ(Snorte{incógnita})φ(Smetro{incógnita}).{\displaystyle \Delta (m,n,x)=\varphi (S_{n})+\varphi (S_{m})-\varphi (S_{n}\setminus \{x\})-\varphi (S_{m}\cup \{x\}).}Para elincógnita,norte,metro{\displaystyle x,n,m}que alcanzan este máximo,incógnita{\displaystyle x}movimientos del grupoSnorte{\displaystyle S_{n}}al grupoSmetro{\displaystyle S_{m}}.
Terminación
El algoritmo finaliza una vezΔ(metro,norte,incógnita){\displaystyle \Delta (m,n,x)}es menor que cero para todosincógnita,norte,metro{\displaystyle x,n,m}.

Se pueden utilizar diferentes estrategias de aceptación de movimientos. En una estrategia de primera mejora , se puede aplicar cualquier reubicación que mejore la solución, mientras que en una estrategia de mejor mejora , todas las reubicaciones posibles se prueban iterativamente y solo se aplica la mejor en cada iteración. El primer enfoque favorece la velocidad, mientras que el segundo generalmente favorece la calidad de la solución a costa de un mayor tiempo de cálculo. La funciónΔ{\displaystyle \Delta }utilizado para calcular el resultado de una reubicación también puede evaluarse eficientemente mediante el uso de la igualdad [ 46 ]

Δ(incógnita,norte,metro)=SnorteSnorte1μnorteincógnita2SmetroSmetro+1μmetroincógnita2.{\displaystyle \Delta (x,n,m)={\frac {\mid S_{n}\mid }{\mid S_{n}\mid -1}}\cdot \lVert \mu _{n}-x\rVert ^{2}-{\frac {\mid S_{m}\mid }{\mid S_{m}\mid +1}}\cdot \lVert \mu _{m}-x\rVert ^{2}.}

Optimización global y metaheurísticas

Se sabe que el algoritmo k -medias clásico y sus variaciones solo convergen a mínimos locales del problema de agrupamiento de suma mínima de cuadrados definido como argramometroinorteSi=1kincógnitaSiincógnitaμi2.{\displaystyle \mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}\sum _{\mathbf {x} \in S_{i}}\left\|\mathbf {x} -{\boldsymbol {\mu }}_{i}\right\|^{2}.} Muchos estudios han intentado mejorar el comportamiento de convergencia del algoritmo y maximizar las posibilidades de alcanzar el óptimo global (o al menos, mínimos locales de mejor calidad). Las técnicas de inicialización y reinicio analizadas en las secciones anteriores son una alternativa para encontrar mejores soluciones. Más recientemente, los algoritmos de optimización global basados ​​en ramificación y acotación y programación semidefinida han producido soluciones "demostradamente óptimas" para conjuntos de datos con hasta 4177 entidades y 20 531 características. [ 47 ] Como era de esperar, debido a la NP-dificultad del problema de optimización subyacente, el tiempo de cálculo de los algoritmos óptimos para k -medias aumenta rápidamente más allá de este tamaño. Las soluciones óptimas para escalas pequeñas y medianas siguen siendo valiosas como herramienta de referencia para evaluar la calidad de otras heurísticas. Para encontrar mínimos locales de alta calidad dentro de un tiempo computacional controlado pero sin garantías de optimalidad, otros trabajos han explorado metaheurísticas y otras técnicas de optimización global , por ejemplo, basadas en enfoques incrementales y optimización convexa, [ 48 ] intercambios aleatorios [ 49 ] (es decir, búsqueda local iterada ), búsqueda de vecindario variable [ 50 ] y algoritmos genéticos . [ 51 ] [ 52 ] De hecho, se sabe que encontrar mejores mínimos locales del problema de agrupamiento de suma mínima de cuadrados puede marcar la diferencia entre el fracaso y el éxito para recuperar estructuras de clúster en espacios de características de alta dimensión. [ 52 ]

Discusión

Un ejemplo típico de la convergencia del algoritmo k -means a un mínimo local. En este ejemplo, el resultado del agrupamiento k -means (figura de la derecha) contradice la estructura de clústeres evidente del conjunto de datos. Los círculos pequeños representan los puntos de datos, y las cuatro estrellas de rayos, los centroides (medias). La configuración inicial se muestra en la figura de la izquierda. El algoritmo converge tras cinco iteraciones, representadas en las figuras de izquierda a derecha. La ilustración se elaboró ​​con el applet Java de Mirkes. [ 53 ]
Resultado del agrupamiento k -means para el conjunto de datos de la flor Iris y las especies reales visualizadas mediante ELKI . Las medias de los clústeres están marcadas con símbolos más grandes y semitransparentes.
Comparación entre el algoritmo k -means y el algoritmo EM en un conjunto de datos artificial ("mouse"). La tendencia de k -means a generar grupos de igual tamaño conduce a malos resultados, mientras que EM se beneficia de las distribuciones gaussianas con diferentes radios presentes en el conjunto de datos.

Tres características clave del algoritmo k -medias que lo hacen eficiente suelen considerarse sus mayores inconvenientes:

  • La distancia euclidiana se utiliza como métrica y la varianza como medida de la dispersión de los clústeres.
  • El número de clústeres k es un parámetro de entrada: una elección inadecuada de k puede generar malos resultados. Por eso, al realizar el algoritmo k -medias, es importante ejecutar comprobaciones de diagnóstico para determinar el número de clústeres en el conjunto de datos .
  • La convergencia a un mínimo local puede producir resultados contraintuitivos ("erróneos") (véase el ejemplo en la figura).

Una limitación clave de k -means es su modelo de clúster. El concepto se basa en clústeres esféricos que son separables de modo que la media converge hacia el centro del clúster. Se espera que los clústeres sean de tamaño similar, de modo que la asignación al centro del clúster más cercano sea la asignación correcta. Por ejemplo, al aplicar k -means con un valor dek=3{\displaystyle k=3}En el conocido conjunto de datos de flores de iris , el resultado a menudo no logra separar las tres especies de iris contenidas en el conjunto de datos.k=2{\displaystyle k=2}, se descubrirán los dos grupos visibles (uno que contiene dos especies), mientras que conk=3{\displaystyle k=3}Uno de los dos grupos se dividirá en dos partes iguales. De hecho,k=2{\displaystyle k=2}Es más apropiado para este conjunto de datos, a pesar de que contiene 3 clases . Como cualquier otro algoritmo de agrupamiento, el resultado de k -medias presupone que los datos cumplen ciertos criterios. Funciona bien con algunos conjuntos de datos y falla con otros.

El resultado de k -medias puede verse como las celdas de Voronoi de las medias de los clústeres. Dado que los datos se dividen a la mitad entre las medias de los clústeres, esto puede conducir a divisiones subóptimas, como se observa en el ejemplo del "ratón". Los modelos gaussianos utilizados por el algoritmo de expectativa-maximización (posiblemente una generalización de k -medias) son más flexibles al tener tanto varianzas como covarianzas. Por lo tanto, el resultado de EM puede acomodar clústeres de tamaño variable mucho mejor que k -medias, así como clústeres correlacionados (no en este ejemplo). En contrapartida, EM requiere la optimización de un mayor número de parámetros libres y plantea algunos problemas metodológicos debido a clústeres evanescentes o matrices de covarianza mal condicionadas. k -medias está estrechamente relacionado con el modelado bayesiano no paramétrico . [ 54 ]

Aplicaciones

El algoritmo de agrupamiento k -means es bastante fácil de aplicar incluso a grandes conjuntos de datos, especialmente al usar heurísticas como el algoritmo de Lloyd . Se ha utilizado con éxito en segmentación de mercado , visión artificial y astronomía, entre muchos otros campos. A menudo se emplea como paso previo al procesamiento de otros algoritmos, por ejemplo, para encontrar una configuración inicial.

Biología

Mapa de calor de datos de codetección genómica agrupados. Cada fila representa una ventana genómica y cada columna un perfil nuclear; el blanco indica regiones detectadas y el negro, su ausencia. La agrupación revela grupos de regiones con patrones de codetección similares, lo que ilustra cómo la agrupación permite identificar comportamientos genómicos coordinados.

En aplicaciones biológicas, las limitaciones del agrupamiento k -means estándar suelen abordarse adaptando las medidas de distancia y las funciones objetivo utilizadas para reflejar mejor la estructura de los datos experimentales. En lugar de basarse en la distancia euclidiana y las medidas de dispersión de clústeres basadas en la varianza, a veces se utilizan métricas de similitud alternativas, como el índice de Jaccard , al analizar conjuntos de datos genómicos con k-means. En estos contextos, el agrupamiento puede realizarse directamente sobre matrices de distancias, y los medoides (puntos de datos representativos que tienen la menor distancia promedio a todos los demás puntos dentro de un clúster) pueden seleccionarse como centros de clúster en lugar de las medias aritméticas. Esto permite que los métodos de agrupamiento capturen patrones de características genómicas compartidas o coocurrencia que no están bien representados en un análisis euclidiano tradicional. [ 55 ]

El agrupamiento se utiliza ampliamente en el análisis de datos biológicos para identificar patrones en conjuntos de datos de alta dimensionalidad, como perfiles de expresión génica y matrices de interacción genómica. Técnicas como el agrupamiento k -means dividen las observaciones en grupos según su similitud, lo que permite a los investigadores detectar estructuras en conjuntos de datos complejos. En los estudios de expresión génica, el agrupamiento se utiliza comúnmente para agrupar genes con perfiles de expresión similares, revelando a menudo genes corregulados e interacciones biológicas subyacentes. [ 56 ]

Además del análisis de la expresión génica, se aplican métodos de agrupamiento a los datos de interacción de la cromatina para identificar regiones de actividad coordinada. Medidas de similitud como el índice de Jaccard pueden utilizarse para cuantificar características compartidas entre observaciones, y el agrupamiento de las matrices de distancia resultantes puede revelar la organización estructural dentro del genoma. Estos patrones se visualizan comúnmente mediante mapas de calor, donde las regiones agrupadas corresponden a dominios de interacción o cosegregación, lo que proporciona información sobre la organización reguladora del genoma. [ 55 ] En tales análisis, el agrupamiento de matrices de similitud o codetección puede revelar grupos de ventanas genómicas que exhiben un comportamiento coordinado en diferentes condiciones experimentales. [ 55 ]

Los métodos de agrupamiento proporcionan una forma práctica de descubrir estructuras biológicamente significativas a partir de conjuntos de datos complejos. Al agrupar observaciones con patrones similares de detección genómica, expresión o interacción, estas técnicas pueden revelar relaciones funcionales, organización espacial dentro del núcleo y comportamiento regulador. En muchas aplicaciones, los grupos resultantes corresponden a estados biológicos o dominios estructurales distintos, lo que ilustra aún más la amplia aplicabilidad del agrupamiento k-means. [ 56 ]

Cuantización vectorial

La cuantización vectorial , una técnica comúnmente utilizada en el procesamiento de señales y los gráficos por computadora, consiste en reducir la paleta de colores de una imagen a un número fijo de colores, conocido como k . Un método popular para lograr la cuantización vectorial es mediante el agrupamiento k -means. En este proceso, k -means se aplica al espacio de color de una imagen para dividirla en k grupos, donde cada grupo representa un color distinto en la imagen. Esta técnica es particularmente útil en tareas de segmentación de imágenes, donde ayuda a identificar y agrupar colores similares.

Imagen de ejemplo con solo los canales rojo y verde (con fines ilustrativos).
Cuantización vectorial de los colores presentes en la imagen superior en celdas de Voronoi mediante k -medias.

Ejemplo: En el campo de los gráficos por computadora , el agrupamiento k -means se emplea frecuentemente para la cuantificación del color en la compresión de imágenes. Al reducir la cantidad de colores utilizados para representar una imagen, el tamaño de los archivos se puede disminuir significativamente sin una pérdida significativa de calidad visual. Por ejemplo, consideremos una imagen con millones de colores. Al aplicar el agrupamiento k -means con k establecido en un número menor, la imagen se puede representar utilizando una paleta de colores más limitada , lo que resulta en una versión comprimida que consume menos espacio de almacenamiento y ancho de banda. Otros usos de la cuantificación vectorial incluyen el muestreo no aleatorio , ya que k -means se puede utilizar fácilmente para seleccionar k objetos diferentes pero prototípicos de un gran conjunto de datos para su posterior análisis.

Análisis de clúster

El análisis de clústeres , una tarea fundamental en la minería de datos y el aprendizaje automático , consiste en agrupar un conjunto de datos en clústeres según su similitud. El algoritmo k -means es un método popular para dividir los datos en k clústeres, donde cada clúster está representado por su centroide.

Sin embargo, el algoritmo k -medias puro no es muy flexible y, por lo tanto, su utilidad es limitada (excepto cuando la cuantización vectorial, como se mencionó anteriormente, es el caso de uso deseado). En particular, se sabe que el parámetro k es difícil de elegir (como se explicó anteriormente) cuando no está determinado por restricciones externas. Otra limitación es que no se puede utilizar con funciones de distancia arbitrarias ni con datos no numéricos. Para estos casos de uso, existen muchos otros algoritmos superiores.

Ejemplo: En marketing, el algoritmo k -means se utiliza frecuentemente para la segmentación de mercado , donde se agrupan clientes con características o comportamientos similares. Por ejemplo, una empresa minorista puede usar k -means para segmentar su base de clientes en grupos distintos según factores como el comportamiento de compra, la demografía y la ubicación geográfica. Estos segmentos de clientes pueden ser el objetivo de estrategias de marketing y ofertas de productos personalizadas para maximizar las ventas y la satisfacción del cliente.

Aprendizaje de características

El agrupamiento k -means se ha utilizado como un paso de aprendizaje de características (o aprendizaje de diccionario ), ya sea en aprendizaje ( semi ) supervisado o no supervisado . [ 57 ] El enfoque básico consiste primero en entrenar una representación de agrupamiento k -means, utilizando los datos de entrenamiento de entrada (que no necesitan estar etiquetados). Luego, para proyectar cualquier dato de entrada en el nuevo espacio de características, una función de "codificación", como el producto matricial umbralizado del dato con las ubicaciones de los centroides, calcula la distancia del dato a cada centroide, o simplemente una función indicadora para el centroide más cercano, [ 57 ] [ 58 ] o alguna transformación suave de la distancia. [ 59 ] Alternativamente, transformar la distancia muestra-clúster a través de una RBF gaussiana , obtiene la capa oculta de una red de función de base radial . [ 60 ]

Este uso de k -medias se ha combinado con éxito con clasificadores lineales simples para el aprendizaje semisupervisado en PLN (específicamente para el reconocimiento de entidades nombradas ) [ 61 ] y en visión artificial . En una tarea de reconocimiento de objetos, se encontró que exhibía un rendimiento comparable con enfoques de aprendizaje de características más sofisticados, como autoencoders y máquinas de Boltzmann restringidas . [ 59 ] Sin embargo, generalmente requiere más datos para un rendimiento equivalente, porque cada punto de datos solo contribuye a una "característica". [ 57 ]

Ejemplo: En el procesamiento del lenguaje natural (PLN), el agrupamiento k -means se ha integrado con clasificadores lineales simples para tareas de aprendizaje semisupervisado, como el reconocimiento de entidades nombradas (REN). Al agrupar primero datos de texto sin etiquetar mediante k -means, se pueden extraer características significativas para mejorar el rendimiento de los modelos de REN . Por ejemplo, el agrupamiento k -means se puede aplicar para identificar grupos de palabras o frases que coocurren con frecuencia en el texto de entrada, las cuales se pueden usar como características para entrenar el modelo de REN. Se ha demostrado que este enfoque logra un rendimiento comparable con técnicas de aprendizaje de características más complejas , como los autoencoders y las máquinas de Boltzmann restringidas , aunque requiere una mayor cantidad de datos etiquetados.

Paralelización de Big Data

Tiempo de ejecución del algoritmo de agrupamiento k-means a medida que aumenta el tamaño del conjunto de datos utilizando OpenMP, OpenACC y enfoques seriales.

El algoritmo estándar de Lloyd es inherentemente secuencial. Su complejidad temporal efectiva es O(nkdi), lo que se convierte en un cuello de botella a medida que aumenta el número de puntos de datos (n) o dimensiones (d). Esto puede resultar ineficiente al utilizarse con conjuntos de datos masivos y multidimensionales, como las redes sociales. Se han desarrollado diversas estrategias de paralelización para distribuir la carga de trabajo entre procesadores multinúcleo, GPU y clústeres distribuidos.

  • Modelo de Memoria Compartida ( OpenMP ): Este enfoque divide el trabajo entre los hilos de la CPU para el paso de reasignación del proceso. Estos hilos calculan de forma independiente las distancias a los centroides. Las sumas parciales y los recuentos de cada hilo se agregan para calcular los nuevos centroides para la siguiente iteración. [ 62 ]
  • Paralelización de GPU ( OpenACC ): A diferencia de la implementación de OpenMP, la directiva parallel del programa OpenACC se llama en cada paso necesario en lugar de al principio. Esto aprovecha la arquitectura SIMT (Single Instruction, Multiple Threads) de las GPU para realizar miles de cálculos de distancia simultáneamente. [ 62 ]

Observamos que en ambas versiones paralelas, la eficiencia aumenta considerablemente para conjuntos de datos grandes. Esta aceleración es significativa en la implementación de OpenACC, debido a la naturaleza masivamente paralela de las arquitecturas de GPU .

Astronomía

Un diagrama de Hertzsprung-Russell que representa las estrellas según su luminosidad y tipo espectral, el tipo de datos característicos que se utilizan en la clasificación estelar k-means.

Los modernos estudios astronómicos como APOGEE y el catálogo Gaia recopilan datos espectroscópicos y fotométricos de millones de estrellas, lo que hace que la clasificación manual sea impracticable a gran escala. Se ha aplicado el algoritmo de agrupamiento K -means a estos datos para identificar automáticamente poblaciones estelares distintas basándose en propiedades como la luminosidad, la temperatura, el color y la abundancia química. [ 63 ]

Una aplicación importante es la identificación de poblaciones estelares mediante el etiquetado químico. Las estrellas que se forman juntas en el mismo cúmulo comparten composiciones químicas similares, por lo que los algoritmos de agrupamiento aplicados a los datos de abundancia pueden recuperar estas agrupaciones incluso después de que las estrellas se hayan dispersado por toda la galaxia. Estudios que utilizaron k -medias en espectros infrarrojos de APOGEE midieron abundancias de hasta 13 elementos y lograron distinguir con éxito cúmulos estelares conocidos de las estrellas de campo circundantes. [ 63 ] Esto también ha revelado poblaciones con patrones de abundancia inusuales que serían difíciles de detectar mediante inspección manual.

El algoritmo K -means también se ha combinado con técnicas de reducción de dimensionalidad para clasificar un gran número de objetos de estudio sin etiquetar, separando estrellas, galaxias y cuásares según sus propiedades de luz observadas. Las etiquetas de los ejemplos confirmados se propagan a los miembros de cúmulos cercanos. Este enfoque ha logrado una precisión comparable a la de los métodos totalmente supervisados, requiriendo muchos menos ejemplos etiquetados, lo que lo hace idóneo para la escala de los estudios celestes modernos. [ 64 ]

K-means++ e inicialización escalable

Una inicialización adecuada es fundamental para encontrar el óptimo global en un algoritmo de agrupamiento. La inicialización aleatoria se usa frecuentemente en el agrupamiento k-means, pero esto puede resultar en clústeres de baja calidad. [ 65 ] Por esta razón se desarrolló el algoritmo de inicialización k-means++ . [ 65 ] Este algoritmo busca centros iniciales lo más cercanos posible al óptimo global, reduciendo el tiempo de cálculo y generando clústeres más precisos. [ 65 ]

El algoritmo k-means++ funciona distribuyendo los centros de los clústeres iniciales. Selecciona el primer centro de forma uniforme y aleatoria del conjunto de datos. Cada centro subsiguiente se elige estocásticamente, con una probabilidad proporcional a su contribución al error total. [ 65 ] Este método logra una aproximación O(log k) de la solución óptima. [ 65 ]

Efecto del número de rondas de inicialización y del factor de sobremuestreo (ℓ) en el coste de agrupamiento en k-means||. El gráfico muestra que la calidad del agrupamiento mejora rápidamente durante las primeras rondas, con rendimientos decrecientes a medida que aumenta el número de rondas.

El principal inconveniente del algoritmo k-means++ estándar es su naturaleza inherentemente secuencial. Para encontrar k centros iniciales, el algoritmo debe realizar k pasadas separadas sobre los datos, ya que la selección de cada nuevo centro depende de las elecciones anteriores. [ 66 ] Esto se vuelve prohibitivamente lento al agrupar conjuntos de datos masivos en un gran número de clústeres. [ 66 ]

Para superar estas limitaciones, los investigadores desarrollaron k-means||, una versión paralela de k-means++ . [ 66 ] En lugar de muestrear un solo punto por pasada, k-means|| utiliza un factor de sobremuestreo ℓ = Ω (k) para muestrear múltiples puntos en cada ronda. [ 66 ] El algoritmo reduce drásticamente el número de pasadas necesarias, obteniendo un conjunto de centros casi óptimo con una complejidad temporal de O(log n). [ 66 ] En la práctica, se necesitan tan solo cinco rondas para alcanzar una solución de alta calidad. Después de varias rondas, el algoritmo suele tener O(log n) centros intermedios. [ 66 ] A estos se les asignan pesos en función de cuántos puntos están cerca de ellos y se vuelven a agrupar, a menudo utilizando k-means++ estándar , para reducir el conjunto final a k centros exactos. [ 66 ]

Novedades recientes

Los avances recientes en la aplicación del algoritmo de agrupamiento k -means han explorado la integración de este algoritmo con métodos de aprendizaje profundo, como las redes neuronales convolucionales (CNN) y las redes neuronales recurrentes (RNN), para mejorar el rendimiento de diversas tareas en visión artificial , procesamiento del lenguaje natural y otros ámbitos.

Relación con otros algoritmos

modelo de mezcla gaussiana

El lento "algoritmo estándar" para la agrupación k -medias, y su algoritmo de expectativa-maximización asociado , es un caso especial de un modelo de mezcla gaussiana, específicamente, el caso límite cuando se fijan todas las covarianzas para que sean diagonales, iguales y tengan una varianza infinitesimalmente pequeña. [ 67 ] : 850 En lugar de pequeñas varianzas, también se puede utilizar una asignación de clústeres dura para mostrar otra equivalencia de la agrupación k -medias a un caso especial de modelado de mezcla gaussiana "dura". [ 68 ] : 354, 11.4.2.5 Esto no significa que sea eficiente utilizar el modelado de mezcla gaussiana para calcular k -medias, sino solo que existe una relación teórica, y que el modelado de mezcla gaussiana puede interpretarse como una generalización de k -medias; por el contrario, se ha sugerido utilizar la agrupación k -medias para encontrar puntos de partida para el modelado de mezcla gaussiana en datos difíciles. [ 67 ] : 849

k -SVD

Otra generalización del algoritmo k -medias es el algoritmo k -SVD, que estima los puntos de datos como una combinación lineal dispersa de "vectores de diccionario de códigos". k -medias corresponde al caso especial de usar un único vector de diccionario de códigos, con un peso de 1. [ 69 ]

Análisis de componentes principales

La solución relajada del agrupamiento k -means, especificada por los indicadores de clúster, viene dada por el análisis de componentes principales (PCA). [ 70 ] [ 71 ] La intuición es que k -means describe clústeres de forma esférica (como una bola). Si los datos tienen 2 clústeres, la línea que conecta los dos centroides es la mejor dirección de proyección unidimensional, que también es la primera dirección de PCA. Cortar la línea en el centro de masa separa los clústeres (esta es la relajación continua del indicador de clúster discreto). Si los datos tienen tres clústeres, el plano bidimensional generado por los tres centroides de clúster es la mejor proyección bidimensional. Este plano también está definido por las dos primeras dimensiones de PCA. Los clústeres bien separados se modelan eficazmente mediante clústeres en forma de bola y, por lo tanto, se descubren mediante k -means. Los clústeres que no tienen forma de bola son difíciles de separar cuando están cerca. Por ejemplo, dos clústeres en forma de media luna entrelazados en el espacio no se separan bien cuando se proyectan en el subespacio de PCA. No se debe esperar que k -means funcione bien con estos datos. [ 72 ] Es sencillo producir contraejemplos a la afirmación de que el subespacio del centroide del clúster está generado por las direcciones principales. [ 73 ]

Agrupamiento por desplazamiento de la media

Los algoritmos básicos de agrupamiento por desplazamiento de la media mantienen un conjunto de puntos de datos del mismo tamaño que el conjunto de datos de entrada. Inicialmente, este conjunto se copia del conjunto de entrada. Luego, todos los puntos se mueven iterativamente hacia la media de los puntos que los rodean. Por el contrario, k -medias restringe el conjunto de clústeres a k clústeres, generalmente mucho menos que el número de puntos en el conjunto de datos de entrada, utilizando la media de todos los puntos en el clúster anterior que están más cerca de ese punto que cualquier otro para el centroide (por ejemplo, dentro de la partición de Voronoi de cada punto de actualización). Un algoritmo de desplazamiento de la media que es similar a k -medias, llamado desplazamiento de la media de la verosimilitud , reemplaza el conjunto de puntos que se está reemplazando por la media de todos los puntos en el conjunto de entrada que están dentro de una distancia dada del conjunto que cambia. [ 74 ] Una ventaja del agrupamiento por desplazamiento de la media sobre k -medias es la detección de un número arbitrario de clústeres en el conjunto de datos, ya que no hay un parámetro que determine el número de clústeres. El método Mean Shift puede ser mucho más lento que el algoritmo k -means y aún requiere la selección de un parámetro de ancho de banda.

Análisis de componentes independientes

Bajo supuestos de escasez y cuando los datos de entrada se preprocesan con la transformación de blanqueamiento , k -means produce la solución a la tarea de análisis de componentes independientes lineales (ICA). Esto ayuda a explicar la aplicación exitosa de k -means al aprendizaje de características . [ 75 ]

Filtrado bilateral

El algoritmo k -means asume implícitamente que el orden de los datos de entrada no importa. El filtro bilateral es similar a k -means y al cambio de media, ya que mantiene un conjunto de puntos de datos que se reemplazan iterativamente por medias. Sin embargo, el filtro bilateral restringe el cálculo de la media (ponderada por el núcleo) para incluir solo los puntos que están cerca en el orden de los datos de entrada. [ 74 ] Esto lo hace aplicable a problemas como la eliminación de ruido en imágenes, donde la disposición espacial de los píxeles en una imagen es de vital importancia.

Problemas similares

El conjunto de funciones de agrupamiento que minimizan el error cuadrático también incluye el algoritmo k -medoides , un enfoque que fuerza al punto central de cada grupo a ser uno de los puntos reales, es decir, utiliza medoides en lugar de centroides .

Implementaciones de software

Las distintas implementaciones del algoritmo presentan diferencias de rendimiento: la más rápida, en un conjunto de datos de prueba, finaliza en 10 segundos, mientras que la más lenta tarda 25 988 segundos (aproximadamente 7 horas). [ 1 ] Estas diferencias pueden atribuirse a la calidad de la implementación, las diferencias en el lenguaje y el compilador, los distintos criterios de terminación y niveles de precisión, y el uso de índices para la aceleración.

Software libre/Código abierto

Las siguientes implementaciones están disponibles bajo licencias de software libre/de código abierto , con código fuente disponible públicamente.

  • Accord.NET contiene implementaciones en C# para k -means, k -means++ y k- modes.
  • ALGLIB contiene implementaciones paralelas en C++ y C# para k -means y k -means++.
  • AOSP contiene una implementación en Java para el algoritmo k -medias.
  • CrimeStat implementa dos algoritmos k -medias espaciales, uno de los cuales permite al usuario definir las ubicaciones de inicio.
  • ELKI incluye el algoritmo k -means (con la iteración de Lloyd y MacQueen, junto con diferentes inicializaciones como la inicialización k -means++) y varios algoritmos de agrupamiento más avanzados.
  • Smile incluye k -means y otros algoritmos, así como visualización de resultados (para Java, Kotlin y Scala).
  • Julia incluye una implementación del algoritmo k -means en el paquete JuliaStats Clustering.
  • KNIME contiene nodos para k -medias y k -medoides.
  • Mahout incluye un algoritmo k- means basado en MapReduce .
  • mlpack contiene una implementación en C++ del algoritmo k -medias.
  • Octave contiene k -medias.
  • OpenCV incluye una implementación del algoritmo k -means.
  • Orange incluye un componente para la agrupación k -means con selección automática de k y puntuación de la silueta del clúster.
  • PSPP contiene k -means. El comando QUICK CLUSTER realiza una agrupación k -means en el conjunto de datos.
  • R contiene tres variaciones del algoritmo k -medias.
  • SciPy y scikit-learn contienen múltiples implementaciones del algoritmo k -means.
  • Spark MLlib implementa un algoritmo k -medias distribuido.
  • Torch incluye un paquete `unsup` que proporciona agrupamiento k -means.
  • Weka contiene k -medias y x -medias.

Propiedad

Las siguientes implementaciones están disponibles bajo términos de licencia propietaria y es posible que no tengan código fuente disponible públicamente.

Véase también

Referencias

  1. 1 2 Kriegel, Hans-Peter ; Schubert, Erich; Zimek, Arthur (2016). "El (oscuro) arte de la evaluación en tiempo de ejecución: ¿Estamos comparando algoritmos o implementaciones?". Knowledge and Information Systems . 52 (2): 341– 378. doi : 10.1007/s10115-016-1004-2 . ISSN 0219-1377 . S2CID 40772241 .  
  2. MacQueen, JB (1967). Algunos métodos para la clasificación y el análisis de observaciones multivariadas . Actas del 5.º Simposio de Berkeley sobre Estadística Matemática y Probabilidad. Vol. 1. University of California Press. págs. 281–297 . MR 0214227. Zbl 0214.46201 . Consultado el 7 de abril de 2009 .    
  3. Steinhaus, Hugo (1957). "Sur la division des corps matériels en Parties". Toro. Acad. Polon. Ciencia. (en francés). 4 (12): 801– 804. SEÑOR 0090073 . Zbl 0079.16403 .  
  4. 1 2 Lloyd, Stuart P. (1957). "Cuantización por mínimos cuadrados en PCM". Documento de Bell Telephone Laboratories .Publicado en revista mucho más tarde: Lloyd, Stuart P. (1982). "Cuantización por mínimos cuadrados en PCM" (PDF) . IEEE Transactions on Information Theory . 28 (2): 129– 137. Bibcode : 1982ITIT...28..129L . CiteSeerX 10.1.1.131.1338 . doi : 10.1109/TIT.1982.1056489 . S2CID 10833328. Recuperado el 15 de abril de 2009 .  
  5. Forgy, Edward W. (1965). "Análisis de conglomerados de datos multivariados: eficiencia versus interpretabilidad de las clasificaciones". Biometrics . 21 (3): 768– 769. JSTOR 2528559 . 
  6. 1 2 Jain, AK (2010). "Agrupamiento de datos: 50 años más allá de k-medias". IEEE Transactions on Pattern Analysis and Machine Intelligence . 31 (11): 651– 666. Bibcode : 2010PaReL..31..651J . doi : 10.1016/j.patrec.2009.09.011 .
  7. Pelleg, Dan; Moore, Andrew (1999). «Aceleración de algoritmos exactos de k -medias con razonamiento geométrico» . Actas de la quinta conferencia internacional ACM SIGKDD sobre descubrimiento de conocimiento y minería de datos . San Diego, California, Estados Unidos: ACM Press. págs. 277–281 . doi : 10.1145/312129.312248 . ISBN  9781581131437. S2CID 13907420 . 
  8. MacKay, David (2003). «Capítulo 20. Un ejemplo de tarea de inferencia: agrupamiento» (PDF) . Teoría de la información, inferencia y algoritmos de aprendizaje . Cambridge University Press. págs. 284–292 . ISBN  978-0-521-64298-9. MR 2012999 . 
  9. Dado que la raíz cuadrada es una función monótona, esta también es la asignación de distancia euclidiana mínima.
  10. 1 2 3 4 5 Hartigan, JA; Wong, MA (1979). "Algoritmo AS 136: Un algoritmo de agrupamiento k -medias". Journal of the Royal Statistical Society, Serie C . 28 (1): 100– 108. JSTOR 2346830 . 
  11. 1 2 Hamerly, Greg; Elkan, Charles (2002). "Alternativas al algoritmo k -medias que encuentran mejores agrupaciones" (PDF) . Actas de la undécima conferencia internacional sobre gestión de información y conocimiento (CIKM) .
  12. Celebi, ME; Kingravi, HA; Vela, PA (2013). "Un estudio comparativo de métodos de inicialización eficientes para el algoritmo de agrupamiento k -means". Expert Systems with Applications . 40 (1): 200– 210. arXiv : 1209.1960 . doi : 10.1016/j.eswa.2012.07.021 . S2CID 6954668 . 
  13. Bradley, Paul S.; Fayyad, Usama M. (1998). "Refinamiento de puntos iniciales para agrupamiento k -medias". Actas de la decimoquinta Conferencia Internacional sobre Aprendizaje Automático .
  14. Vattani, A. (2011). "k-means requiere un número exponencial de iteraciones incluso en el plano" (PDF) . Geometría discreta y computacional . 45 (4): 596– 616. doi : 10.1007/s00454-011-9340-1 . S2CID 42683406 . 
  15. 1 2 Arthur, David; Manthey, B.; Roeglin, H. (2009). "k-means tiene una complejidad suavizada polinomial". Actas del 50.º Simposio sobre Fundamentos de la Informática (FOCS) . arXiv : 0904.1113 .
  16. Aloise, D.; Deshpande, A.; Hansen, P.; Popat, P. (2009). "NP-dureza del agrupamiento de suma de cuadrados euclidiana" . Machine Learning . 75 (2): 245– 249. Bibcode : 2009MLear..75..245A . doi : 10.1007/s10994-009-5103-0 .
  17. Dasgupta, S.; Freund, Y. (julio de 2009). "Árboles de proyección aleatorios para cuantización vectorial". IEEE Transactions on Information Theory . 55 (7): 3229– 42. arXiv : 0805.1390 . Bibcode : 2009ITIT...55.3229D . doi : 10.1109/TIT.2009.2021326 . S2CID 666114 . 
  18. Mahajan, Meena ; Nimbhorkar, Prajakta; Varadarajan, Kasturi (2009). "El problema de k-medias planar es NP-difícil". WALCOM: Algoritmos y computación . Notas de clase en ciencias de la computación. Vol. 5431. págs. 274–285 . doi : 10.1007/978-3-642-00202-1_24 . ISBN   978-3-642-00201-4.
  19. Inaba, M.; Katoh, N.; Imai, H. (1994). Aplicaciones de diagramas de Voronoi ponderados y aleatorización al agrupamiento k basado en la varianza . Actas del 10.º Simposio ACM sobre Geometría Computacional . págs. 332–339 . doi : 10.1145/177424.178042 . 
  20. ^ Manning, Christopher D.; Raghavan, Prabhakar; Schütze, Hinrich (2008). Introducción a la recuperación de información . Prensa de la Universidad de Cambridge. ISBN 978-0521865715OCLC 190786122 
  21. 1 2 Arthur, David; Vassilvitskii, Sergei (1 de enero de 2006). "¿Qué tan lento es el método k -medias?". Actas del vigésimo segundo simposio anual sobre geometría computacional . SCG '06. ACM. págs. 144–153 . doi : 10.1145/1137856.1137880 . ISBN  978-1595933409. S2CID 3084311 . 
  22. Bhowmick, Abhishek (2009). "Análisis teórico del algoritmo de Lloyd para la agrupación k -medias" (PDF) . Archivado del original (PDF) el 8 de diciembre de 2015.Véase también aquí .
  23. Ding, Yufei; Zhao, Yue; Shen, Xipeng; Musuvathi, Madan; Mytkowiczyear, Todd. "Yinyang K-Means: un reemplazo directo del K-Means clásico con aceleración consistente" (PDF) . Actas de la Trigésimo Segunda Conferencia Internacional sobre Aprendizaje Automático (ICML) .
  24. 1 2 Phillips, Steven J. (2002). "Aceleración de K-Means y algoritmos de agrupamiento relacionados". En Mount, David M.; Stein, Clifford (eds.). Aceleración de k -Means y algoritmos de agrupamiento relacionados . Lecture Notes in Computer Science. Vol. 2409. Springer. pp. 166–177 . doi : 10.1007/3-540-45643-0_13 . ISBN   978-3-540-43977-6.
  25. 1 2 Elkan, Charles (2003). "Uso de la desigualdad triangular para acelerar k -medias" (PDF) . Actas de la Vigésima Conferencia Internacional sobre Aprendizaje Automático (ICML) .
  26. 1 2 Hamerly, Greg (2010). "Haciendo k-means aún más rápido". Actas de la Conferencia Internacional SIAM de Minería de Datos de 2010. págs. 130–140 . doi : 10.1137/1.9781611972801.12 . ISBN  978-0-89871-703-7.
  27. 1 2 Hamerly, Greg; Drake, Jonathan (2015). "Aceleración del algoritmo de Lloyd para la agrupación k-medias". Algoritmos de agrupación particional . págs. 41–78 . doi : 10.1007/978-3-319-09259-1_2 . ISBN  978-3-319-09258-4.
  28. Ikotun, Abiodun M.; Ezugwu, Absalom E.; Abualigah, Laith; Abuhaija, Belal; Heming, Jia (2023). "Algoritmos de agrupamiento K-means: una revisión exhaustiva, análisis de variantes y avances en la era del big data". Information Sciences . 622 : 178–210 . doi : 10.1016/j.ins.2022.11.139 .
  29. Thorndike, Robert L. (1953). "¿Quién pertenece a la familia?". Psychometrika . 18 (4): 267– 276. doi : 10.1007/BF02289263 .
  30. Schubert, Erich (2023). "Deje de usar el criterio del codo para k-means y cómo elegir el número de clústeres en su lugar". Boletín informativo de ACM SIGKDD Explorations . 25 : 36–42 . doi : 10.1145/3606274.3606278 .
  31. Rousseeuw, Peter J. (1987). "Siluetas: una ayuda gráfica para la interpretación y validación del análisis de clústeres". Journal of Computational and Applied Mathematics . 20 : 53–65 . doi : 10.1016/0377-0427(87)90125-7 .
  32. Tibshirani, Robert; Walther, Guenther; Hastie, Trevor (2001). "Estimación del número de clústeres en un conjunto de datos mediante la estadística de brecha". Journal of the Royal Statistical Society Series B: Statistical Methodology . 63 (2): 411– 423. doi : 10.1111/1467-9868.00293 .
  33. Davies, David L.; Bouldin, Donald W. (1979). "Una medida de separación de clústeres". IEEE Transactions on Pattern Analysis and Machine Intelligence . 1 (2): 224– 227. Bibcode : 1979ITPAM...1..224D . doi : 10.1109/TPAMI.1979.4766909 . PMID 21868852 . 
  34. Caliński, T.; Harabasz, J. (1974). "Un método dendrítico para el análisis de conglomerados". Communications in Statistics . 3 : 1– 27. doi : 10.1080/03610927408827101 .
  35. Rand, William M. (1971). "Criterios objetivos para la evaluación de métodos de agrupamiento". Journal of the American Statistical Association . 66 (336): 846– 850. doi : 10.2307/2284239 . JSTOR 2284239 . 
  36. Hubert, Lawrence; Arabie, Phipps (1985). "Comparación de particiones". Journal of Classification . 2 : 193–218 . doi : 10.1007/BF01908075 .
  37. Kanungo, Tapas; Mount, David M. ; Netanyahu, Nathan S. ; Piatko, Christine D. ; Silverman, Ruth; Wu, Angela Y. (2002). "Un algoritmo de agrupamiento k -medias eficiente: análisis e implementación" (PDF) . IEEE Transactions on Pattern Analysis and Machine Intelligence . 24 (7): 881– 892. Bibcode : 2002ITPAM..24..881K . doi : 10.1109/TPAMI.2002.1017616 . S2CID 12003435 . Archivado del original (PDF) el 07-10-2009 . Recuperado el 24-04-2009 . 
  38. Drake, Jonathan (2012). " K -medias aceleradas con límites de distancia adaptativos" (PDF) . El 5.º Taller NIPS sobre Optimización para el Aprendizaje Automático, OPT2012 .
  39. Dhillon, IS; Modha, DM (2001). "Descomposiciones de conceptos para grandes conjuntos de datos de texto dispersos mediante agrupamiento" . Machine Learning . 42 (1): 143– 175. Bibcode : 2001MLear..42..143D . doi : 10.1023/a:1007612920971 .
  40. Steinbach, M.; Karypis, G.; Kumar, V. (2000). ""Una comparación de técnicas de agrupamiento de documentos". En". Taller KDD sobre minería de texto . 400 (1): 525– 526.
  41. Pelleg, D.; & Moore, AW (2000, junio). " X-means: Extendiendo k -means con estimación eficiente del número de clústeres. Archivado el 9 de septiembre de 2016 en Wayback Machine ". En ICML , vol. 1
  42. Hamerly, Greg; Elkan, Charles (2004). "Aprendiendo la k en k-medias" (PDF) . Avances en sistemas de procesamiento de información neuronal . 16 : 281.
  43. Amorim, RC; Mirkin, B. (2012). "Métrica de Minkowski, ponderación de características e inicialización de clústeres anómalos en el agrupamiento k -medias". Pattern Recognition . 45 (3): 1061– 1075. doi : 10.1016/j.patcog.2011.08.012 .
  44. Amorim, RC; Hennig, C. (2015). "Recuperación del número de clústeres en conjuntos de datos con características de ruido mediante factores de reescalado de características". Information Sciences . 324 : 126–145 . arXiv : 1602.06989 . doi : 10.1016/j.ins.2015.06.039 . S2CID 315803 . 
  45. Sculley, David (2010). " Agrupamiento k- medias a escala web " . Actas de la 19.ª conferencia internacional sobre la World Wide Web . ACM. págs. 1177–1178 . Recuperado el 21 de diciembre de 2016 . 
  46. Telgarsky, Matus. "Método de Hartigan: Agrupamiento k -medias sin Voronoi" (PDF) .
  47. ^ Piccialli, Verónica; Sudoso, Antonio M.; Wiegele, Angelika (28 de marzo de 2022). "SOS-SDP: un solucionador exacto para agrupaciones mínimas de suma de cuadrados" . Revista INFORMA de Informática . 34 (4): 2144–2162 . arXiv : 2104.11542 . doi : 10.1287/ijoc.2022.1166 . ISSN 1091-9856 . S2CID 233388043 .  
  48. Bagirov, AM; Taheri, S.; Ugon, J. (2016). "Enfoque de programación DC no suave para los problemas de agrupamiento de suma mínima de cuadrados". Pattern Recognition . 53 : 12–24 . Bibcode : 2016PatRe..53...12B . doi : 10.1016/j.patcog.2015.11.011 .
  49. Fränti, Pasi (2018). "Eficiencia del agrupamiento por intercambio aleatorio" . Journal of Big Data . 5 (1) 13: 1– 21. doi : 10.1186/s40537-018-0122-y .
  50. Hansen, P.; Mladenovic, N. (2001). "J-Means: Una nueva heurística de búsqueda local para la agrupación por suma mínima de cuadrados". Pattern Recognition . 34 (2): 405– 413. Bibcode : 2001PatRe..34..405H . ​​doi : 10.1016/S0031-3203(99)00216-2 .
  51. Krishna, K.; Murty, MN (1999). "Algoritmo genético k-medias" . IEEE Transactions on Systems, Man, and Cybernetics - Part B: Cybernetics . 29 (3): 433– 439. Bibcode : 1999ITSMB..29..433K . doi : 10.1109/3477.764879 . PMID 18252317 . 
  52. 1 2 Gribel, Daniel; Vidal, Thibaut (2019). "HG-means: Una metaheurística híbrida escalable para la agrupación de suma mínima de cuadrados". Pattern Recognition . 88 : 569– 583. arXiv : 1804.09813 . doi : 10.1016/j.patcog.2018.12.022 . S2CID 13746584 . 
  53. Mirkes, EM "Applet de K-medias y k -medoides" . Consultado el 2 de enero de 2016 .
  54. Kulis, Brian; Jordan, Michael I. (26 de junio de 2012). «Revisitando k -medias: nuevos algoritmos mediante métodos no paramétricos bayesianos» (PDF) . ICML . Association for Computing Machinery. pp. 1131–1138 . ISBN  9781450312851.
  55. ^ Beagrie , Robert A .; Scialdone, Antonio; Schueler, Michael; Kraemer, Daniel CA; Chotalia, Malcolm; Xie, Songtao Q.; Barbieri, Marco; de Santiago, Ignacio; Lavitas, Laura-Maria; Fraser, James; Dostie, Josée; Pombo, Ana (2017). "Contactos complejos de múltiples potenciadores capturados mediante mapeo de la arquitectura del genoma" . Naturaleza . 543 (7646): 519– 524. Bibcode : 2017Natur.543..519B . doi : 10.1038/naturaleza21411 . PMC 5366070 . PMID 28273065 .  
  56. 1 2 Eisen, Michael B.; Spellman, Paul T.; Brown, Patrick O.; Botstein, David (1998). " Análisis de clústeres y visualización de patrones de expresión genómica" . Actas de la Academia Nacional de Ciencias . 95 (25): 14863– 14868. Bibcode : 1998PNAS...9514863E . doi : 10.1073/pnas.95.25.14863 . PMC 24541. PMID 9843981 .  
  57. 1 2 3 Coates, Adam; Ng, Andrew Y. (2012). "Aprendizaje de representaciones de características con k -medias" (PDF) . En Montavon, G.; Orr, GB; Müller, K.-R. (eds.). Redes neuronales: trucos del oficio . Springer.
  58. Csurka, Gabriella; Dance, Christopher C.; Fan, Lixin; Willamowski, Jutta; Bray, Cédric (2004). Categorización visual con bolsas de puntos clave (PDF) . Taller ECCV sobre aprendizaje estadístico en visión por computadora.
  59. 1 2 Coates, Adam; Lee, Honglak; Ng, Andrew Y. (2011). Un análisis de redes de una sola capa en el aprendizaje de características no supervisado (PDF) . Conferencia Internacional sobre Inteligencia Artificial y Estadística (AISTATS). Archivado del original (PDF) el 10 de mayo de 2013.
  60. Schwenker, Friedhelm; Kestler, Hans A.; Palm, Günther (2001). "Tres fases de aprendizaje para redes de funciones de base radial". Redes neuronales . 14 ( 4– 5): 439– 458. Bibcode : 2001NN.....14..439S . CiteSeerX 10.1.1.109.312 . doi : 10.1016/s0893-6080(01)00027-2 . PMID 11411631 .  
  61. Lin, Dekang; Wu, Xiaoyun (2009). Agrupación de frases para el aprendizaje discriminativo (PDF) . Reunión anual de la ACL e IJCNLP. pp. 1030–1038 . 
  62. 1 2 "Paralelización del algoritmo K-Means con aplicaciones a la agrupación de macrodatos" . arxiv.org . Consultado el 21 de abril de 2026 .
  63. 1 2 García Pérez, AE, et al. (2019). Aprendizaje automático en APOGEE: Identificación de poblaciones estelares a través de la composición química. Astronomía y Astrofísica . https://www.aanda.org/articles/aa/full_html/2019/09/aa35223-19/aa35223-19.html
  64. Slijepcevic, IV, et al. (2025). Clasificación semisupervisada de estrellas, galaxias y cuásares mediante los algoritmos K-means y random-forest. Astronomy & Astrophysics . https://www.aanda.org/articles/aa/full_html/2025/08/aa55620-25/aa55620-25.html
  65. 1 2 3 4 5 Arthur, David; Vassilvitskii, Sergei. "K-means++: Las ventajas de una inicialización cuidadosa" (PDF) . Actas del decimoctavo simposio anual ACM-SIAM sobre algoritmos discretos (SODA) : 1027–1035 .
  66. 1 2 3 4 5 6 7 Bahmani, Bahmán; Moseley, Benjamín; Vattani, Andrea; Kumar, Ravi; Vassilvitskii, Sergei (2012). "K-means ++ escalable" (PDF) . Actas del Fondo de Dotación VLDB . 5 (7): 622– 633. doi : 10.14778/2180912.2180915 .
  67. 1 2 Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). "Sección 16.1. Modelos de mezcla gaussiana y agrupamiento k -medias" . Recetas numéricas: El arte de la computación científica (3.ª ed.). Nueva York (NY): Cambridge University Press. ISBN  978-0-521-88068-8.
  68. Kevin P. Murphy (2012). Aprendizaje automático : una perspectiva probabilística . Cambridge, Mass.: MIT Press. ISBN  978-0-262-30524-2OCLC 810414751 
  69. Aharon, Michal ; Elad, Michael; Bruckstein, Alfred (2006). "K-SVD: Un algoritmo para diseñar diccionarios sobrecompletos para representación dispersa" (PDF) . IEEE Transactions on Signal Processing . 54 (11): 4311. Bibcode : 2006ITSP...54.4311A . doi : 10.1109/TSP.2006.881199 . S2CID 7477309. Archivado del original (PDF) el 2 de diciembre de 2019. Recuperado el 2 de diciembre de 2019 . 
  70. Zha, Hongyuan; Ding, Chris; Gu, Ming; He, Xiaofeng; Simon, Horst D. (diciembre de 2001). "Relajación espectral para agrupamiento k -medias" (PDF) . Neural Information Processing Systems Vol.14 (NIPS 2001) : 1057–1064 .
  71. Ding, Chris; He, Xiaofeng (julio de 2004). "Agrupamiento K-means mediante análisis de componentes principales" (PDF) . Actas de la Conferencia Internacional sobre Aprendizaje Automático (ICML 2004) : 225–232 .
  72. Drineas, Petros; Frieze, Alan M.; Kannan, Ravi; Vempala, Santosh; Vinay, Vishwanathan (2004). "Agrupamiento de grafos grandes mediante la descomposición en valores singulares" (PDF) . Machine Learning . 56 ( 1–3 ): 9–33 . Bibcode : 2004MLear..56....9D . doi : 10.1023/b:mach.0000033113.59016.96 . S2CID 5892850. Recuperado el 2 de agosto de 2012 . 
  73. Cohen, Michael B.; Elder, Sam; Musco, Cameron; Musco, Christopher; Persu, Madalina (2014). "Reducción de dimensionalidad para agrupamiento k -medias y aproximación de bajo rango (Apéndice B)". arXiv : 1410.6801 [ cs.DS ].
  74. 1 2 Little, Max A.; Jones, Nick S. (2011). "Métodos generalizados y solucionadores para la eliminación de ruido de señales constantes por partes. I. Teoría de fondo" . Proceedings of the Royal Society A. 467 ( 2135): 3088– 3114. Bibcode : 2011RSPSA.467.3088L . doi : 10.1098/rspa.2010.0671 . PMC 3191861. PMID 22003312 .  
  75. Vinnikov, Alon; Shalev-Shwartz, Shai (2014). "K-means recupera filtros ICA cuando los componentes independientes son dispersos" (PDF) . Actas de la Conferencia Internacional sobre Aprendizaje Automático (ICML 2014) .