Elegir un método de agrupamiento

73

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?

Brett
fuente
1
¿Puedes intentar dar una descripción más específica de lo que quieres agrupar? ¿o es solo un estado del arte en agrupación que necesita?
robin girard
2
No tengo una aplicación inmediata en mente. Solo estoy interesado en un enfoque general para elegir un método de agrupamiento y una medida de similitud.
Brett
Verifique también esta pregunta similar.
ttnphns
Y algunas advertencias son específicamente métodos de agrupación jerárquica.
ttnphns

Respuestas:

43

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:

  • Cormack, R., 1971. Una revisión de la clasificación. Revista de la Royal Statistical Society, A 134, 321–367.
  • Everitt, B., 1974. Análisis de conglomerados . Londres: Heinemann Educ. Libros.
  • Gordon, A., 1987. Una revisión de la clasificación jerárquica. Revista de la Royal Statistical Society, A 150, 119–137.
  • Gordon, A., 1999. Clasificación , 2ª edición. Chapman y Hall.
  • Kaufman, L., Rousseuw, P., 1990. Encontrar grupos en datos: una introducción al análisis de conglomerados . Nueva York, Wiley.
chl
fuente
30

Una cita de Hastie, Tibshirani y Friedman, Elementos del aprendizaje estadístico , p. 506:

"Una medida de disimilitud apropiada es mucho más importante para obtener éxito con la agrupación que la elección del algoritmo de agrupación. Este aspecto del problema ... depende del conocimiento específico del dominio y es menos susceptible a la investigación general".

(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?)

denis
fuente
Gracias chi; ¿Puedes sugerir una etiqueta para "ejemplos que se pueden ejecutar en la web"?
denis
¿Te refieres a volver a plantear la pregunta (no creo que sea una buena idea porque el OP no fue después de las herramientas de evaluación comparativa en línea, IMO) o para una nueva pregunta que quieres hacer? De todos modos, no tengo idea de una buena etiqueta en este momento. Pregunta en Meta?
chl
1
Esta cita puede ser engañosa: claramente no se aplica a los ejemplos (ciertamente inventados) en wikipedia . Debido al fuerte agrupamiento no lineal en el segundo conjunto de datos, los algoritmos de agrupamiento y agrupamiento de densidad funcionan mucho mejor que cualquier método basado en centroide. No existe una medida de similitud que haga que un esquema de agrupamiento centroide funcione mejor. Esta cita solo es aplicable si asume que los grupos son aproximadamente lineales (a veces una suposición segura). Sugeriría inspeccionar visualmente sus datos primero, si es posible.
nada101
@ naught101, seguro: inspeccionar visualmente los datos para ver similitudes / diferencias es lo más importante, pero es más fácil decirlo que hacerlo
denis
Esta cita es de qué edición? puedes dar su cita ty
MonsterMMORPG
12

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.

mariana más suave
fuente
4

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.

Gonzalo Espinosa Duelo
fuente
1
Registre y / o combine sus cuentas 1 2 (puede encontrar información sobre cómo hacerlo en la sección Mi cuenta de nuestro centro de ayuda ). Entonces podrá realizar un seguimiento de sus respuestas, respuestas a ellas, etc., y otros beneficios también. Como eres nuevo aquí, es posible que quieras hacer nuestro recorrido , que tiene información para nuevos usuarios.
gung - Restablece a Monica
Ya ha publicado respuestas idénticas stats.stackexchange.com/a/253268/3277 anteriormente en un hilo similar. Duplicar respuestas no se considera justo. Te sugiero que elimines el actual. Pero puede y puede publicar un enlace a su (s) otra (s) respuesta (s), como comentario debajo de la pregunta de un OP o ser; debe alguna respuesta en un hilo actual.
ttnphns
2

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.

felipeduque
fuente
2

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.

deb2015
fuente