Mid Term 2016 - Giulio Bambini

Download Report

Transcript Mid Term 2016 - Giulio Bambini

Matricola:

458856

Nome:

Giulio Bambini

Esame:

Analisi delle reti sociali

Mid Term 2016

 

Sommario Abstract ................................................................................................................................................ 3 1.Crawler e collezione dei dati ............................................................................................................. 3 2. Confronto tra rete reale, rete casuale e rete ba ................................................................................. 5 2.1 Degree distribution ..................................................................................................................... 7 2.2 Shortest path length distribution ................................................................................................ 8 2.3 Clustering coefficient distribution ........................................................................................... 10 2.4 Eigenvector centrality .............................................................................................................. 11 2.5 Betweenness centrality ............................................................................................................. 12 2.6 Closeness centrality .................................................................................................................. 13   3. Conclusioni .................................................................................................................................... 15

2  

Abstract

Il seguente elaborato si propone di analizzare una porzione di rete estratta da Wikipedia, un’enciclopedia online a contenuto aperto, collaborativa, multilingua e con più di 35 milioni di voci redatte . Nello specifico verranno analizzate le caratteristiche della struttura della rete di Wikipedia e confrontate con quelle di una rete casuale diretta generata con l’

Erd ő s–Rényi model

e con quelle di una rete scale-free diretta generata con il

Barabási–Albert model

. Le due reti generate con i modelli teorici sono state costruite in modo da avere lo stesso numero di nodi della rete reale. La porzione di rete da analizzare è stata estratta con un crawler sviluppato in Ruby e l’utilizzo della libreria Nokogiri 1 per accedere al DOM delle pagine web. L’analisi è stata effettuata a partire dalla voce Bruce_Willis 2 .

1. Crawler e collezione dei dati

Il crawler scarica tutti gli archi dal nodo di partenza (nel nostro caso la voce Bruce_Willis presenta 138 archi), accede a ciascun nodo di destinazione e prosegue nell’effettuare la collezione degli archi come nell’esempio in Tabella 1:

Source

/wiki/Bruce_Willis

Target

/wiki/Idar-Oberstein /wiki/Idar-Oberstein /wiki/Città /wiki/Città /wiki/Popolazione

 

Il programma riceve in input 4 parametri: l’URL della voce di Wikipedia, il limite totale di archi, il limite di link per voce visitata e il limite di propagazione delle visite. A partire dalla classe Struct vengono creati i nuovi archi con cinque symbol: Arco  =  Struct.new(:nomeVoce1,:nomeVoce2,:linkVoce1,:linkVoce2,:livProp,:external)   Ciascun arco creato viene inserito col metodo push nell’oggetto $arrayLinkEstratti . Il programma sfrutta un thread per verificare il corretto funzionamento dei cicli. L’esecuzione del programma viene interrotta nel caso in cui la lunghezza dell’oggetto riempito con la lista delle coppie degli archi estratti sia maggiore del valore della variabile globale ($limiteLink importata una tabella MySQL con l’elenco di diversi User-Agent: ), la quale definisce in input il limite di archi totali da estrarre. Per limitare i blocchi imposti dai server di Wikipedia è stata Mozilla/5.0  (Windows  NT  6.1)  AppleWebKit/537.36  (KHTML,  like  Gecko)  Chrome/41.0.2228.0  Safari/537.36   Successivamente, attraverso una funzione che restituisce casualmente l’estrazione dello User-Agent dalla tabella è stato passato tale valore come secondo parametro alla funzione che si occupa di estrarre i link per voce: estrazione  =  Nokogiri::HTML(open(uriANDurl,'User-­‐Agent'  =>  EstraiUA),nil,'utf-­‐8')   Per non falsare la struttura della rete generata non è stato applicato il limite di link per voce in modo tale da scaricare le liste complete dei link per ciascuna pagina web analizzata. Una volta riempito il csv in output, questo è stato ripulito con il programma NetworkCleaner.py sviluppato dal Prof.re Giulio Rossetti per rimuovere le foglie ed eventuali archi e nodi duplicati. Questa scelta è

                                                                                                               

