2009-09-23 31 views
9

Me gustaría usar correlation clustering y calculo R es un buen lugar para comenzar.Agrupación de correlación en R

Puedo presentar los datos a R como un conjunto de vectores grandes y dispersos o como una tabla con una matriz de desemejanza pre calculada.

Mis preguntas son:

  • están allí R funciones existentes para convertir esto en un hierarchical cluster con agnes que utiliza correlation clustering?
  • tendré que implementar la función (ciertamente simple) correlation clustering a mano, si es así ¿cómo puedo hacer que funcione bien con agnes?

Respuesta

7

la verdad es que sé muy poco sobre este tema, pero sólo para apuntar en una dirección:

  • ¿Has mirado en el paquete clúster? Tiene muy buena documentación. En particular, mire la ayuda (agnes) para algunas sugerencias. Martin Maechler (un miembro del equipo central de R) creó el paquete y ha contribuido a las discusiones de Desbordamiento de pila anteriormente, por lo que espero que brinde una respuesta aquí.
  • La función hclust() es parte del paquete de estadísticas. De hecho, creo que hay planes para fusionar hclust() y agnes().
  • También puede encontrar this page from the Bioconductor project helpful.
  • De lo contrario, puede tener un poco de suerte mirando otros paquetes en el CRAN Clustering, Natural Language Processing o Machine Learning vistas.
+0

Gracias por las referencias – daveb

+0

No hay problema. Siéntase libre de publicar cualquier seguimiento de nuevo en esta pregunta cuando resuelva todo. :) – Shane

7

El enfoque estándar sería uno que implica cor(), hclust() y plot.hclust(). Recomiendo muchísimo heatmap.2 del maravilloso paquete gplots.

1

Fui a http://www.rseek.org/ e ingresé el algoritmo de Agnes y encontré que el paquete CLUSTER en CRAN tiene los siguientes detalles de función para la función AGNES.

Detalles

Agnes se describe completamente en el capítulo 5 de Kaufman y Rousseeuw (1990). comparación con otros métodos agrupamiento aglutinador como hclust, Agnes tiene las siguientes características: (a) cede el coeficiente de aglomeración (ver agnes.object) que mide la cantidad de clustering estructura encontrado; y (b) aparte de el árbol habitual, también proporciona el banner , una nueva pantalla gráfica (ver plot.agnes).

El algoritmo de agnes construye una jerarquía de agrupaciones . Al principio, cada observación es un pequeño grupo por sí mismo. Los clústeres se fusionan hasta que solo queda un gran grupo que contiene todas las observaciones.En cada etapa , los dos clústeres más cercanos son combinados para formar un clúster más grande.

Para method = "promedio", la distancia entre dos grupos es el promedio de las diferencias entre los puntos de en un racimo y los puntos en la otra clúster. En method = "single", usamos la menor diferencia entre un punto en el primer clúster y un punto en el segundo clúster (el método vecino más cercano es ). Cuando método = "completo", utilizamos la mayor diferencia entre un punto en el primer clúster y un punto en el segundo clúster (método vecino más lejano ).

La agrupación en clústeres es un tema bastante amplio y encontrará muchos paquetes para R que implementan alguna forma de ello. Cuando tiene tanto atributos como covariables, combinar la agrupación con la ordenación a veces puede proporcionar más información.

2

Es fácil de usar la función agnes en el paquete de clúster con una matriz de diferencias. Simplemente establece el argumento "diss" en VERDADERO.

Si puede calcular fácilmente la matriz de disimilitud fuera de R, ese puede ser el camino a seguir. De lo contrario, puede usar la función cor en R para generar la matriz de similitud (desde la cual puede obtener la matriz de diferencias restando de 1).