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 y completa el código de muestra.
# 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())