Vicinanza e Comunità Analisi delle Reti Sociali con Python e NetworkX – Parte 3.

Social Network Analysis with Python and NetworkX - Part 3 Proximity and Community.

Scopri le comunità e la centralità di vicinanza nell’analisi delle reti sociali con Python e NetworkX

Nella Parte 2, abbiamo ampliato la nostra comprensione dell’analisi delle reti sociali graficizzando le relazioni tra i membri delle band Smashing Pumpkins e Zwan. Successivamente, abbiamo esaminato metriche come la centralità di grado e la centralità di intermediazione per investigare le relazioni tra i membri delle diverse band. Allo stesso tempo, abbiamo discusso come la conoscenza del dominio aiuta a informare la nostra comprensione dei risultati.

Nella Parte 3, copriremo le basi della centralità di vicinanza e come viene calcolata. Successivamente, dimostreremo come calcolare la centralità di vicinanza con NetworkX utilizzando la rete di Billy Corgan come esempio.

Get the code to generate this graph on my GitHub . ⭐️ for easy reference.

Prima di iniziare…

  1. Hai conoscenze di base di Python? In caso contrario, inizia qui.
  2. Sei familiare con i concetti di base nell’analisi delle reti sociali, come nodi e bordi? In caso contrario, inizia qui.
  3. Ti senti a tuo agio con la centralità di grado e la centralità di intermediazione? In caso contrario, inizia qui.

Centralità di vicinanza e comunità

Centralità di vicinanza

La centralità di vicinanza è una misura nell’analisi delle reti sociali che quantifica quanto un nodo sia vicino a tutti gli altri nodi in una rete in termini della distanza più breve.

La centralità di vicinanza si concentra sull’efficienza del flusso di informazioni o risorse all’interno di una rete. L’idea è che i nodi con una maggiore centralità di vicinanza siano in grado di raggiungere altri nodi più rapidamente ed efficientemente, poiché hanno distanze medie più brevi rispetto al resto della rete.

La centralità di vicinanza di un nodo viene calcolata come il reciproco della somma delle distanze più brevi (SPD) da quel nodo a tutti gli altri nodi nella rete.

Centralità di vicinanza = 1 / (Somma delle SPD dal nodo a tutti gli altri nodi)

Valori più alti indicano una maggiore centralità ed efficienza nel flusso di informazioni all’interno della rete.

Calcolare la centralità di vicinanza

Scomponiamolo, utilizzando una rete semplice con otto nodi.

  1. Calcola le distanze più brevi (SPD) dal nodo A a tutti gli altri nodi. Per il nostro esempio, utilizzeremo distanze di esempio semplici. In pratica, questo sarebbe fatto con un algoritmo di percorso più breve come la ricerca in ampiezza o l’algoritmo di Dijkstra.

2. Calcola la somma delle distanze più brevi dal nodo A a tutti gli altri nodi.

3. Applica la formula della centralità di vicinanza.

Vicinanza e comunità

Possiamo pensare alle comunità come gruppi di nodi che sono più densamente connessi all’interno di sé rispetto alle connessioni con i nodi al di fuori del gruppo. Le comunità catturano l’idea di sottogruppi o moduli coesi all’interno di una rete, dove i nodi all’interno della stessa comunità hanno connessioni più forti tra loro. Le comunità sono caratterizzate dalla presenza di connessioni intra-comunitarie dense e connessioni inter-comunitarie relativamente più sparse.

Get the code to generate this graph on my GitHub . ⭐️ for easy reference!

Quando consideriamo i membri delle band Smashing Pumpkins e Zwan, è facile immaginare come le band siano connesse tra loro dai membri che condividono. Questo dimostra la connettività intra-gruppo tra i membri all’interno di ciascuna band e la connettività inter-gruppo tra entrambe le band.

Mentre la centralità di vicinanza misura l’importanza individuale dei nodi e l’efficienza del flusso di informazioni, le comunità catturano i sottogruppi coesi con connessioni dense. Insieme, contribuiscono a comprendere la dinamica del flusso di informazioni e l’organizzazione della rete.

Discutiamo alcune modalità in cui possiamo utilizzare la centralità di vicinanza e la comunità per interpretare la dinamica della rete.

  1. Centralità di vicinanza all’interno delle comunità

I nodi che appartengono alla stessa comunità hanno spesso valori di centralità di vicinanza più elevati all’interno della comunità. Ciò indica che i nodi all’interno di una comunità sono strettamente connessi e possono raggiungersi rapidamente in termini di distanze del percorso più breve. Una maggiore centralità di vicinanza all’interno delle comunità riflette l’efficienza del flusso di informazioni e della comunicazione all’interno dei sottogruppi.

