Análisis en profundidad: red de Twitter
Ahora vas a hacer un análisis en profundidad de una red de Twitter, que te ayudará a reforzar lo que has visto antes. Primero, vas a encontrar los nodos que pueden difundir mensajes de forma muy eficiente a muchas personas a un grado de separación.
NetworkX ya se ha importado como nx.
Este ejercicio forma parte del curso
Introducción al análisis de redes en Python
Instrucciones del ejercicio
- Escribe una función
find_nodes_with_highest_deg_cent(G)que devuelva el/los nodo(s) con la centralidad de grado más alta siguiendo estos pasos:- Calcula la centralidad de grado de
G. - Calcula la centralidad de grado máxima usando la función
max()sobrelist(deg_cent.values()). - Itera sobre el diccionario de centralidad de grado,
deg_cent.items(). - Si el valor de centralidad de grado
vdel nodo actualkes igual amax_dc, añádelo al conjunto de nodos.
- Calcula la centralidad de grado de
- Usa tu función para encontrar el/los nodo(s) con mayor centralidad de grado en
T. - Escribe una aserción que compruebe que el/los nodo(s) se identifica(n) correctamente. Esto ya está hecho por ti, así que pulsa "Enviar respuesta" para ver el resultado.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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())