1  http://www.nokogiri.org/   2  https://it.wikipedia.org/wiki/Bruce_Willis  

3  

giustificata dal fatto che potendo scaricare solo una porzione di rete, molti dei collegamenti finali sarebbero stati visti come nodi terminali. Nella sotto-rete di Wikipedia, invece, quei nodi hanno ulteriori collegamenti che in questo caso sono stati interrotti per fini di praticità. Il network è stato trattato come diretto poiché tutti gli archi scaricati sono diretti e i nodi che eventualmente possono essere collegati reciprocamente sfruttano archi distinti, come nell’esempio in Figura 1:

 

Figura 1. Esempio di grafo diretto con 2 nodi scelti su Wikipedia

4  

2. Confronto tra rete reale, rete casuale e rete ba

3

Figura 2. Rete reale diretta ottenuta con gli archi scaricati da Wikipedia La rete reale graficata in Figura 2 con la combinazione dei layout Force Atlas e Noverlap di Gephi si compone di 5317 nodi, 208167 archi e con densità pari a 0.007. I nodi sono stati classificati per grado sulla base del colore e della dimensione. Il nodo di grado massimo è evidenziato con il colore blu ( id  =   Italia con 𝑘 4 = 5036 ). La rete è costituita da una singola componente connessa.

                                                                                                                 

3  Per  ba  si  intende  la   rete scale-free diretta generata con il

Barabási–Albert model

  4  Per   𝑘  si  intende  il  grado  del  nodo  

5  

 

Figura 3. Rete casuale diretta ottenuta con network x Figura 4. Rete ba diretta ottenuta con R Entrambe le reti messe a confronto sono state graficate con Gephi seguendo le stesse impostazioni di layout e di classificazione dei nodi utilizzate per la rete reale. La rete casuale in Figura 3 è stata generata con Python e la libreria NetworkX facendo uso della funzione

erdos_renyi_graph(n,p,directed=True)

. La rete ottenuta è stata esportata con il comando

nx.write_graphml

. Essa si compone di 5317 nodi e 207811 archi; il nodo di grado massimo è evidenziato in colore blu ( id = 4665 con 𝑘 = 110 ) e non sono presenti hub. La rete ba in Figura 4 è stata generata con R 5 facendo uso della funzione

sample_pa(n, power, m, directed=T)

messa a disposizione dalla libreria igraph 6 . La rete ottenuta è stata esportata con il comando

write.graph("ba, ba.graphml", format=c("graphml"))

. Si compone di 5.317 nodi e 206.583 archi, il nodo di grado massimo è evidenziato in colore blu ( id =   n0 con 𝑘 = 3222 ).

Statistiche Rete reale Rete casuale Rete ba

Avg. degree Clustering-coefficient Connected components Network diameter Network radius Shortest paths Characteristic path length Avg. Number of neighbors Number of nodes 78.302 0.192 1 9 1 27967532 (98%) 3.530

41.588

5317 78.169 0.007

1 4 3 282651172 (100%) 2.738

77.877

5317 77.707 0.333

1 13 1 984332 (3%) 2.629

77.707

5317 Network density Isolated nodes Number of self-loops Multi-edge node pairs 0.007 0 355 43104 0.007 0 0 776 0.007 0 0 9.686 Tabella 2. Statistiche incrociate delle 3 reti messe a confronto su Ctyoscape Dalla Tabella 2 emerge che le tre reti hanno la stesso numero di nodi, simili valori di Average Degree, un’unica componente connessa e valori di densità identici.

                                                                                                               

5  R  è  un  linguaggio  di  programmazione  e  un  ambiente  di  sviluppo  specifico  per  l'analisi  statistica  dei  dati   6  http://igraph.org/r/doc/sample_pa.html  

6  

2.1 Degree distribution

