ComenzarEmpieza gratis

Distribución de centralidad de grado de los nodos de usuario

En este ejercicio y en el siguiente, vas a hacer un repaso final del material del curso anterior. Tu tarea es representar las distribuciones de centralidad de grado para cada partición de nodos en la versión bipartita de la red de colaboración de GitHub. Aquí lo harás para la partición 'users'. En el siguiente ejercicio, lo harás para la partición 'projects'.

La función que escribiste antes, get_nodes_from_partition(), ya está cargada. Por si necesitas recordarlo, la «centralidad de grado» es una medida de la importancia de un nodo, y la «distribución de centralidad de grado» es la lista de puntuaciones de centralidad de grado de todos los nodos del grafo. Hace unos ejercicios, cuando creaste el circos plot, calculamos las centralidades de grado por ti. ¡Ahora vas a practicar cómo hacerlo tú mismo!

Este ejercicio forma parte del curso

Análisis de redes intermedio en Python

Ver curso

Instrucciones del ejercicio

  • Importa matplotlib.pyplot como plt.
  • Usa tu función get_nodes_from_partition() del ejercicio anterior para obtener una lista llamada user_nodes correspondiente a los nodos 'users' de G.
  • Usando la función nx.degree_centrality(), calcula las centralidades de grado para cada nodo en G. Guarda el resultado como dcs.
  • Usa una list comprehension para calcular las centralidades de grado de cada nodo en user_nodes. Guarda el resultado como user_dcs.
    • Recuerda que dcs es un diccionario, en el que las claves son los nodos. Los nodos relevantes aquí están contenidos en user_nodes. ¿Cómo puedes usar esta información para obtener las centralidades de grado de los nodos de usuario? Usa n como tu variable iteradora.
  • Grafica un histograma de la distribución de grado de los usuarios usando plt.hist() y user_dcs.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Import matplotlib
____

# Get the 'users' nodes: user_nodes
user_nodes = ____

# Compute the degree centralities: dcs
dcs = ____

# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]

# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()
Editar y ejecutar código