Ottieni il codice per generare questo grafico sul mio GitHub. ⭐️ per un facile riferimento!

2. Collegamento di comunità con la centralità di vicinanza

I nodi che collegano diverse comunità o agiscono come ponti tra le comunità possono avere una centralità di vicinanza più elevata rispetto ai nodi all’interno delle singole comunità. Questi nodi svolgono un ruolo cruciale nel collegare le comunità separate, facilitando la comunicazione e il flusso di informazioni tra di esse.

Ottieni il codice per generare questo grafico sul mio GitHub. ⭐️ per un facile riferimento!

3. Analisi a livello di comunità utilizzando la centralità di vicinanza

La centralità di vicinanza può essere utilizzata anche a livello di comunità per analizzare l’importanza delle comunità all’interno della rete. Aggregando i valori di centralità di vicinanza dei nodi all’interno di una comunità, è possibile valutare l’efficienza complessiva del flusso di informazioni all’interno della comunità. Le comunità con una centralità di vicinanza media più elevata possono essere considerate più centrali e influenti in termini di capacità di accedere e diffondere informazioni all’interno della rete.

Ottieni il codice per generare questo grafico sul mio GitHub. ⭐️ per un facile riferimento!

La centralità di vicinanza misura l’importanza individuale dei nodi e l’efficienza del flusso di informazioni, mentre le comunità catturano i sottogruppi coesi con connessioni dense. Insieme, contribuiscono a comprendere la dinamica del flusso di informazioni e l’organizzazione della rete.

Quando si considera la sfera di influenza di Billy Corgan, la centralità di vicinanza può fornire un’idea di come i membri degli Smashing Pumpkins e dei Zwan influenzino direttamente e indirettamente gli altri musicisti nella rete di Billy Corgan. Possiamo usare il concetto di comunità per descrivere ogni band, ma possiamo anche usarlo per descrivere l’aggregato di entrambe le band. In realtà, la comunità di musicisti rock alternativi degli anni ’90 è vasta, e quando aggiungiamo più band alla rete, emergeranno più comunità.

Billy Corgan circa 1991 — Di Barb Vest, CC BY-SA 4.0

Centralità di Vicinanza in NetworkX con Python

  1. Come abbiamo fatto nella Parte 2, creeremo una funzione che genererà tutte le combinazioni dei membri della band per ogni band.

2. Successivamente, definiamo ogni band e applichiamo la funzione per generare la lista di tuple. Quindi, combiniamo le liste e utilizziamo una comprensione di lista per rimuovere eventuali doppioni.

3. Ora possiamo disegnare il grafico.

Dovrebbe avere un aspetto simile a questo:

4. Infine, calcoliamo la centralità di vicinanza e analizziamo i valori.

L’output dovrebbe apparire così:

Quindi, cosa possiamo dire sui valori?

  • Billy Corgan e Jimmy Chamberlin hanno la centralità di vicinanza più alta di 1,00, indicando che sono i membri più centrali in termini di raggiungere gli altri membri rapidamente.
  • James Iha, Katie Cole, D’arcy Wretzky, Melissa Auf der Maur, Ginger Pooley, Mike Byrne e Nicole Fiorentino hanno lo stesso valore di centralità di vicinanza di 0,785714. Ciò suggerisce che questi membri sono strettamente collegati e possono raggiungersi rapidamente.
  • Paz Lenchantin, David Pajo e Matt Sweeney hanno un valore leggermente più basso di centralità di vicinanza di 0,611111. Ciò indica che potrebbero essere meno centrali nel raggiungere gli altri membri rispetto al gruppo precedente, ma sono comunque relativamente ben collegati all’interno della rete.

Dato che stiamo ancora operando con una rete relativamente semplice, questi risultati non rivelano nulla oltre a quanto abbiamo appreso quando abbiamo calcolato la centralità di grado e la centralità di intermediazione per la rete di Billy Corgan. Nella Parte 4, aggiungeremo complessità introducendo più band e musicisti nella rete. Inoltre, introdurremo alcune tecniche avanzate in Matplotlib per rendere i tuoi grafici NetworkX ancora più coinvolgenti!

Se vuoi il tutorial Python completamente annotato, visita il mio account GitHub !

👩🏻‍💻 Christine Egan | Nisoo | github | linkedin

Come membro di Nisoo, una parte della tua quota di iscrizione va ai writer che leggi e hai accesso completo a ogni storia…

Nisoo.com