Figura 5. Degree distribution della rete reale La Degree distribution della rete reale segue una

power low

, caratteristica tipica delle reti

scale free

. Questa distribuzione si discosta significativamente da quella della rete casuale. Come si osserva in Figura 5, nella testa e nella coda del grafico si nota una distribuzione variegata: occorrenze alte con grado minimo, occorrenze basse con grado massimo (hub). L’area più densa di nodi si trova quando si incontrano occorrenze basse e grado compreso tra 1 e 500. Osservando in dettaglio i dati della rete reale notiamo che il 79,48% dei nodi ha grado (hub) ha grado 2014 ≤ 𝑘 ≤ 5036 ≤ Figura 2 le marcate differenze su scala di colore e dimensione per ciascun nodo. 25 . Ciò denota una distribuzione di grado estremamente disomogenea e non lineare dal momento che il 7% dei nodi . Possiamo notare questa distribuzione non omogenea osservando in

 

Figura 6. Degree distribution della rete casuale Figura 7. Degree distribution della rete ba

7  

La Degree distribution della rete casuale in Figura 6 presenta tratti tipici della distribuzione di

Poisson

. Questa distribuzione rispetta una delle più importanti proprietà dei random network, secondo cui la maggior parte dei gradi dei nodi si trova in stretta vicinanza di rete casuale si nota che il 99% dei nodi ha grado 47 ≤ 𝑘 ≤ 100 < 𝑘 > 7 . Tutti i nodi hanno un numero di link comparabile ed è per questo motivo che mancano i valori anomali, ad esempio quei nodi con un grado nettamente più elevato (hub). Osservando in dettaglio i valori della ; l’1% della rete è caratterizzata da nodi con il numero di link più elevato di grado 100 ≤ 𝑘 ≤ 110 . In questo caso 𝑘 cresce linearmente all’aumentare del numero dei link e ciascun nodo al variare di 𝑘 ha un grado molto simile. Ciò denota una situazione ben più distribuita e un ordine di magnitudine inferiore fra i gradi rispetto alla rete reale. Osservando le minime variazioni di grado su scala di colore e dimensione per ciascun nodo in Figura 3 ci accorgiamo che la differenza di grado tra i nodi è minima. La Degree distribution della rete ba in Figura 7 presenta tratti tipici della power low. Ciò che differenzia la rete ba dalla rete reale è la crescita di grado che favorisce i nodi che sono stati aggiunti prima. Infatti osservando il grafico si nota che le occorrenze dei nodi con grado estremamente basso sono di gran lunga superiori a quelle analizzate nella rete reale. Osservando in dettaglio i valori della rete ba si nota che il 98% dei nodi ha grado 39 ≤ 𝑘 ≤ 303 . Meno dell’ 1% ha grado 2000 ≤ 𝑘 ≤ 3222 . In questo caso 𝑘 presenta una crescita molto simile a quella analizzata nella rete reale: pochi nodi con grado estremamente elevato e molti nodi con grado relativamente basso.

2.2 Shortest path length distribution

Figura 8. Shortest path length distribution della rete reale La distribuzione dei cammini minimi nella rete reale viene raffigurata in figura 8. In essa si nota che la maggior parte dei cammini minimi hanno un valore compreso tra 3 e 4, mentre si possono osservare concentrazioni più basse per i percorsi di lunghezza 2,5,6.

                                                                                                                 

7  Per   < 𝑘 >  si  intende  il  grado  medio  

8  

 

Figura 9. Shortest Path Length D. della rete casuale Figura 10. Shortest Path Length D. della rete ba Il grafico in Figura 9 mostra la distribuzione dei cammini minimi per la rete casuale. Le concentrazioni più elevate dei percorsi minimi presentano il massimo picco alla lunghezza 3 mentre si possono osservare concentrazioni più basse per lunghezza 2. La lunghezza 1 assume un valore trascurabile. Nella distribuzione dei cammini minimi i valori della rete reale e della rete casuale sono simili: in entrambi i casi si riscontra il fenomeno dello

