• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Базовые методы сетевого анализа

2 мая в рамках семинара НУГ участники познакомились с базовыми методами построения и визуализации сетевых данных в Python. Семинар прошёл под руководством Антона Бойченко, рассказавшего о своём опыте работы с сетями.

Базовые методы сетевого анализа

На семинаре Антоном был рассмотрен анализ социальных сетей с такими видами центральности как degree, betweenness и closeness.

Сеть – это набор элементов (узлов) и связей между ними (рёбер). Ребро, построенное между двумя узлами, обозначает наличие заранее определённой связи между ними. Сети, говоря в целом, полезны тем, что позволяют увидеть изучаемые объекты в несколько другом свете и получить от них некоторые инсайты. Как сети, так и связи бывают двух видов: направленные и ненаправленные. Ненаправленная сеть, например, - это группа друзей в Facebook, так как обозначение "дружбы" равнозначно для всех пользователей в социальной сети. Сообщество же влюблённых друзей можно проанализировать как направленное; любовь не всегда бывает взаимна.

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

Но на основе каких данных строятся сети? Обычно это матрица двух видов: adjacency matrix или incidence matrix. В первом случае на вход для построения сети идёт симметричная матрица, в которой по столбцам и по строкам указываются подобные по индексу узлы, а на пересечении обозначаются значения рёбер.


Пример матрицы формальных отношений в сериале «Аббатство Даунтон»

Пример матрицы формальных отношений
в сериале «Аббатство Даунтон»

Мы знаем, что некая Виолет Грэннэм каким-то формальным образом связана с Леди Розмаунд Грэннэм. В матрице на ненаправленную связь нам указывают соразмерные значения A (1; 3) и B (3; 1). С помощью библиотеки NetworkX считываем данную матрицу и получаем объект типа сеть, который визуализируем с помощью метода draw. Однако, как мы видим ниже, получившаяся сеть оставляет желать лучшего: скученность и наезжание друг на друга имён вряд ли помогут с интерпретацией. А ведь визуальное отображение сети во многом – это её симпатичность и удобство для глаза любого смотрящего. На этот случай существует множество готовых алгоритмов визуализации графов для упорядочивания получившейся сети.



Применив алгоритм Kamada Kawai, мы можем сходу подметить выделяющиеся группы и центральных персонажей сериала. Но что, если нам хочется получить какие-нибудь численные данные сети? Здесь в анализ вступает мера центральности (degree centrality) – мера, с помощью которой определяется центральность того или иного узла. Как видно на получившемся графике, Роберт Грэнтхэм находится в относительном центре сети, он имеет большое количество связей с остальными персонажами. Это можно выразить в числовом виде: разделив количество имеющихся у него связей на общее количество связей, мы получим коэффициент 0.368, меру его центральности. Примерно 37 процентов всех формальных связей среди персонажей аббатства принадлежат Роберту.

 

Помимо меры центральности можно проанализировать сеть с помощью нагрузки узла (betweenness centrality). Предположим, что Анне нужно каким-то образом передать письмо Дэйзи (оба персонажа находятся справа внизу на графике). Каким образом она может это сделать? Она могла бы попросить Гвен, чтобы та передала его миссис Хагхес, а та, в свою очередь, Дэйзи. Или же выбрать более короткий путь и передать его миссис Хагхес, чтобы та отдала его. Иными словами, между каждыми двумя узлами сети существует некоторое количество путей (включая 0), среди которых есть самый короткий. Betweenness centralityэто коэффициент, который говорит о том, какое количество раз узел является посредником между всеми кратчайшими путями всех остальных узлов. Узлы с высоким коэффициентом betweenness centrality – это важные структурные элементы, которые потенциально соединяют её подструктуры, являются связующими звеньями. Если они пропадают, то пропадает связь между отдельными группами.

Таким образом, на проведённом Антоном семинаре были разобраны понятие сети и ее основные элементы и параметры (меры центральности), изучено построение сетей в Python и с помощью этого языка из практического примера выведен ряд параметров сети.

Подробнее с содержанием семинара можно ознакомиться в прикреплённом документе.

Бойченко_А_сетевой_анализ (PDF, 541 Кб)