Algoritmo de cuantificación vectorial que minimiza la suma de las desviaciones al cuadrado
El agrupamiento de k -medias es un método de cuantificación vectorial , originariamente del procesamiento de señales , que tiene como objetivo particionar n observaciones en k grupos en los que cada observación pertenece al grupo con la media más cercana (centros de grupo o centroide de grupo ), que sirve como prototipo del grupo. Esto da como resultado una partición del espacio de datos en celdas de Voronoi . El agrupamiento de k -medias minimiza las varianzas dentro del grupo ( distancias euclidianas al cuadrado ), pero no las distancias euclidianas regulares, que sería 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-hard ); 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 a través de un enfoque de refinamiento iterativo empleado tanto por k-means como por el modelado de mezcla gaussiana . 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 diferentes formas.
Dado un conjunto de observaciones ( x 1 , x 2 , ..., x n ) , donde cada observación es un vector real -dimensional, la agrupación de k -medias 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 del grupo (WCSS) (es decir, la varianza ). Formalmente, el objetivo es encontrar:
donde μ i es la media (también llamada centroide) de los puntos en , es decir, es el tamaño de , y es la norma L 2 habitual . Esto es equivalente a minimizar las desviaciones al cuadrado por pares de puntos en el mismo grupo:
La equivalencia se puede deducir de la identidad . Dado que la varianza total es constante, esto es equivalente a maximizar la suma de las desviaciones al cuadrado entre puntos en diferentes grupos (suma de cuadrados entre grupos, BCSS). [1] Esta relación determinista también está relacionada con la ley de varianza total en la teoría de probabilidad.
Historia
El término " k -means" 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 de código de pulso , aunque no se publicó como artículo de revista hasta 1982. [4] En 1965, Edward W. Forgy publicó esencialmente el mismo método, por lo que a veces se lo conoce como el algoritmo Lloyd-Forgy. [5]
Algoritmos
Algoritmo estándar (ingenuo)a-medio)
El algoritmo más común utiliza una técnica de refinamiento iterativo. Debido a su ubicuidad, a menudo se lo denomina " algoritmo k -means"; también se lo conoce como algoritmo de Lloyd , particularmente en la comunidad informática. A veces también se lo conoce como " algoritmo k -means ingenuo", porque existen alternativas mucho más rápidas. [6]
Dado un conjunto inicial de k medias m 1 (1) , ..., m k (1) (ver más abajo), el algoritmo procede alternando entre dos pasos: [7]
Paso de asignación : Asignar cada observación al grupo con la media más cercana: aquella con la distancia euclidiana de mínimos cuadrados . [8] (Matemáticamente, esto significa particionar las observaciones de acuerdo con el diagrama de Voronoi generado por las medias), donde cada una se asigna exactamente a una , incluso si pudiera asignarse a dos o más de ellas.
Paso de actualización : recalcular las medias ( centroides ) de las observaciones asignadas a cada grupo.
La función objetivo en k -medias es la WCSS (suma de cuadrados dentro del conglomerado). Después de cada iteración, la WCSS disminuye y, por lo tanto, tenemos una secuencia monótona decreciente no negativa. Esto garantiza que las k -medias siempre convergen, pero no necesariamente al óptimo global.
El algoritmo ha convergido cuando las asignaciones ya no cambian o, equivalentemente, cuando el WCSS se ha vuelto estable. No se garantiza que el algoritmo encuentre el óptimo. [9]
El algoritmo se presenta a menudo como la asignación de objetos al grupo más cercano por distancia. El uso de una función de distancia distinta a la distancia euclidiana (al cuadrado) puede impedir que el algoritmo converja. Se han propuesto varias modificaciones de las k -medias, como las k -medias esféricas y las k -medoides, para permitir el uso de otras medidas de distancia.
Pseudocódigo
El pseudocódigo que se muestra a continuación describe la implementación del algoritmo de agrupamiento estándar de k -medias. La inicialización de los centroides, la métrica de distancia entre puntos y centroides y el cálculo de nuevos centroides son opciones de diseño y variarán según las diferentes implementaciones. En este pseudocódigo de ejemplo, se utiliza argmin para encontrar el índice del valor mínimo.
def k_means_cluster ( k , puntos ):# Inicialización: elija k centroides (Forgy, Partición aleatoria, etc.)centroides = [ c1 , c2 , ... , ck ]# Inicializar lista de clustersclusters = [[] para _ en rango ( k )]# Bucle hasta la convergenciaconvergido = falsomientras no converja :# Borrar clústeres anterioresclusters = [[] para _ en rango ( k )]# Asigna cada punto al centroide "más cercano"para punto en puntos :distancias_a_cada_centroide = [ distancia ( punto , centroide ) para el centroide en centroides ]asignación_de_grupo = argmin ( distancias_a_cada_centroide )clusters [ cluster_assignment ] .append ( punto )# Calcular nuevos centroides# (la implementación estándar utiliza la media de todos los puntos en una# cluster para determinar el nuevo centroide)new_centroids = [ calculate_centroid ( cluster ) para el cluster en clusters ]convergente = ( nuevos_centroides == centroides )centroides = nuevos_centroidesSi convergió :devolver clústeres
Métodos de inicialización
Los métodos de inicialización más utilizados son Forgy y Partición aleatoria. [10] El método Forgy elige aleatoriamente k observaciones del conjunto de datos y las utiliza como medias iniciales. El método Partición aleatoria primero asigna aleatoriamente un conglomerado 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 conglomerado. El método Forgy tiende a dispersar las medias iniciales, mientras que la Partición aleatoria las coloca todas cerca del centro del conjunto de datos. Según Hamerly et al., [10] el método Partición aleatoria es generalmente preferible para algoritmos como las medias k -armónicas y las k -medias difusas . Para los algoritmos de maximización de expectativas y k -medias estándar, es preferible el método de inicialización Forgy. Sin embargo, un estudio exhaustivo de Celebi et al., [11] encontró que los métodos de inicialización populares como Forgy, Random Partition y Maximin a menudo tienen un desempeño deficiente, mientras que el enfoque de Bradley y Fayyad [12] funciona "consistentemente" en "el mejor grupo" y k -means++ funciona "generalmente bien".
Demostración del algoritmo estándar
1. Las k "medias" iniciales (en este caso k = 3) se generan aleatoriamente dentro del dominio de datos (mostradas en color).
2. Los grupos k se crean asociando cada observación con la media más cercana. Las particiones aquí representan el diagrama de Voronoi generado por las medias.
3. El centroide de cada uno de los k grupos se convierte en la nueva media.
4. Se repiten los pasos 2 y 3 hasta alcanzar la convergencia.
El algoritmo no garantiza la convergencia al óptimo global. El resultado puede depender de los grupos iniciales. Como 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 ) . [13] 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. [14]
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 de expectativa-maximización generalizado .
Complejidad
Encontrar la solución óptima al problema de agrupamiento de k -medias para observaciones en d dimensiones es:
NP-duro para un número general de grupos k incluso en el plano, [17]
Si k y d (la dimensión) son fijos, el problema se puede resolver exactamente en el tiempo , donde n es el número de entidades a agrupar. [18]
Por lo tanto, generalmente se utilizan una variedad de algoritmos heurísticos como el algoritmo de Lloyd mencionado anteriormente.
El tiempo de ejecución del algoritmo de Lloyd (y la mayoría de las variantes) es , [9] [19] donde:
n es el número de vectores de dimensión d (que se van a agrupar)
k el número de clusters
i el número de iteraciones necesarias hasta la convergencia.
En el caso de datos que sí tienen 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, en la práctica, el algoritmo de Lloyd suele considerarse de complejidad "lineal", aunque en el peor de los casos es superpolinomial cuando se ejecuta hasta la convergencia. [20]
En el peor de los casos, el algoritmo de Lloyd necesita iteraciones, por lo que la complejidad del peor de los casos del algoritmo de Lloyd es superpolinomial . [20]
El algoritmo k -medias de Lloyd tiene un tiempo de ejecución suavizado por polinomios. Se muestra que [14] para un conjunto arbitrario de n puntos en , si cada punto es perturbado independientemente por una distribución normal con media 0 y varianza , entonces el tiempo de ejecución esperado del algoritmo k -medias está limitado por , que es un polinomio en n , k , d y .
Se han demostrado límites mejores para casos simples. Por ejemplo, se muestra que el tiempo de ejecución del algoritmo k -means está limitado por para n puntos en una red de números enteros . [21]
El algoritmo de Lloyd es el enfoque estándar para este problema. Sin embargo, dedica mucho tiempo de procesamiento a calcular las distancias entre cada uno de los centros de los k grupos y los n puntos de datos. Dado que los puntos suelen permanecer en los mismos grupos después de unas pocas 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. [9] [22] [23] [24] [25]
Número óptimo de clústeres
Encontrar el número óptimo de clústeres ( k ) para la agrupación en k -medias es un paso crucial para garantizar que los resultados de la agrupación sean significativos y útiles. [26] Existen varias técnicas disponibles 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 implica trazar la variación explicada como una función del número de conglomerados y elegir el codo de la curva como el número de conglomerados a utilizar. [27] Sin embargo, la noción de "codo" no está bien definida y se sabe que no es confiable. [28]
Silueta (agrupamiento) : el análisis de silueta mide la calidad del agrupamiento y proporciona una idea de la distancia de separación entre los agrupamientos resultantes. [29] Una puntuación de silueta más alta indica que el objeto coincide bien con su propio agrupamiento y mal con los agrupamientos vecinos.
Estadística de brecha : la estadística de brecha compara la variación total dentro del grupo para diferentes valores de k con sus valores esperados bajo una distribución de referencia nula de los datos. [30] El k óptimo es el valor que produce la estadística de brecha más grande.
Índice de Davies-Bouldin : el índice de Davies-Bouldin es una medida de cuánta separación hay entre los clústeres. [31] Los 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 conglomerados en función de su compacidad y separación. El índice se calcula utilizando la relación entre la varianza entre conglomerados y la varianza dentro de los conglomerados; los valores más altos indican conglomerados mejor definidos. [32]
Índice Rand : Calcula la proporción de acuerdo entre los dos clústeres, considerando ambos pares de elementos que están correctamente asignados al mismo o a diferentes clústeres. [33] Los valores más altos indican mayor similitud y mejor calidad de agrupamiento. Para proporcionar una medida más precisa, el Índice Rand Ajustado (ARI), introducido por Hubert y Arabie en 1985, corrige el Índice Rand ajustando la similitud esperada de todos los emparejamientos debido al azar. [34]
k -medoids (también: Partitioning Around Medoids, PAM) utiliza el medoide en lugar de la media, y de esta manera minimiza la suma de distancias para funciones de distancia arbitrarias .
El agrupamiento difuso de C-medias es una versión suave de k -medias, donde cada punto de datos tiene un grado difuso de pertenencia a cada grupo.
La k -media ponderada de Minkowski calcula automáticamente los pesos de las características específicas de cada grupo, lo que respalda la idea intuitiva de que una característica puede tener diferentes grados de relevancia en diferentes características. [41] Estos pesos también se pueden utilizar para volver a escalar un conjunto de datos determinado, lo que aumenta la probabilidad de que un índice de validez de grupo se optimice en la cantidad esperada de grupos. [42]
Mini-lotes k -medias: variación de k -medias utilizando muestras de "minilotes" para conjuntos de datos que no caben en la memoria. [43]
El método de Hartigan y Wong [9] proporciona una variación del algoritmo k -means que avanza hacia un mínimo local del problema de suma mínima de cuadrados con diferentes actualizaciones de solución. El método es una búsqueda local que intenta iterativamente reubicar una muestra en un grupo diferente siempre que este proceso mejore la función objetivo. Cuando no se puede reubicar ninguna muestra en un grupo diferente con una mejora del objetivo, el método se detiene (en un mínimo local). De manera similar al clásico k -means, el enfoque sigue siendo una heurística ya que no garantiza necesariamente que la solución final sea globalmente óptima.
Sea el costo individual de definido por , con el centro del clúster.
Paso de asignación
El método de Hartigan y Wong comienza dividiendo los puntos en grupos aleatorios .
Paso de actualización
A continuación, determina el y para el cual la siguiente función alcanza un máximo. Para los que alcanzan este máximo, se mueve del clúster al clúster .
Terminación
El algoritmo termina una vez que es menor que cero para todos .
Se pueden utilizar diferentes estrategias de aceptación de movimientos. En una estrategia de primera mejora , se puede aplicar cualquier reubicación que mejore, mientras que en una estrategia de mejor mejora , se prueban iterativamente todas las reubicaciones posibles y solo se aplica la mejor en cada iteración. El primer enfoque favorece la velocidad, mientras que el segundo enfoque generalmente favorece la calidad de la solución a expensas de un tiempo computacional adicional. La función utilizada para calcular el resultado de una reubicación también se puede evaluar de manera eficiente mediante el uso de la igualdad [44].
Optimización global y metaheurística
Se sabe que el algoritmo clásico k -means y sus variaciones solo convergen a mínimos locales del problema de agrupamiento de suma mínima de cuadrados definido como
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 discutidas en las secciones anteriores son una alternativa para encontrar mejores soluciones. Más recientemente, los algoritmos de optimización global basados en programación de ramificación y acotación y semidefinida han producido soluciones "demostradamente óptimas" para conjuntos de datos con hasta 4177 entidades y 20 531 características. [45] Como se esperaba, debido a la dureza NP del problema de optimización subyacente, el tiempo computacional de los algoritmos óptimos para k -means aumenta rápidamente más allá de este tamaño. Las soluciones óptimas para pequeña y mediana escala 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, [46] intercambios aleatorios [47] (es decir, búsqueda local iterada ), búsqueda de vecindad variable [48] y algoritmos genéticos . [49] [50] 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. [50]
Discusión
Tres características clave de k -means que lo hacen eficiente a menudo se consideran sus mayores desventajas:
El número de conglomerados k es un parámetro de entrada: una elección inadecuada de k puede dar lugar a resultados deficientes. Por ello, al realizar el análisis de k -medias, es importante realizar comprobaciones de diagnóstico para determinar el número de conglomerados en el conjunto de datos .
La convergencia a un mínimo local puede producir resultados contra-intuitivos ("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. Cuando, por ejemplo, se aplica k -means con un valor de 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. Con , se descubrirán los dos clústeres visibles (uno que contiene dos especies), mientras que con uno de los dos clústeres se dividirá en dos partes iguales. De hecho, es más apropiado para este conjunto de datos, a pesar de que el conjunto de datos contiene 3 clases . Al igual que con cualquier otro algoritmo de agrupamiento, el resultado de k -means hace suposiciones de que los datos satisfacen ciertos criterios. Funciona bien en algunos conjuntos de datos y falla en otros.
El resultado de k -medias puede verse como las celdas de Voronoi de las medias de los conglomerados. Dado que los datos se dividen a la mitad entre las medias de los conglomerados, esto puede conducir a divisiones subóptimas como se puede ver en el ejemplo del "ratón". Los modelos gaussianos utilizados por el algoritmo de expectativa-maximización (podría decirse que una generalización de k -medias) son más flexibles al tener varianzas y covarianzas. El resultado EM es así capaz de acomodar conglomerados de tamaño variable mucho mejor que k -medias, así como conglomerados 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 conglomerados que se desvanecen o matrices de covarianza mal condicionadas. k -medias está estrechamente relacionado con el modelado bayesiano no paramétrico . [52]
Aplicaciones
La agrupación en clústeres de k -medias es bastante fácil de aplicar incluso a grandes conjuntos de datos, en particular cuando se utilizan heurísticas como el algoritmo de Lloyd . Se ha utilizado con éxito en la segmentación de mercados , la visión artificial y la astronomía , entre muchos otros campos. A menudo se utiliza como un paso de preprocesamiento para otros algoritmos, por ejemplo, para encontrar una configuración inicial.
Cuantización vectorial
La cuantificación vectorial , una técnica que se utiliza habitualmente en el procesamiento de señales y en gráficos por ordenador, implica la reducción de la paleta de colores de una imagen a un número fijo de colores, conocido como k . Un método popular para lograr la cuantificación vectorial es mediante la agrupación de k -medias. En este proceso, se aplica k -medias 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 especialmente útil en tareas de segmentación de imágenes, donde ayuda a identificar y agrupar colores similares.
Ejemplo: En el campo de los gráficos por computadora , la agrupación de k -medias se emplea a menudo para la cuantificación de color en la compresión de imágenes. Al reducir la cantidad de colores utilizados para representar una imagen, se pueden reducir significativamente los tamaños de archivo sin una pérdida significativa de calidad visual. Por ejemplo, considere una imagen con millones de colores. Al aplicar la agrupación de k -medias con k establecido en un número menor, la imagen se puede representar utilizando una paleta de colores más limitada , lo que da como resultado 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 -medias se pueden utilizar fácilmente para elegir k objetos diferentes pero prototípicos de un gran conjunto de datos para su posterior análisis.
Análisis de conglomerados
El análisis de conglomerados , una tarea fundamental en la minería de datos y el aprendizaje automático , implica agrupar un conjunto de puntos de datos en conglomerados en función de su similitud. El agrupamiento de k -medias es un algoritmo popular utilizado para particionar datos en k conglomerados, donde cada conglomerado está representado por su centroide.
Sin embargo, el algoritmo k -means puro no es muy flexible y, como tal, su uso es limitado (excepto cuando la cuantificación vectorial como la descrita 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 o con datos no numéricos. Para estos casos de uso, muchos otros algoritmos son superiores.
Ejemplo: En marketing, la agrupación de k -medias se emplea con frecuencia para la segmentación del mercado , donde se agrupan los clientes con características o comportamientos similares. Por ejemplo, una empresa minorista puede utilizar la agrupación de k -medias para segmentar su base de clientes en grupos distintos en función de factores como el comportamiento de compra, la demografía y la ubicación geográfica. A continuación, se pueden dirigir estrategias de marketing y ofertas de productos personalizadas a estos segmentos de clientes para maximizar las ventas y la satisfacción del cliente.
Aprendizaje de características
La agrupación en k -medias se ha utilizado como un paso de aprendizaje de características (o aprendizaje de diccionario ), tanto en el aprendizaje ( semi ) supervisado como en el aprendizaje no supervisado . [53] El enfoque básico es primero entrenar una representación de agrupación en k -medias, 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 desde el dato a cada centroide, o simplemente una función indicadora para el centroide más cercano, [53] [54] o alguna transformación suave de la distancia. [55] Alternativamente, al transformar la distancia del grupo de muestra a través de una RBF gaussiana , se obtiene la capa oculta de una red de función de base radial . [56]
Este uso de k -medias se ha combinado con éxito con clasificadores lineales simples para el aprendizaje semisupervisado en NLP (específicamente para el reconocimiento de entidades nombradas ) [57] 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 autocodificadores y máquinas de Boltzmann restringidas . [55] Sin embargo, generalmente requiere más datos para un rendimiento equivalente, porque cada punto de datos solo contribuye a una "característica". [53]
Ejemplo: En el procesamiento del lenguaje natural (PLN), la agrupación en clústeres de k -medias se ha integrado con clasificadores lineales simples para tareas de aprendizaje semisupervisado como el reconocimiento de entidades nombradas (NER). Al agrupar primero los datos de texto sin etiquetar utilizando k -medias, se pueden extraer características significativas para mejorar el rendimiento de los modelos NER. Por ejemplo, la agrupación en clústeres de k -medias se puede aplicar para identificar grupos de palabras o frases que frecuentemente aparecen simultáneamente en el texto de entrada, que luego se pueden usar como características para entrenar el modelo NER. Se ha demostrado que este enfoque logra un rendimiento comparable con técnicas de aprendizaje de características más complejas , como autocodificadores y máquinas de Boltzmann restringidas , aunque con un mayor requisito de datos etiquetados.
Acontecimientos recientes
Los avances recientes en la aplicación de la agrupación en clústeres de k -medias incluyen mejoras en las técnicas de inicialización, como el uso de la inicialización de k -medias++ para seleccionar los centroides de agrupación iniciales de una manera más eficaz. Además, los investigadores han explorado la integración de la agrupación en clústeres de k -medias con métodos de aprendizaje profundo, como las redes neuronales convolucionales (CNN) y las redes neuronales recurrentes (RNN), para mejorar el rendimiento de varias tareas en visión artificial , procesamiento del lenguaje natural y otros dominios.
Relación con otros algoritmos
Modelo de mezcla gaussiana
El algoritmo lento "estándar" para el agrupamiento de k -medias, y su algoritmo asociado de expectativa-maximización , 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. [58] : 850 En lugar de varianzas pequeñas, también se puede utilizar una asignación de agrupamiento estricta para mostrar otra equivalencia del agrupamiento de k -medias con un caso especial de modelado de mezcla gaussiana "duro". [59] : 354, 11.4.2.5 Esto no significa que sea eficiente utilizar el modelado de mezcla gaussiana para calcular k -medias, sino simplemente que existe una relación teórica y que el modelado de mezcla gaussiana se puede interpretar como una generalización de k -medias; por el contrario, se ha sugerido utilizar el agrupamiento de k -medias para encontrar puntos de partida para el modelado de mezcla gaussiana en datos difíciles. [58] : 849
a-SVD
Otra generalización del algoritmo k -means es el algoritmo k -SVD, que estima los puntos de datos como una combinación lineal dispersa de "vectores de libro de códigos". k -means corresponde al caso especial de utilizar un único vector de libro de códigos, con un peso de 1. [60]
Análisis de componentes principales
La solución relajada de la agrupación de k -medias, especificada por los indicadores de agrupación, se da mediante el análisis de componentes principales (PCA). [61] [62] La intuición es que las k -medias describen agrupaciones con forma esférica (similar a una bola). Si los datos tienen 2 agrupaciones, 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 las agrupaciones (esta es la relajación continua del indicador de agrupación discreto). Si los datos tienen tres agrupaciones, el plano bidimensional abarcado por tres centroides de agrupación es la mejor proyección 2-D. Este plano también está definido por las dos primeras dimensiones de PCA. Las agrupaciones bien separadas se modelan de manera efectiva mediante agrupaciones con forma de bola y, por lo tanto, se descubren mediante k -medias. Las agrupaciones que no tienen forma de bola son difíciles de separar cuando están cerca. Por ejemplo, dos agrupaciones con forma de media luna entrelazadas en el espacio no se separan bien cuando se proyectan en el subespacio de PCA. No se debe esperar que k -means tenga un buen desempeño con estos datos. [63] Es sencillo producir contraejemplos a la afirmación de que el subespacio del centroide del grupo está abarcado por las direcciones principales. [64]
Agrupamiento por desplazamiento medio
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. A continuación, todos los puntos se mueven iterativamente hacia la media de los puntos que los rodean. Por el contrario, k -means restringe el conjunto de clústeres a k clústeres, normalmente 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 -means, llamado desplazamiento de la media de verosimilitud , reemplaza el conjunto de puntos sometidos a reemplazo por la media de todos los puntos en el conjunto de entrada que están dentro de una distancia dada del conjunto cambiante. [65] Una ventaja del agrupamiento por desplazamiento de la media sobre k -means 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 cambio de media puede ser mucho más lento que k -medias 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 procesan previamente 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. [66]
Filtrado bilateral
k -means asume implícitamente que el orden del conjunto de datos de entrada no importa. El filtro bilateral es similar a k -means y al cambio de media en 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 kernel) para incluir solo puntos que están cerca en el orden de los datos de entrada. [65] Esto lo hace aplicable a problemas como la eliminación de ruido de imágenes, donde la disposición espacial de los píxeles en una imagen es de importancia crítica.
Problemas similares
El conjunto de funciones de clúster que minimizan el error al cuadrado también incluye el algoritmo k -medoides , un enfoque que fuerza a que el punto central de cada clúster sea uno de los puntos reales, es decir, utiliza medoides en lugar de centroides .
Implementaciones de software
Las diferentes 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] Las diferencias se pueden atribuir a la calidad de la implementación, las diferencias de lenguaje y compilador, los diferentes criterios de terminación y niveles de precisión, y el uso de índices para la aceleración.
Accord.NET contiene implementaciones de C# para k -means, k -means++ y k -modes.
ALGLIB contiene implementaciones de C++ y C# paralelizadas para k -means y k -means++.
AOSP contiene una implementación de Java para k -means.
CrimeStat implementa dos algoritmos k -medias espaciales, uno de los cuales permite al usuario definir las ubicaciones de inicio.
ELKI contiene k -means (con 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 contiene k -means y varios otros algoritmos y visualización de resultados (para Java, Kotlin y Scala).
Julia contiene una implementación de k -means en el paquete JuliaStats Clustering.
KNIME contiene nodos para k -medias y k -medoides.
Orange incluye un componente para agrupamiento de k -medias con selección automática de k y puntuación de silueta de grupo.
PSPP contiene k -medias. El comando QUICK CLUSTER realiza la agrupación en k -medias en el conjunto de datos.
R contiene tres variaciones de k -medias.
SciPy y scikit-learn contienen múltiples implementaciones de k -means.
Spark MLlib implementa un algoritmo k -medias distribuido.
Torch contiene 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.
^ ab Kriegel, Hans-Peter ; Schubert, Erich; Zimek, Arthur (2016). "El arte (negro) de la evaluación en tiempo de ejecución: ¿estamos comparando algoritmos o implementaciones?". Conocimiento y sistemas de información . 52 (2): 341–378. doi :10.1007/s10115-016-1004-2. ISSN 0219-1377. S2CID 40772241.
^ MacQueen, JB (1967). Algunos métodos para la clasificación y 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 .
^ 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.
^ 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 de mínimos cuadrados en PCM" (PDF) . IEEE Transactions on Information Theory . 28 (2): 129–137. CiteSeerX 10.1.1.131.1338 . doi :10.1109/TIT.1982.1056489. S2CID 10833328. Consultado el 15 de abril de 2009 .
^ Forgy, Edward W. (1965). "Análisis de conglomerados de datos multivariados: eficiencia versus interpretabilidad de las clasificaciones". Biometrics . 21 (3): 768–769. JSTOR 2528559.
^ 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. pp. 277–281. doi :10.1145/312129.312248. ISBN9781581131437. Número de identificación del sujeto 13907420.
^ 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. ISBN978-0-521-64298-9. Sr. 2012999.
^ Dado que la raíz cuadrada es una función monótona, esta también es la asignación de distancia euclidiana mínima.
^ ab Hamerly, Greg; Elkan, Charles (2002). "Alternativas al algoritmo k-means que encuentran mejores agrupaciones" (PDF) . Actas de la undécima conferencia internacional sobre gestión de la información y el conocimiento (CIKM) .
^ Celebi, ME; Kingravi, HA; Vela, PA (2013). "Un estudio comparativo de métodos de inicialización eficientes para el algoritmo de agrupamiento k -means". Sistemas expertos con aplicaciones . 40 (1): 200–210. arXiv : 1209.1960 . doi :10.1016/j.eswa.2012.07.021. S2CID 6954668.
^ Bradley, Paul S.; Fayyad, Usama M. (1998). "Refinamiento de puntos iniciales para agrupamiento de k -medias". Actas de la Decimoquinta Conferencia Internacional sobre Aprendizaje Automático .
^ Vattani, A. (2011). "k-means requiere exponencialmente muchas iteraciones incluso en el plano" (PDF) . Geometría discreta y computacional . 45 (4): 596–616. doi : 10.1007/s00454-011-9340-1 . S2CID 42683406.
^ ab Arthur, David; Manthey, B.; Roeglin, H. (2009). "k-means tiene complejidad suavizada por polinomios". Actas del 50.º Simposio sobre Fundamentos de la Ciencia de la Computación (FOCS) . arXiv : 0904.1113 .
^ Aloise, D.; Deshpande, A.; Hansen, P.; Popat, P. (2009). "NP-dureza de la agrupación euclidiana por suma de cuadrados". Aprendizaje automático . 75 (2): 245–249. doi : 10.1007/s10994-009-5103-0 .
^ Dasgupta, S.; Freund, Y. (julio de 2009). "Árboles de proyección aleatoria para cuantificación vectorial". IEEE Transactions on Information Theory . 55 (7): 3229–42. arXiv : 0805.1390 . doi :10.1109/TIT.2009.2021326. S2CID 666114.
^ Mahajan, Meena; Nimbhorkar, Prajakta; Varadarajan, Kasturi (2009). "El problema de k-medias planar es NP-difícil". WALCOM: Algoritmos y computación . Apuntes de clase en informática. Vol. 5431. págs. 274–285. doi :10.1007/978-3-642-00202-1_24. ISBN978-3-642-00201-4.
^ Inaba, M.; Katoh, N.; Imai, H. (1994). Aplicaciones de diagramas de Voronoi ponderados y aleatorización a la agrupación en grupos k basada en varianza . Actas del 10.º Simposio ACM sobre geometría computacional . págs. 332–9. doi : 10.1145/177424.178042 .
^ Manning, Christopher D.; Raghavan, Prabhakar; Schütze, Hinrich (2008). Introducción a la recuperación de información . Prensa de la Universidad de Cambridge. ISBN978-0521865715.OCLC 190786122 .
^ ab Arthur, David; Vassilvitskii, Sergei (1 de enero de 2006). "¿Qué tan lento es el método k -means?". Actas del vigésimo segundo simposio anual sobre geometría computacional . SCG '06. ACM. págs. 144–153. doi :10.1145/1137856.1137880. ISBN978-1595933409.S2CID3084311 .
^ Bhowmick, Abhishek (2009). "Un análisis teórico del algoritmo de Lloyd para la agrupación en k-medias" (PDF) . Archivado desde el original (PDF) el 8 de diciembre de 2015.Véase también aquí.
^ ab Phillips, Steven J. (2002). "Aceleración de k-medias y algoritmos de agrupamiento relacionados". En Mount, David M.; Stein, Clifford (eds.). Aceleración de k -medias y algoritmos de agrupamiento relacionados . Notas de clase en informática. Vol. 2409. Springer. págs. 166–177. doi :10.1007/3-540-45643-0_13. ISBN978-3-540-43977-6.
^ ab Elkan, Charles (2003). "Uso de la desigualdad triangular para acelerar k-means" (PDF) . Actas de la Vigésima Conferencia Internacional sobre Aprendizaje Automático (ICML) .
^ ab Hamerly, Greg (2010). "Hacer que k-means sea aún más rápido". Actas de la Conferencia Internacional SIAM de 2010 sobre Minería de Datos . págs. 130-140. doi :10.1137/1.9781611972801.12. ISBN978-0-89871-703-7.
^ ab Hamerly, Greg; Drake, Jonathan (2015). "Aceleración del algoritmo de Lloyd para la agrupación en clústeres de k-medias". Algoritmos de agrupación en clústeres particionales . págs. 41–78. doi :10.1007/978-3-319-09259-1_2. ISBN978-3-319-09258-4.
^ Abiodun M. Ikotun, Absalom E. Ezugwu, Laith Abualigah, Belal Abuhaija, Jia Heming, Algoritmos de agrupamiento K-means: una revisión exhaustiva, análisis de variantes y avances en la era del big data, Ciencias de la información, Volumen 622, 2023, Páginas 178–210, ISSN 0020-0255, https://doi.org/10.1016/j.ins.2022.11.139.
^ 276. doi:10.1007/BF02289263.S2CID 120467216.
^ Schubert, Erich (22 de junio de 2023). "Dejar de usar el criterio del codo para las k-medias y cómo elegir el número de clústeres en su lugar". Boletín de exploraciones de ACM SIGKDD. 25 (1): 36–42. arXiv:2212.12189. doi:10.1145/3606274.3606278. ISSN 1931-0145.
^ Peter J. Rousseeuw (1987). "Siluetas: una ayuda gráfica para la interpretación y validación del análisis de conglomerados". Matemáticas computacionales y aplicadas. 20: 53–65. doi:10.1016/0377-0427(87)90125-7.
^ Robert Tibshirani; Guenther Walther; Trevor Hastie (2001). "Estimación del número de conglomerados en un conjunto de datos mediante la estadística gap". Journal of the Royal Statistical Society, Serie B. 63 (2): 411–423. doi:10.1111/1467-9868.00293. S2CID 59738652.
^ Davies, David L.; Bouldin, Donald W. (1979). "Una medida de separación de grupos". Transacciones IEEE sobre análisis de patrones e inteligencia artificial. PAMI-1 (2): 224–227. doi:10.1109/TPAMI.1979.4766909. S2CID 13254783.
^ Caliński, Tadeusz; Harabasz, Jerzy (1974). "Un método dendrítico para el análisis de conglomerados". Communications in Statistics. 3 (1): 1–27. doi:10.1080/03610927408827101.
^ WM Rand (1971). "Criterios objetivos para la evaluación de métodos de agrupamiento". Revista de la Asociación Estadounidense de Estadística. 66 (336). Asociación Estadounidense de Estadística: 846–850. doi:10.2307/2284239. JSTOR 2284239.
^ Hubert, L. y Arabie, P. (1985). Hubert, L. y Arabie, P. (1985). Comparando particiones. Revista de clasificación, 2(1), 193-218. https://doi.org/10.1007/BF01908075
^ Kanungo, Tapas; Mount, David M .; Netanyahu, Nathan S .; Piatko, Christine D .; Silverman, Ruth; Wu, Angela Y. (2002). "Un algoritmo de agrupamiento k-means eficiente: análisis e implementación" (PDF) . IEEE Transactions on Pattern Analysis and Machine Intelligence . 24 (7): 881–892. doi :10.1109/TPAMI.2002.1017616. S2CID 12003435 . Consultado el 24 de abril de 2009 .
^ Drake, Jonathan (2012). "Accelerated k-means with adaptive distance bounds" (PDF) . El quinto taller NIPS sobre optimización para aprendizaje automático, OPT2012 .
^ Dhillon, IS; Modha, DM (2001). "Descomposiciones de conceptos para datos de texto dispersos de gran tamaño mediante agrupamiento". Aprendizaje automático . 42 (1): 143–175. doi : 10.1023/a:1007612920971 .
^ 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.
^ Pelleg, D.; y Moore, AW (junio de 2000). "X-means: extensión de k-means con estimación eficiente del número de clústeres". En ICML , vol. 1
^ Amorim, RC; Mirkin, B. (2012). "Métrica de Minkowski, ponderación de características e inicialización de clústeres anómalos en clústeres de k -medias". Reconocimiento de patrones . 45 (3): 1061–1075. doi :10.1016/j.patcog.2011.08.012.
^ Amorim, RC; Hennig, C. (2015). "Recuperación del número de clústeres en conjuntos de datos con características de ruido utilizando factores de reescalado de características". Ciencias de la información . 324 : 126–145. arXiv : 1602.06989 . doi :10.1016/j.ins.2015.06.039. S2CID 315803.
^ Sculley, David (2010). "Web-scale k-means clustering". Actas de la 19.ª conferencia internacional sobre la World Wide Web . ACM. págs. 1177–1178 . Consultado el 21 de diciembre de 2016 .
^ Telgarsky, Matus. "Método de Hartigan: agrupamiento de k-medias sin Voronoi" (PDF) .
^ 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.
^ Bagirov, AM; Taheri, S.; Ugon, J. (2016). "Enfoque de programación DC no uniforme para problemas de agrupamiento por suma mínima de cuadrados". Reconocimiento de patrones . 53 : 12–24. Bibcode :2016PatRe..53...12B. doi :10.1016/j.patcog.2015.11.011.
^ Fränti, Pasi (2018). "Eficiencia de la agrupación por intercambio aleatorio". Journal of Big Data . 5 (1): 1–21. doi : 10.1186/s40537-018-0122-y .
^ 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". Reconocimiento de patrones . 34 (2): 405–413. Bibcode :2001PatRe..34..405H. doi :10.1016/S0031-3203(99)00216-2.
^ Krishna, K.; Murty, MN (1999). "Algoritmo genético k-means". IEEE Transactions on Systems, Man, and Cybernetics - Parte B: Cibernética . 29 (3): 433–439. doi :10.1109/3477.764879. PMID 18252317.
^ ab Gribel, Daniel; Vidal, Thibaut (2019). "HG-means: Una metaheurística híbrida escalable para agrupamiento por suma mínima de cuadrados". Reconocimiento de patrones . 88 : 569–583. arXiv : 1804.09813 . doi :10.1016/j.patcog.2018.12.022. S2CID 13746584.
^ Mirkes, EM "Applet de k-medias y k-medoides" . Consultado el 2 de enero de 2016 .
^ Kulis, Brian; Jordan, Michael I. (26 de junio de 2012). "Revisitando k-means: nuevos algoritmos a través de la no parametría bayesiana" (PDF) . ICML . Association for Computing Machinery. págs. 1131–1138. ISBN.9781450312851.
^ abc Coates, Adam; Ng, Andrew Y. (2012). "Aprendizaje de representaciones de características con k-means" (PDF) . En Montavon, G.; Orr, GB; Müller, K.-R. (eds.). Redes neuronales: trucos del oficio . Springer.
^ 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 artificial.
^ ab 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 desde el original (PDF) el 2013-05-10.
^ Schwenker, Friedhelm; Kestler, Hans A.; Palm, Günther (2001). "Tres fases de aprendizaje para redes de función de base radial". Redes neuronales . 14 (4–5): 439–458. CiteSeerX 10.1.1.109.312 . doi :10.1016/s0893-6080(01)00027-2. PMID 11411631.
^ Lin, Dekang; Wu, Xiaoyun (2009). Agrupamiento de frases para el aprendizaje discriminativo (PDF) . Reunión anual de la ACL y la IJCNLP. págs. 1030–1038.
^ ab Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). "Sección 16.1. Modelos de mezcla gaussiana y agrupamiento de k-medias". Recetas numéricas: el arte de la computación científica (3.ª ed.). Nueva York (NY): Cambridge University Press. ISBN978-0-521-88068-8.
^ Kevin P. Murphy (2012). Aprendizaje automático: una perspectiva probabilística . Cambridge, Mass.: MIT Press. ISBN978-0-262-30524-2.OCLC 810414751 .
^ 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.
^ Zha, Hongyuan; Ding, Chris; Gu, Ming; He, Xiaofeng; Simon, Horst D. (diciembre de 2001). "Relajación espectral para agrupamiento de k-medias" (PDF) . Neural Information Processing Systems Vol.14 (NIPS 2001) : 1057–1064.
^ Ding, Chris; He, Xiaofeng (julio de 2004). "Agrupamiento de K-means mediante análisis de componentes principales" (PDF) . Actas de la Conferencia internacional sobre aprendizaje automático (ICML 2004) : 225–232.
^ Drineas, Petros; Frieze, Alan M.; Kannan, Ravi; Vempala, Santosh; Vinay, Vishwanathan (2004). "Clustering large graphs via the singular value decomposition" (PDF) . Aprendizaje automático . 56 (1–3): 9–33. doi : 10.1023/b:mach.0000033113.59016.96 . S2CID 5892850 . Consultado el 2 de agosto de 2012 .
^ Cohen, Michael B.; Elder, Sam; Musco, Cameron; Musco, Christopher; Persu, Madalina (2014). "Reducción de la dimensionalidad para la agrupación de k -medias y aproximación de rango bajo (Apéndice B)". arXiv : 1410.6801 [cs.DS].
^ ab 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". Actas de la Royal Society A . 467 (2135): 3088–3114. Bibcode :2011RSPSA.467.3088L. doi :10.1098/rspa.2010.0671. PMC 3191861 . PMID 22003312.
^ Vinnikov, Alon; Shalev-Shwartz, Shai (2014). "K-means recupera filtros ICA cuando los componentes independientes son escasos" (PDF) . Actas de la Conferencia internacional sobre aprendizaje automático (ICML 2014) .