small-world

. Ciò dimostra come il modello

Erd ő s–Rényi

sia adatto a descrivere le proprietà dello small-word anche per le reti reali. Il grafico in Figura 10 mostra la distribuzione dei cammini minimi per la rete ba. I cammini risultano maggiormente distribuiti e i percorsi minimi con frequenza più alta si registrano per valori compresi tra 1 e 3, con il picco per la lunghezza 2. A partire dalla lunghezza 4 vi è una decrescita fino ai valori minimi di lunghezza 8. Questo vuol dire che quella del ba è una realtà compatta, che riflette il fenomeno dell’

ultra small world.

preferential attachment no.

Il grafo generato con il modello random restituisce una valida predizione della distribuzione dei cammini minimi di un real network mentre il modello del

9  

2.3 Clustering coefficient distribution

Confrontando la distribuzione dei valori di Clustering Coefficient si notano delle differenze significative tra le tre reti prese in esame. Figura 11. Clustering coefficient distribution della rete reale Il Clustering Coefficient medio della rete reale ha un valore di 0.224 e la sua distribuzione viene rappresentata in Figura 11. La curva della distribuzione è calante, indice del fatto che vi sono tanti nodi con un Clustering Coefficient basso: la maggior parte dei nodi è sparsa. Nel grafico si notano anche pochi nodi con un Clustering Coefficient elevato, il che vuol dire che in esso sono presenti delle sotto reti molto connesse. In questo caso questi pochi nodi contribuiscono a un innalzamento della curva di distribuzione per 0 .

45 ≤   𝐶 8   ≤ 0 .

90 in corrispondenza di 100 nodi vicini. Figura 12. Avg clustering coeff. d. della rete casuale Figura 13. Avg clustering coeff. d. della rete ba

                                                                                                                 

8

 

Per   𝐶  si  intende  il  Clustering  Coefficient  di  un  nodo  

10  

La distribuzione del Clustering Coefficient della rete casuale viene rappresentata in Figura 12; l’average clustering coefficient di tale rete è 0.007. L’andamento della distribuzione del coefficiente di clustering risulta costante e abbastanza regolare: all'aumentare del numero dei nodi il Clustering Coefficient rimane pressoché identico. Il modello di

Erd ő s–Rényi

fallisce quindi nel darci una predizione esatta della distribuzione del Clustering Coefficient nei real network. Il Clustering Coefficient medio della rete ba ha un valore di 0.333 e la sua distribuzione viene rappresentata in Figura 13. Come valore risulta nettamente più alto rispetto alle due reti precedentemente analizzate. La distribuzione del Clustering Coefficient decresce proporzionalmente all’aumentare dei nodi vicini e si stabilizza su valori bassi formando una long tail. La curva di distribuzione segue approssimativamente una power low. Le distanze nel network sono più piccole rispetto a quelle osservate nella rete casuale nonostante esse abbiano lo stesso numero di nodi. In questo contesto la frequenza di cluster nella rete basata sul

Barabási-Albert model

è maggiore rispetto alla rete casuale. notano delle situazioni interessanti.

2.4 Eigenvector centrality

Confrontando i valori di Eigenvector centrality e osservando la topologia delle tre reti comparate si

Id nodo rete reale E.C. rete reale Id nodo rete casuale E.C. rete casuale Id nodo rete ba E.C. rete ba

Europa Lingua_latina Italia Impero_romano Francia 1.0 0.9231931019316291 0.8940244601240861 0.816301522917666 0.796557474045039 3531 5053 943 867 0.987711 0.945806 0.941923 0.92922 n0 n2 n1 n3 n5 1.0 0.961748 0.957147 0.944322 0.932677 Tabella 3. Ranking Eigenvector centrality primi 5 risultati per la rete reale, la rete casuale e la rete ba Se osserviamo la Tabella 3 notiamo che i valori massimi di Eigenvector centrality sono identici per tutte e tre le reti. Ciò che cambia è la distribuzione delle connessioni al nodo con valore di Eigenvector centrality più alto.

 

