Approfondimento - Rete di Twitter
Ora farai un approfondimento su una rete di Twitter, che ti aiuterà a consolidare quanto hai imparato finora. Per prima cosa, individuerai i nodi che possono diffondere messaggi in modo molto efficiente a molte persone a una distanza di un grado.
NetworkX è già stato importato per te come nx.
Questo esercizio fa parte del corso
Introduzione all'analisi delle reti in Python
Istruzioni dell'esercizio
- Scrivi una funzione
find_nodes_with_highest_deg_cent(G)che restituisca il/i nodo/i con la degree centrality più alta seguendo questi passaggi:- Calcola la degree centrality di
G. - Calcola la degree centrality massima usando la funzione
max()sulist(deg_cent.values()). - Itera sul dizionario della degree centrality,
deg_cent.items(). - Se il valore di degree centrality
vdel nodo correntekè uguale amax_dc, aggiungilo al set di nodi.
- Calcola la degree centrality di
- Usa la tua funzione per trovare il/i nodo/i con la degree centrality più alta in
T. - Scrivi un'asserzione che verifichi che il/i nodo/i sia/siano identificato/i correttamente. Questo è già stato fatto per te, quindi fai clic su "Invia risposta" per vedere il risultato!
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Define find_nodes_with_highest_deg_cent()
def find_nodes_with_highest_deg_cent(G):
# Compute the degree centrality of G: deg_cent
deg_cent = ____
# Compute the maximum degree centrality: max_dc
max_dc = ____
nodes = set()
# Iterate over the degree centrality dictionary
for k, v in ____:
# Check if the current value has the maximum degree centrality
if ____ == ____:
# Add the current node to the set of nodes
____
return nodes
# Find the node(s) that has the highest degree centrality in T: top_dc
top_dc = ____
print(top_dc)
# Write the assertion statement
for node in top_dc:
assert nx.degree_centrality(T)[node] == max(nx.degree_centrality(T).values())