Algoritmi per il rilevamento della comunità per i grafici bipartiti?


11

Esistono algoritmi per il rilevamento di comunità per grafici bipartiti (reti a 2 modalità) implementati in igraph, networkX, R o Python ecc.? In particolare, esiste una tale implementazione in cui si sarebbe in grado di limitare il rilevamento delle comunità solo in una delle due modalità?


2
Come si potrebbe "limitare il rilevamento delle comunità solo in una delle due modalità" senza sapere in anticipo quali nodi costituiscono le modalità? Sembra circolare.
Hardmath,

In una rete bipartita conosci già le due modalità. Ad esempio, se metà dei nodi che appartengono alla modalità "A" si collegano a un nodo che appartiene alla modalità "B", allora si ha una comunità lì.
Adamo,

Se sai in anticipo quali nodi appartengono a ciascuna modalità, questo risponde alla mia domanda su come limitare il rilevamento. Tuttavia, il tuo esempio e la sua nozione implicita di "comunità" non sono chiari. Se un vertice in un grafico bipartito non si collega a nessun vertice della modalità opposta, allora non si collega a nessun vertice (sarebbe isolato). In un grafico bipartito collegato ogni vertice della modalità "A" si collega ad un vertice della modalità "B" e viceversa. "Community" significherebbe in genere qualcosa di più di un sottografo collegato.
Hardmath,

Riflettendo, sospetto che il tuo "collegamento con un nodo" intendesse collegarsi con un singolo nodo comune, dando una cricca nel grafico proiettato (vedi risposta), e quindi "una comunità lì". Ci scusiamo per non aver capito il tuo punto in prima lettura.
Hardmath,

Non sono necessarie scuse. Il mio inglese non era così chiaro comunque.
Adamo,

Risposte:


5

L'espressione "rilevamento di comunità" è definita in modo approssimativo come il partizionamento dei vertici di un grafico in "comunità" in modo tale che ciascuno abbia membri più densamente collegati tra loro rispetto ai membri di altre "comunità".

Il nostro primo compito è accertare cosa ciò dovrebbe significare nel caso di un grafico bipartito, che per definizione è costituito da due "modalità" in modo tale che i membri di una modalità siano collegati solo ai membri dell'altra modalità. Può essere espresso, almeno per grafici semplici, come avente una matrice di adiacenza con una struttura a blocchi speciale:

A=(0BBT0)

A2BBTBTBA

Siamo altrettanto fortunati nel fatto che gli algoritmi di rilevamento della comunità igraph e relativi sono stati "aggiornati per gestire grafici ponderati" (come i grafici multipli).


S. Fortunato (2010) esamina i criteri di rilevamento della comunità ( rilevamento della comunità in grafici ) e il loro uso con reti bipartite e multipartite. L'interpretazione che suggerisco sopra è articolata a pagina 8:

I grafici multipartite sono generalmente ridotti a proiezioni unipartite di ciascuna classe di vertici. Ad esempio, dalla rete bipartita di scienziati e documenti si può estrarre solo una rete di scienziati, che sono collegati dal coautore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.