Figura 14. E.N. della rete reale Figura 15. E.N. della rete casuale Figura 16. E.N. della rete ba Usando il filtro Ego Network di Gephi per isolare il nodo otteniamo che il nodo con grado massimo ( id  =   Italia con 𝑘 id  =   = Europa con 5036 nella sottorete dei collegamenti che passano attraverso il nodo con id  =   𝑘 = 2676 della rete reale , evidenziato in colore blu) appare Europa. Nel caso della rete casuale il nodo con grado massimo ( id  =   4665 con 𝑘 = 110 , evidenziato in colore blu in Figura 3) non risulta presente nella sottorete dei collegamenti che passano attraverso il nodo con id  =   1116 con 𝑘 = 105 . Tale comportamento è giustificato dal fatto che i random network hanno archi distribuiti casualmente. Infine nella rete ba il nodo con Eigenvector centrality più elevato coincide

11  

con il nodo di grado massimo id  =   n0. Attraverso di esso passa il 57.44% degli archi dell’intera rete (118666 archi). In questo caso gli hub della rete ba risultano i nodi più connessi e influenti.

2.5 Betweenness centrality

Di seguito si analizzano e si confrontano i valori e le distribuzioni di Betweenness centrality delle tre reti. Osservandone la topologia si notano delle situazioni particolari.

 

Figura 17. Distribuzione della Betweenness centrality della rete reale La Betweenness centrality della rete reale in Figura 17 segue un andamento consueto per i real network. La maggior parte dei nodi ha una Betweenness centrality compresa tra 0 e 0.010, una minima parte composta da nodi sparsi ha una Betweenness centrality compresa tra 0.010 e 0.045. Il nodo con Betweenness centrality

Id nodo rete reale

Italia Stati_Uniti_d'A merica Germania Fisica Lingua_latina

B.C. rete reale

0.10049474 0.04220758 0.04192305 0.04169361 0.04163597

Degree

5036 2114 1808 1612 3010 massima è il nodo id   =   Italia con 𝑘 = 5036 , ovvero il nodo con grado massimo nella rete. Vi è quindi un divario netto tra il nodo con Betweenness centrality massima e il presenti anche nodi con grado inferiore rispetto alla media. Tabella 4. Ranking B.C. per la rete reale resto dei nodi. Per quanto riguarda il ranking dei 5 nodi con Betweenness centrality più elevata bisogna sottolineare che non c’è una stretta correlazione con il grado. Infatti ai primi posti sono

12  

 

Figura 18. Betweenness centrality della rete casuale Figura 19. Betweenness centrality della rete ba La Betweenness centrality della rete casuale in Figura 18 ha distribuzione uniforme, i nodi sono vicini fra loro e la curva segue quasi alla perfezione una power low. Il nodo con Betweenness centrality massima è quello con id  =   4665 con 𝑘 = 110 , ovvero il nodo con grado massimo nella rete. In questo caso i valori di Betweennes Centrality sono estremamente bassi, tali da far pensare che l’assenza di hub sia determinante per la definizione di questo ordine di grandezza di Betweenness centrality.

Id nodo rete casuale

4665 1855 1082 860 5000

B.C. rete casuale

6.549E-4 5.9772E-4 5.9005E-4 5.8746E-4 5.7623E-4

Degree

110 105 107 105 103 La Betweenness centrality della rete ba in Figura 19 segue una distribuzione diversa rispetto alla rete reale e alla rete casuale. La maggior parte dei nodi ha una Betweenness centrality compresa tra 0 e 0.015, mentre una parte consistente composta da nodi sparsi ha una Betweenness centrality compresa tra 0.010 e 0.040. In questo caso il nodo con Betweenness centrality massima corrisponde a un nodo con poco più di 200 nodi vicini. Nel grafico in Figura 19 si nota un agglomerato con un numero di nodi vicini molto Tabella 5. Ranking B.C per la rete casuale

