Gephi è un visualizzatore interattivo e una piattaforma di esplorazione per tutti i tipi di reti e sistemi complessi, dinamici e grafi gerarchici. E’ disponibile per Linux, Mac e Windows. E’ gratuito e open-source. Può essere scaricato dalla pagina Download.
Gephi è stato usato in una serie di progetti di ricerca in ambito universitario, giornalistico e in vari altri campi, per esempio per visualizzare le connessioni globali ai contenuti del New York Times o per esaminare la rete di traffico su Twitter in occasioni di disordini sociali, ma anche per altre tematiche solitamente oggetto di analisi di rete[Wikipedia].

surveyq5[Source]

Gephi è uno strumento completo per la comprensione e l’elaborazione dei grafi. Un utente può interagire con la rappresentazione grafica dei grafi, manipolarne le strutture, le forme e i colori per ordinarli e renderli più chiari a colpo d’occhio. Offre numerosi algoritmi di manipolazione, per rendere possibile la scoperta di nuovi modelli e pattern. Possiamo pensare a Gephi come ad uno strumento complementare alle statistiche tradizionali, infatti è in grado di semplificare, schematizzare e tradurre graficamente un insieme di dati attraverso le immagini. Per sperimentare su Gephi possiamo anche accedere ad una grande quantità di dataset scaricabili dalla pagina Datasets.

1) Comunque, poichè il nostro obiettivo è mantenere le cose semplici, ci limiteremo, per iniziare, a creare un semplice file CSV:

1,2
2,3
3,4
4,5
5,6
1,6
1,3

2) A questo punto mandiamo in esecuzione Gephi. Gephi è un’applicazione sviluppata in Java e basata sulla piattaforma NetBeans.

splash091homepic

3) Dopo il caricamento facciamo click su File>Open e selezioniamo il file precedentemente creato. Quindi impostiamo il campo Graph Type su Directed e facciamo click su Ok.

Schermata 2016-07-06 alle 00.07.43

4) Dopo qualche istante appare un grafo consistente in 6 nodi e 7 archi che riflettono le indicazioni contenute nel file importato.

Schermata 2016-07-06 alle 00.12.59

5) Accedendo alla sezione Statistics sul lato destro possiamo richiedere il calcolo di una estesa varietà di parametrizzazioni per l’analisi del grafo. Per esempio nella figura sottostante si sta impostando il calcolo della modularità del grafo.

Schermata 2016-07-06 alle 00

6) Rendiamo le cose più interessanti e facciamoci generare un grafo casuale da Gephi stesso. In particolare, facciamo click su File>Generate>Random Graph.

Schermata 2016-07-06 alle 00.43.45

7) Su questo grafo, per esempio, dalla sezione Statistics, richiediamo il calcolo di: grado medio (numero medio di connessioni per i nodi della rete), diametro (la distanza massima fra due nodi non connessi direttamente), densità (descrive il livello generale dei legami fra i punti in un grafo. Più sono numerose i nodi direttamente collegati fra loro più un grafo è denso. Un grafo completamente connesso ha densità 1), modularità (il suo valore quantifica la qualità della divisione della rete in moduli o comunità o gruppi logici), pagerank (pensando ai nodi come a pagine web, la funzione assegna a ciascun nodo la probabilita di ricomparire dopo molti click).

8) Passiamo al pannello Appearance a sinistra e clicchiamo su Nodes, quindi ancora su Attribute. Nel menù a tendina selezioniamo Modularity Class. Quindi facciamo click su Apply e i nodi del grafo appariranno colorati secondo il loro gruppo di appartenenza (o più precisamente secondo la struttura della comunità).

Schermata 2016-07-06 alle 01.11.17.png

9) Sempre nel pannello Appearance, selezioniamo l’icona Size, quindi nel menu a tendina selezioniamo Degree e impostiamo valori minimo e massimo (coerentemente con quanto ottenuto precendetemente in fase di calcolo del grado medio). Quindi clicchiamo su Apply. La dimensione dei nodi del grafo varierà in misura proporzionale al grado di ogni nodo (ossia al numero di archi connessi). Un risultato analogo potremmo ottenerlo per il pagerank e così via.

Schermata 2016-07-06 alle 01

10) Passiamo ora al pannello Layout a sinistra. Dal menu a tendina selezioniamo ForceAtlas quindi facciamo click sulle caselle Adjust by Size, Attraction Distribution e poi sul pulsante Run per lanciare l’algoritmo di generazione del layout. Faremo click su Stop non appena otteremo una forma utile per i propri scopi.

I layout sono gli algoritmi con i quali possiamo lavorare il grafo. Gephi presenta un buon numero di layout su cui lavorare. E’ fondamentale capire come si comportano i layout a seconda del tipo di grafo e, di conseguenza, scegliere il layout piu appropriato che  restituisca il grafo nella forma che ci interessa. Layout diversi producono rappresentazioni del grafo molto diverse. Nello specifico ForceAtlas è adatto a visualizzare le reti a invarianza di scala (per esempio reti sociali, internet, il numero di Bacon) e quei grafi dove i nodi sono per la maggior parte connessi fra di loro, o dove al più un nodo può essere raggiunto con pochi passi (small-world network). Si concentra sul rendere il grafo più leggibile possibile e offrire una interpretazione reale delle connessioni fra i nodi. E’ abbastanza lento, ha complessità O(n2), dove n è il numero di nodi e riesce a lavorare su grafi da 1 a 10000 nodi circa. Si possono settare parametri come “Repulsion strenght”, ovvero quanto i nodi si respingono gli uni dagli altri o “Attraction strength” dove al contrario i nodi si attirano. “Autostab strenght” regola la lentezza con cui i nodi si spostano una volta lanciato l’algoritmo, “Gravity” attira tutti i nodi al centro per evitare una dispersione esagerata dei nodi sconnessi. Esiste una versione migliorata di questo layout chiamata ForceAtlas2 con complessità O(n*log(n)). Lavora più velocemente  anche su grafi di grandi dimensioni approssimando la repulsione fra i nodi grazie all’impiego dell’algortimo di Barnes-Hut, che a sua volta ne riduce la complessità.

Schermata 2016-07-06 alle 01.59.09

Nella figura precedente al centro di ogni nodo è visualizzata un’etichetta. Questa visualizzazione è ottenuta premendo l’icona T sotto al grafico e regolando la dimensione della font con il controllo a scorrimento in prossimità. Nell’esempio corrente il grafo è stato generato dinamicamente quindi le etichette seguono una numerazione casuale priva di significato. In un caso reale, l’etichettatura potrebbe assumere grande utilità.

11) Accedendo a File>Export>SVG/PDF/PNG è possibile esportare la rappresentazione del grafo in uno dei formati indicati.

Untitled

Nonostante l’intrinseca vastità di opzioni, Gephi ha l’enorme pregio di essere  sufficientemente autoesplicativo. Le opzioni impostabili sono corredate con brevi descrizioni in grado di supportare scelte operative il più possibile consapevoli. Una tappa obbligata, sul sito ufficiale, è la pagina Learn how to use Gephi.

Pubblicato da lorenzo

Full-time engineer. I like to write about data science and artificial intelligence.

Vuoi commentare?