Cuando se utiliza el análisis de conglomerados en un conjunto de datos para agrupar casos similares, es necesario elegir entre una gran cantidad de métodos de agrupamiento y medidas de distancia. A veces, una opción puede influir en la otra, pero hay muchas combinaciones posibles de métodos.
¿Alguien tiene alguna recomendación sobre cómo elegir entre los diversos algoritmos / métodos de agrupamiento y medidas de distancia ? ¿Cómo se relaciona esto con la naturaleza de las variables (p. Ej., Categóricas o numéricas) y el problema de agrupamiento? ¿Existe una técnica óptima?
Respuestas:
No hay una respuesta definitiva a su pregunta, ya que incluso dentro del mismo método, la elección de la distancia para representar individuos (des) similitud puede arrojar un resultado diferente, por ejemplo, cuando se usa euclidiana versus euclidiana al cuadrado en agrupación jerárquica. Como otro ejemplo, para datos binarios, puede elegir el índice Jaccard como una medida de similitud y proceder con la agrupación jerárquica clásica; pero hay enfoques alternativos, como la Mona ( Análisis Monotetico) algoritmo que solo considera una variable a la vez, mientras que otros enfoques jerárquicos (por ejemplo, HC clásico, Agnes, Diana) usan todas las variables en cada paso. El enfoque de k-medias se ha extendido de varias maneras, incluida la partición alrededor de medoides (PAM) u objetos representativos en lugar de centroides (Kaufman y Rousseuw, 1990), o agrupamiento difuso (Chung y Lee, 1992). Por ejemplo, la principal diferencia entre k-means y PAM es que PAM minimiza una suma de diferencias en lugar de una suma de distancias euclidianas al cuadrado; el agrupamiento difuso permite considerar la "membresía parcial" (asociamos a cada observación un peso que refleja la membresía de la clase). Y para los métodos que se basan en un marco probabilístico, o el denominado agrupamiento basado en modelos (o análisis de perfil latentepara los psicometristas), hay un gran paquete: Mclust . Definitivamente, debe considerar cómo definir el parecido de las personas, así como el método para vincular a las personas (agrupación recursiva o iterativa, membresía de clase estricta o difusa, enfoque no supervisado o semi-supervisado, etc.).
Por lo general, para evaluar la estabilidad del clúster, es interesante comparar varios algoritmos que básicamente "comparten" alguna similitud (por ejemplo, k-medias y agrupamiento jerárquico, porque la distancia euclidiana funciona para ambos). Para evaluar la concordancia entre dos soluciones de grupo, se sugirieron algunos indicadores en respuesta a esta pregunta, ¿Dónde cortar un dendrograma? (vea también las referencias cruzadas para otro enlace en este sitio web). Si está utilizando R, verá que varios paquetes ya están disponibles en la Vista de tareas en Análisis de clúster, y varios paquetes incluyen viñetas que explican métodos específicos o proporcionan estudios de casos.
Análisis de conglomerados: Conceptos básicos y algoritmos proporciona una buena visión general de varias técnicas utilizadas en el análisis de conglomerados. En cuanto a un buen libro reciente con ilustraciones de R, recomendaría el capítulo 12 de Izenman, Modern Multivariate Statistical Techniques (Springer, 2008). A continuación se dan algunas otras referencias estándar:
fuente
Una cita de Hastie, Tibshirani y Friedman, Elementos del aprendizaje estadístico , p. 506:
(Dicho esto, ¿no sería bueno si (wibni) hubiera un sitio donde los estudiantes pudieran probar algunos algoritmos y métricas en algunos conjuntos de datos estándar pequeños?)
fuente
No puede saber de antemano qué algoritmo de agrupamiento sería mejor, pero hay algunas pistas, por ejemplo, si desea agrupar imágenes, hay ciertos algoritmos que debe probar primero como Fuzzy Art, o si desea agrupar caras, debe comenzar con (GGCI) agrupamiento geométrico global para imagen.
De todos modos, esto no garantiza el mejor resultado, por lo que lo que haría es utilizar un programa que le permita ejecutar metódicamente diferentes algoritmos de clúster, como weka, RapidMiner o incluso R (que no es visual). Allí estableceré el programa en Lanzar todos los diferentes algoritmos de agrupación que pueda, con todas las distancias diferentes posibles, y si necesitan parámetros, experimentar cada uno con una variedad de valores de parámetros diferentes (además si no conozco la cantidad de grupos, ejecutar cada uno con una variedad de números de ella). Una vez que resolvió el experimento, déjelo en funcionamiento, pero recuerde almacenar en algún lugar los resultados de cada ejecución de agrupación.
Luego compare los resultados para obtener el mejor agrupamiento resultante. Esto es complicado porque hay varias métricas que puedes comparar y no todos son proporcionados por cada algoritmo. Por ejemplo, los algoritmos de agrupación difusa tienen métricas diferentes a las no difusas, pero aún se pueden comparar considerando los grupos resultantes difusos como no difusos, me limitaré a la comparación con las métricas clásicas como:
• SSE: suma del error cuadrado de los elementos de cada grupo.
• Distancia entre grupos: suma de la distancia cuadrada entre cada centroide de grupo.
• Distancia dentro del grupo para cada grupo: suma de la distancia al cuadrado desde los elementos de cada grupo hasta su centroide.
• Radio máximo: la mayor distancia desde una instancia a su centroide de clúster.
• Radio promedio: suma de la distancia más grande desde una instancia hasta su centroide de conglomerado dividido por el número de conglomerados.
fuente
Elegir la distancia correcta no es una tarea elemental. Cuando queremos hacer un análisis de conglomerados en un conjunto de datos, pueden aparecer resultados diferentes usando distancias diferentes, por lo que es muy importante tener cuidado en qué distancia elegir, porque podemos hacer un falso buen artefacto que capture bien la variabilidad, pero en realidad sin sentido en nuestro problema.
La distancia euclidiana es apropiada cuando tengo variables numéricas continuas y quiero reflejar distancias absolutas. Esta distancia tiene en cuenta todas las variables y no elimina las redundancias, por lo que si tuviera tres variables que explican lo mismo (están correlacionadas), pondería este efecto en tres. Además, esta distancia no es invariante de escala, por lo que generalmente tengo que escalar previamente para usar la distancia.
Ejemplo de ecología: tenemos diferentes observaciones de muchas localidades, de las cuales los expertos han tomado muestras de algunos factores microbiológicos, físicos y químicos. Queremos encontrar patrones en los ecosistemas. Estos factores tienen una alta correlación, pero sabemos que todos son relevantes, por lo que no queremos eliminar estas redundancias. Utilizamos la distancia euclidiana con datos escalados para evitar el efecto de las unidades.
La distancia de Mahalanobis es apropiada cuando tengo variables numéricas continuas y quiero reflejar distancias absolutas, pero queremos eliminar las redundancias. Si tenemos variables repetidas, su efecto repetitivo desaparecerá.
La distancia familiar Hellinger , Species Profile y Chord es apropiada cuando queremos hacer énfasis en las diferencias entre las variables, cuando queremos diferenciar los perfiles. Estas distancias pesan en cantidades totales de cada observación, de tal manera que las distancias son pequeñas cuando variable por variable los individuos son más similares, aunque en magnitudes absolutas fue muy diferente. ¡Cuidado! Estas distancias reflejan muy bien la diferencia entre perfiles, pero perdieron el efecto de magnitud. Podrían ser muy útiles cuando tenemos diferentes tamaños de muestra. Ejemplo de ecología: queremos estudiar la fauna de muchas tierras y tenemos una matriz de datos de un inventario del gasterópodo (ubicaciones de muestreo en filas y nombres de especies en columnas). La matriz se caracteriza por tener muchos ceros y diferentes magnitudes porque algunas localidades tienen algunas especies y otras tienen otras especies. Podríamos usar la distancia Hellinger.
Bray-Curtis es bastante similar, pero es más apropiado cuando queremos diferenciar perfiles y también tener en cuenta las magnitudes relativas.
fuente
En lo que a mí respecta, si desea una opción segura, los métodos de agrupación espectral han logrado las tasas de precisión más altas en los últimos años, al menos en agrupación de imágenes.
En cuanto a la métrica de distancia, depende mucho de cómo estén organizados sus datos. La opción segura es la simple distancia euclidiana, pero si sabe que sus datos contienen múltiples, debe asignar los puntos a través de métodos de kernel.
PD: todos están relacionados con valores numéricos, no categóricos. No estoy seguro de cómo se podría agrupar datos categóricos.
fuente
Aquí hay un resumen de varios algoritmos de agrupamiento que pueden ayudar a responder la pregunta.
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.
fuente