Основные вопросы о вложенной блокмодели в графическом инструменте

Вкратце, два-три основных вопроса о minimize_nested_blockmodel_dl в graph-tool library. Есть ли способ выяснить, какая вершина падает на какой блок? Другими словами, извлечь список из каждого блока, содержащий метки его вершин.

Иерархическая визуализация довольно трудно понять для любителей в теории сетей, например. представляют собой квадраты с направленными ребрами, которые вытягиваются, предназначенные для привлечения основного направления подстилающих краев между двумя рассматриваемыми блоками? Блоки хорошо показаны с использованием разных цветов, но на очень концептуальном уровне, какие типы шаблонов или свойства edge/vertex находятся за категорией категоризации вершин? Другими словами, когда две вершины находятся в одном блоке, что я могу сказать об их общих свойствах?

Ответ 1

Что касается вашего первого вопроса, это довольно просто: функция minimize_nested_blockmodel_dl() возвращает объект NestedBlockState:

 g = collection.data["football"]
 state = minimize_nested_blockmodel_dl(g)

вы можете запросить членство в группе узлов, проверив первый уровень иерархии:

 lstate = state.levels[0]

Это объект BlockState, из которого мы получаем членство в группе с помощью метода get_blocks():

 b = lstate.get_blocks()
 print(b[30])  # prints the group membership of node 30

Что касается вашего второго вопроса, модель стохастического блока предполагает, что узлы, принадлежащие к одной группе, имеют одинаковую вероятность подключения к остальной сети. Следовательно, узлы, которые классифицируются в одной и той же группе с помощью указанной выше функции, имеют аналогичные шаблоны связности. Например, если мы посмотрим на пригодность для футбольной сети:

state.draw(output="football.png")

введите описание изображения здесь

Мы видим, что узлы, принадлежащие к одной и той же группе, имеют тенденцию иметь больше связей с другими узлами той же группы - типичный пример структуры сообщества. Однако это лишь одна из многих возможностей, которые могут быть обнаружены стохастической блочной моделью. Другие топологические шаблоны включают организацию ядра-периферии, двуствольность и т.д.