Software de visualización para agrupamiento

14

Quiero agrupar ~ 22000 puntos. Muchos algoritmos de agrupamiento funcionan mejor con conjeturas iniciales de mayor calidad. ¿Qué herramientas existen que me pueden dar una buena idea de la forma aproximada de los datos?

Quiero poder elegir mi propia métrica de distancia, por lo que un programa al que pueda alimentar una lista de distancias por pares estaría bien. Me gustaría poder hacer algo como resaltar una región o clúster en la pantalla y obtener una lista de los puntos de datos que están en esa área.

Se prefiere el software libre, pero ya tengo SAS y MATLAB.

anónimo
fuente

Respuestas:

11

GGobi (http://www.ggobi.org/), junto con el paquete R rggobi, se adapta perfectamente a esta tarea.

Consulte la presentación relacionada para ver ejemplos: http://www.ggobi.org/book/2007-infovis/05-clustering.pdf

Shane
fuente
Gracias por la sugerencia, @Shane. ggobi parece prometedor, lo estoy instalando ahora y lo intentaré :)
1
Funciona bien en otras plataformas, pero gtk no funciona bien con OSX.
3
GTK está bien en OSX.
Hadley
5

La exploración de resultados de agrupación en grandes dimensiones se puede hacer en R utilizando los paquetes clusterfly y gcExplorer . Busque más aquí .

George Dontas
fuente
Gracias, pero ¿hay algún beneficio en usar clusterfly en lugar de llamar a ggobi directamente? El sitio web solo menciona métodos de agrupación, que son interesantes, pero todavía no es mi objetivo principal. gcexplorer tiene un sitio web menos informativo, pero parece que es para visualizar datos después de que ya se ha dividido en clústeres. Los intentaré una vez que llegue a ese punto, pero no lo que necesito en este momento.
4

(Meses más tarde), una buena manera de imaginar grupos de k y ver el efecto de varios k es construir un árbol de expansión mínima y observar los bordes más largos. Por ejemplo,

texto alternativo

Aquí hay 10 grupos, con 9 bordes más largos 855 899 942 954 1003 1005 1069 1134 1267.
Para 9 grupos, colapsa el borde cian 855; para 8, el morado 899; y así.

El algoritmo k-clustering de enlace único ... es precisamente el algoritmo de Kruskal ... equivalente a encontrar un MST y eliminar los bordes k-1 más caros.

- Wayne, Algoritmos codiciosos .

22000 puntos, 242 M de distancia por pares, toman ~ 1 gigabyte (float32): podría encajar.

Para ver un árbol o gráfico de alta dimensión en 2d, vea Escalamiento multidimensional (también de Kruskal), y la gran literatura sobre reducción de dimensiones. Sin embargo, en dim> 20 digamos, la mayoría de las distancias estarán cerca de la mediana, por lo que creo que la reducción de dimensiones no puede funcionar allí.

denis
fuente
2

He tenido buena experiencia con KNIME durante uno de mis proyectos. Es una excelente solución para minería y gráficas exploratorias rápidas. Además de eso, proporciona una integración perfecta de los módulos R y Weka.

radek
fuente
Parece un programa útil, pero su página web no hace un buen trabajo para convencerme de que resolverá este problema exacto. Parece que puede ser demasiado amplio, hay muchas características que no me importan, lo que dificulta hacer las cosas simples. Le echaré otro vistazo si las otras opciones no funcionan.
2

También eche un vistazo a ELKI , un software de minería de datos de código abierto. Wikimedia commons tiene una galería con imágenes producidas con ELKI , muchas de las cuales están relacionadas con el análisis de conglomerados.

HA SALIDO - Anony-Mousse
fuente
1

Echa un vistazo a Cluster 3.0 . No estoy seguro de si hará todo lo que desee, pero está bastante bien documentado y le permite elegir entre algunas métricas de distancia. La pieza de visualización es a través de un programa separado llamado Java TreeView ( captura de pantalla ).

ars
fuente
Gracias por la sugerencia, pero la capacidad de elegir mi propia medida de distancia es crítica, por lo que esto no me funcionará. Sin embargo, alguien más puede encontrarlo útil.
1

GGobi parece interesante para esto. Otro enfoque podría ser tratar sus matrices de similitud / distancia inversa como matrices de adyacencia de red y alimentarlas en una rutina de análisis de red (por ejemplo, igraph en R o quizás Pajek). Con este enfoque, experimentaría cortando las distancias de corte del nodo en un lazo binario en varios puntos de corte.

Shelby
fuente
Pensé en esto, pero no parece haber un punto de corte razonable, y los expertos en dominios tampoco pueden justificarlo.
Creo que esto podría ser bastante arbitrario para su propósito declarado; honestamente, es posible que ni siquiera necesite cortar en binario, simplemente vuelva a codificar una etiqueta de valor de empate en una escala de 1 a algún número manejable, luego oculte / muestre progresivamente los empates en varios niveles (opcionalmente, también ocultar / eliminar colgantes y huérfanos en el camino). No responde directamente a su solicitud tal como está escrita, pero ¿por qué no adopta un enfoque más típico y utiliza un método de agrupación híbrida que no utiliza centroides iniciales para identificar grupos preliminares, luego alimenta los centroides de ese resultado en su nuevo análisis?
Shelby
¿Supongo que te refieres a intentar muchos cortes diferentes hasta que vea algunos buenos resultados? Deseo evitar eso por razones estándar de comparaciones múltiples. re: su segunda sugerencia Supongo que confío en mí mismo mejor que esos algoritmos. Utilizo la computadora para procesar grandes cantidades de datos demasiado tediosos para hacer a mano, no para reemplazar mi pensamiento.
1
Está utilizando un lenguaje de prueba de hipótesis pero al mismo tiempo está hablando de un enfoque muy exploratorio, de saber cuando lo ve, al mismo tiempo, por lo que no está claro cuál es realmente su objetivo para esta parte de su análisis. Si tiene hipótesis que está probando más adelante (por ejemplo, prediciendo la membresía del clúster o usando la membresía del clúster como predictor), puede elegir no hacer cosas que provoquen sesgos allí. Pero los problemas de "comparación múltiple" realmente no figuran en el problema exploratorio que está describiendo. Los límites de visualización son solo para ayudarlo a ver lo que hay allí, pero su confianza aún puede estar fuera de lugar.
Shelby el
1

Weka es un programa de código abierto para la minería de datos (wirtten y extensible en Java), Orange es un programa de código abierto y una biblioteca para la minería de datos y el aprendizaje automático (escrito en Python). Ambos permiten una exploración visual conveniente y eficiente de datos multidimensionales

Jonathan James
fuente
La página de características de Orange dice 'en construcción' y no enumeran capturas de pantalla como lo que estoy haciendo. Weka no tiene ninguna lista de características. Es posible que puedan hacer lo que quiero, pero si no promueven la función, ¿cómo puedo saberlo? Estoy más convencido por las otras opciones.
0

El software numérico gratuito DataMelt incluye una biblioteca Java llamada JMinHep. Consulte el manual en la sección "Agrupación de datos". Proporciona una GUI para visualizar puntos de datos multidimensionales en XY, y ejecuta una serie de algoritmos de agrupación de datos.

tania62
fuente