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

Анализ сообществ редакторов

Теперь вы объедините знания об алгоритме BFS и концепции максимальных клик, чтобы визуализировать сеть с помощью Arc plot.

Наибольшая максимальная клика в сети совместной работы пользователей GitHub была назначена подграфу G_lmc. Обратите внимание, что в NetworkX версии 2.x и выше G.subgraph(nodelist) возвращает только неизменяемое представление исходного графа. Чтобы получить изменяемую версию, необходимо явно запросить .copy() графа.

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

Введение в анализ сетей на Python

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

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

  • Выйдите на 1 степень разделения от клики и добавьте этих пользователей в подграф. Внутри первого цикла for:
    • Добавьте узлы в G_lmc из соседей G, используя методы .add_nodes_from() и .neighbors().
    • С помощью метода .add_edges_from() добавьте рёбра в G_lmc между текущим узлом и всеми его соседями. Для этого создайте список кортежей с помощью функции zip(), где первый аргумент — [node]*len(list(G.neighbors(node))), а второй — соседи узла node.
  • Запишите оценку центральности по степени каждого узла в его метаданные.
    • Для этого во втором цикле for присвойте nx.degree_centrality(G_lmc)[n] значению G_lmc.nodes[n]['degree centrality'].
  • Визуализируйте эту сеть с помощью Arc plot, отсортировав узлы по центральности по степени (используйте именованный аргумент sort_by='degree centrality').

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

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

# Import necessary modules
from nxviz import arc
import matplotlib.pyplot as plt

# Identify the largest maximal clique: largest_max_clique
largest_max_clique = set(sorted(nx.find_cliques(G), key=lambda x: len(x))[-1])

# Create a subgraph from the largest_max_clique: G_lmc
G_lmc = G.subgraph(largest_max_clique).copy()

# Go out 1 degree of separation
for node in list(G_lmc.nodes()):
    G_lmc.add_nodes_from(____)
    G_lmc.add_edges_from(zip(____, ____))

# Record each node's degree centrality score
for n in G_lmc.nodes():
    ____ = ____

# Create the Arc plot: a
a = ____

# Draw the Arc plot to the screen
a
plt.show()
Редактировать и запускать код