Analiză aprofundată – rețeaua Twitter
Acum vei face o analiză aprofundată a unei rețele Twitter, care te va ajuta să consolidezi ce ai învățat până acum. Mai întâi, vei identifica nodurile care pot transmite mesaje foarte eficient către mulți utilizatori aflați la un singur grad de separare.
NetworkX a fost deja importat ca nx.
Acest exercițiu face parte din cursul
Introducere în analiza rețelelor în Python
Instrucțiuni pentru exercițiu
- Scrie o funcție
find_nodes_with_highest_deg_cent(G)care returnează nodul (sau nodurile) cu cea mai mare centralitate după grad, urmând pașii de mai jos:- Calculează centralitatea după grad a lui
G. - Calculează centralitatea maximă după grad folosind funcția
max()aplicată pelist(deg_cent.values()). - Iterează peste dicționarul de centralitate după grad,
deg_cent.items(). - Dacă valoarea de centralitate
va nodului curentkeste egală cumax_dc, adaugă-l în mulțimea de noduri.
- Calculează centralitatea după grad a lui
- Folosește funcția creată pentru a identifica nodul (sau nodurile) cu cea mai mare centralitate după grad în
T. - Scrie o instrucțiune de tip
assertcare verifică că nodul (sau nodurile) este identificat corect. Aceasta a fost deja adăugată pentru tine, așa că apasă „Trimite răspunsul" pentru a vedea rezultatul!
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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())