2016-06-21 5 views
4

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

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

ответ

6

Что касается первого вопроса, то она довольно проста: 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") 

enter image description here

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

+0

Большое спасибо за то, что нашли время и ответили просто замечательно! Два подзапроса, если я могу: (i) так справедливо предположить, что блоки, вероятно, будут представлять компоненты сети? (ii) Что представляют собой квадраты с направленными краями на чертеже? –

+0

(i) Да, это типичная интерпретация этой модели. (ii) Квадраты представляют иерархическую организацию, то есть то, что происходит, когда мы моделируем сеть групп на первом уровне с использованием той же модели. Вы можете узнать больше об этом здесь: http://dx.doi.org/10.1103/PhysRevX.4.011047 –

+0

Еще раз спасибо, на самом деле я уже начал читать вашу статью о arXiv (прекрасная работа), но прогрессировал с ней очень медленно, так как Я новичок в этой области, поэтому мои наивные вопросы: ((Итак, если я правильно понимаю, сплайновые линии обозначают края реальной сети, не отображая их направления, более того, в визуализации иерархии первого уровня направление ребер между квадраты действительно не отображают направление исходных ребер сети, так как в приведенном здесь диграме я вижу зеленые сплайны, идущие на чирок, но нет такого пути с квадратами. –

 Смежные вопросы

  • Нет связанных вопросов^_^