Aquí hay un resumen de varios algoritmos de agrupamiento que pueden ayudar a responder la pregunta.
"¿Qué técnica de agrupamiento debo usar?"
No existe un algoritmo de agrupamiento objetivo "correcto" Ref.
Los algoritmos de agrupación pueden clasificarse según su "modelo de agrupación". Un algoritmo diseñado para un tipo particular de modelo generalmente fallará en un tipo diferente de modelo. Por ejemplo, k-means no puede encontrar grupos no convexos, solo puede encontrar grupos de forma circular.
Por lo tanto, comprender estos "modelos de agrupación" se convierte en la clave para comprender cómo elegir entre los diversos algoritmos / métodos de agrupación. Los modelos de clúster típicos incluyen:
[1] Modelos de conectividad: crea modelos basados en la conectividad a distancia. Por ejemplo, agrupamiento jerárquico. Se usa cuando necesitamos particiones diferentes en función de la altura de corte del árbol. Función R: hclust en el paquete de estadísticas.
[2] Modelos centroides: construye modelos representando cada grupo por un solo vector medio. Se usa cuando necesitamos particiones nítidas (a diferencia de la agrupación difusa descrita más adelante). Función R: kmeans en el paquete de estadísticas.
[3] Modelos de distribución: Construye modelos basados en distribuciones estadísticas tales como distribuciones normales multivariadas utilizadas por el algoritmo de maximización de expectativas. Se usa cuando las formas de clúster pueden ser arbitrarias a diferencia de k-means que asume clústeres circulares. Función R: emcluster en el paquete emcluster.
[4] Modelos de densidad: construye modelos basados en clústeres como regiones densas conectadas en el espacio de datos. Ej. DBSCAN y ÓPTICA. Se utiliza cuando las formas de clúster pueden ser arbitrarias, a diferencia de k-means, que asume clústeres circulares.
[5] Modelos de subespacio: crea modelos basados tanto en miembros del clúster como en atributos relevantes. Por ejemplo, biclustering (también conocido como co-clustering o two-mode-clustering). Se usa cuando se necesita la agrupación simultánea de filas y columnas. Función R biclust en el paquete biclust.
[6] Modelos de grupo: crea modelos basados en la información de agrupación. Por ejemplo, filtrado colaborativo (algoritmo de recomendación). Recomendador de la función R en el paquete recomenderlab.
[7] Modelos basados en gráficos: construye modelos basados en camarillas. Los algoritmos de detección de estructura comunitaria intentan encontrar subgrafías densas en gráficos dirigidos o no dirigidos. Por ejemplo, la función R cluster_walktrap en el paquete igraph.
[8] Mapa de funciones de autoorganización de Kohonen: crea modelos basados en redes neuronales. Función R som en el paquete kohonen.
[9] Agrupación espectral: crea modelos basados en una estructura de agrupación no convexa, o cuando una medida del centro no es una descripción adecuada de la agrupación completa. Especificación de la función R en el paquete kernlab.
[10] agrupación del subespacio: para datos de alta dimensión, las funciones de distancia podrían ser problemáticas. los modelos de clúster incluyen los atributos relevantes para el clúster. Por ejemplo, la función hddc en el paquete R HDclassif.
[11] Agrupación de secuencias: secuencias de grupos que están relacionadas. Paquete rBlast.
[12] Propagación de afinidad: crea modelos basados en el paso de mensajes entre puntos de datos. No requiere que se determine el número de clústeres antes de ejecutar el algoritmo. Es mejor para ciertas tareas de visión por computadora y biología computacional, por ejemplo, agrupación de imágenes de rostros humanos e identificación de transcripciones reguladas, que k-means, Ref Rpackage APCluster.
[13] agrupación Corriente: Construye modelos basados en los datos que llegan de forma continua, como los registros telefónicos, transacciones financieras, etc. Por ejemplo, el paquete R ABEDUL [ https://cran.r-project.org/src/contrib/Archive/birch/]
[14] Agrupación de documentos (o agrupación de texto): crea modelos basados en SVD. Se ha utilizado en la extracción de temas. Por ejemplo, Carrot [ http://search.carrot2.org] es un motor de agrupación de resultados de búsqueda de código abierto que puede agrupar documentos en categorías temáticas.
[15] Modelo de clase latente: relaciona un conjunto de variables multivariadas observadas con un conjunto de variables latentes. LCA puede usarse en el filtrado colaborativo. El recomendador de la función R en el paquete recomenderlab tiene una funcionalidad de filtrado colaborativo.
[16] Biclustering: Se utiliza para agrupar simultáneamente filas y columnas de datos de dos modos. Por ejemplo, la función R biclust en el paquete biclust.
[17] Agrupación suave (agrupación difusa): cada objeto pertenece a cada grupo hasta cierto punto. Por ejemplo, la función R Fclust en el paquete fclust.