Id nodo rete ba

n305 n239 n354 n162 n110 giustificata dalla presenza di pochi legami cruciali per il flusso della rete.

B.C. rete ba

5.8107E-4 3.9136E-4 3.5307E-4 3.4086E-4 3.2103E-4

Degree

187 206 119 341 704 Tabella 6. Ranking B.C. per la rete ba alto (tra 2800 e 3200) ma con Beetwenness Centrality estremamente bassa, compresa tra lo 0 e lo 0.005. Ciò significa che nonostante gli hub siano i nodi più connessi della rete, il numero di volte in cui questi nodi fungono da ponte lungo il cammino più breve è estremamente basso. Il grado dei nodi con Betweenness centrality più elevata appare piuttosto basso; tale tendenza può essere

Closeness centrality

Confrontando i valori di Closeness centrality per le tre reti comparate si nota un comportamento simile tra la distribuzione della rete reale e quella della rete ba, la distribuzione della rete casuale invece presenta un andamento differente.

13  

Figura 20. Closeness centrality della rete reale La Closeness centrality della rete reale in Figura 20 segue una distribuzione variegata: la maggioranza dei nodi compresi gli hub risulta posizionata tra un valore di Closeness centrality compreso tra lo 0.15 e 0.45. Sono presenti 54 nodi di grado inferiore a 150 con Closeness centrality pari a 0.00. Il valore di Closeness centrality massimo, completamente isolato dal resto degli altri nodi, è rappresentato dal nodo con attorno al nodo con id= Königsberg. id= Königsberg. Anche in questo caso tale tendenza può essere giustificata dalla presenza di pochi legami cruciali per il flusso della rete, i quali si sviluppano

 

Figura 21. Closeness centrality della rete casuale Figura 22. Closeness centrality della rete ba La Closeness centrality della rete casuale in Figura 21 ha un valore compreso tra lo 0.375 e lo 0.400. I nodi della rete casuale si presentano tutti compatti e vicini tra loro e non sono presenti nodi isolati. Tale disposizione è giustificata dalla grandezza ridotta del grado dei nodi e dalla distribuzione dei cammini minimi molto simile (di lunghezza 2 o 3). I nodi risultano equamente raggiungibili, data anche l'assenza di hub. La Closeness centrality della rete ba in Figura 22 segue una distribuzione eterogenea e a tratti simile a quella della rete reale. I nodi però sono distribuiti su un valore di Closeness centrality ampiamente

14  

 

superiore rispetto a quella della rete reale. Ciò significa che diversi nodi con Closeness centrality massima, tra cui la maggioranza degli hub, sono in grado di raggiungere più rapidamente il resto della rete. Tale tendenza è giustificata dalla concentrazione più elevata di valori bassi per i cammini minimi. L’unica eccezione è rappresentata dal nodo con grado massimo ( nodo passa il 57.44% degli archi dell’intera rete. id  =   n0 con con 𝑘 = 3222 ) che presenta un valore di Closeness centrality molto anomalo (pari a 0.00), dato che attraverso tale

Conclusioni

Nonostante le reti abbiano lo stesso numero di nodi, stessi valori di densità e valori simili di Average Degree, esse differiscono per molte tipologie di analisi. Il modello di di centralità. Il modello

Barabási–Albert

coefficiente di clustering del network reale.

Erd ő s–Rényi

fallisce nel darci una predizione corretta delle metriche di un real network per quanto riguarda la distribuzione del grado medio, la distribuzione dei cammini minimi e la distribuzione delle misure risulta valido nel darci una predizione corretta delle metriche di un real network per quanto riguarda la distribuzione del grado medio, ma non è ancora sufficiente a rappresentare al meglio la distribuzione dei cammini minimi e le misure di centralità. Entrambi i modelli teorici falliscono nel dare una predizione corretta della distribuzione di

15