НачатьНачать бесплатно

Распределение центральности по степени для узлов пользователей

В этом упражнении и следующем вы выполните итоговое повторение материала из предыдущего курса. Ваша задача — построить распределения центральности по степени для каждого раздела узлов в двудольной версии сети сотрудничества GitHub. Здесь вы сделаете это для раздела 'users', а в следующем упражнении — для раздела 'projects'.

Функция get_nodes_from_partition(), которую вы написали ранее, уже загружена для вас. Напомним: «центральность по степени» — это мера важности узла, а «распределение центральности по степени» — это список значений центральности для всех узлов графа. Несколько упражнений назад, при построении circos-графика, мы вычисляли центральности за вас. Теперь вы попрактикуетесь делать это самостоятельно!

Это упражнение является частью курса

Средний уровень сетевого анализа на Python

Посмотреть курс

Инструкции к упражнению

  • Импортируйте matplotlib.pyplot как plt.
  • С помощью функции get_nodes_from_partition() из предыдущего упражнения получите список user_nodes, соответствующий узлам 'users' графа G.
  • С помощью функции nx.degree_centrality() вычислите центральности по степени для каждого узла в G. Сохраните результат в переменную dcs.
  • Используйте списковое включение, чтобы вычислить центральности по степени для каждого узла из user_nodes. Сохраните результат в переменную user_dcs.
    • Помните, что dcs — это словарь, в котором ключами являются узлы. Нужные узлы содержатся в user_nodes. Используйте эту информацию, чтобы получить центральности узлов пользователей. В качестве переменной итератора используйте n.
  • Постройте гистограмму распределения центральностей пользователей с помощью plt.hist() и user_dcs.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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()
Редактировать и запускать код