Me pregunto si alguien podría sugerir cuáles son buenos puntos de partida cuando se trata de realizar detección comunitaria / partición / agrupación de gráficos en un gráfico que tiene bordes ponderados y no dirigidos . El gráfico en cuestión tiene aproximadamente 3 millones de aristas y cada arista expresa el grado de similitud entre los dos vértices que conecta. En particular, en este conjunto de datos los bordes son individuos y los vértices son una medida de la similitud de su comportamiento observado.
En el pasado seguí una sugerencia que recibí aquí en stats.stackexchange.com y utilicé la implementación de igraph de la agrupación de modularidad de Newman y quedé satisfecho con los resultados, pero eso estaba en un conjunto de datos no ponderado.
¿Hay algún algoritmo específico que debería mirar?
fuente
Sé que Gephi puede procesar gráficos ponderados no dirigidos, pero parece recordar que debe almacenarse en GDF , que está bastante cerca de CSV o Ucinet DL . Tenga en cuenta que todavía es una versión alfa. Ahora, sobre la agrupación de su gráfico, Gephi parece carecer de canalizaciones de agrupación, a excepción del algoritmo MCL que ahora está disponible en la última versión. Hubo un Proyecto de código de Google en 2009, Gephi Network Statistics (que presenta, por ejemplo, la métrica de modularidad de Newman), pero no sé si se ha publicado algo en esta dirección. De todos modos, parece permitir algún tipo de cómputo de modularidad / agrupación, pero también vea Análisis de redes sociales usando R y Gephi yPreparación de datos para el análisis de redes sociales usando R y Gephi (Muchas gracias a @Tal).
Si está acostumbrado a Python, vale la pena probar NetworkX (Aquí hay un ejemplo de un gráfico ponderado con el código correspondiente). Entonces tiene muchas formas de llevar a cabo su análisis.
También deberías mirar INSNA - Software de análisis de redes sociales o la página web de Tim Evans sobre Redes complejas y complejidad .
fuente
Gephi implementa el método de Modularidad de Louvain: http://wiki.gephi.org/index.php/Modularity
aclamaciones
fuente
El algoritmo de modularidad de Lovaina está disponible en C ++: https://sites.google.com/site/findcommunities/
Se trata de redes ponderadas de millones de nodos y bordes, y se ha demostrado que es mucho más rápido que el algoritmo de Newman.
fuente
Si está utilizando python y ha creado un gráfico ponderado con NetworkX , puede usar python-louvain para la agrupación. Donde G es un gráfico ponderado:
fuente
Acabo de encontrar el paquete tnet para R. El creador parece estar investigando el descubrimiento de la comunidad en gráficos ponderados y bipartitos (dos modos).
http://opsahl.co.uk/tnet/content/view/15/27/
Todavía no lo he usado.
fuente
SLPA (ahora llamado GANXiS) es un algoritmo rápido capaz de detectar comunidades disjuntas y superpuestas en redes sociales (no dirigido / dirigido y no ponderado / ponderado). Se muestra que el algoritmo produce resultados significativos en las redes sociales y genéticas del mundo real. Es uno de los más modernos. Está disponible en
https://sites.google.com/site/communitydetectionslpa/
Vea una buena reseña arxiv.org/abs/1110.5813 para más información
fuente
Tengo una implementación de Java para una red no superpuesta, ponderada / no ponderada que probablemente podría manejar 3 millones de nodos (lo he probado para un conjunto de datos de un millón de nodos). Sin embargo, funciona como k-means y necesita que se detecte el número de particiones como entrada (k en kmeans). Puede encontrar más información aquí , y aquí está el código , en github
Aclamaciones,
fuente