Gephi как пользоваться программой

Так уж случилось, что я оказался ассистентом у профессора в университете. Никогда не думал, что прийдётся сталкиваться с оценкой рисков и визуализацией данных, будучи, по призванию, криптографом. Курс называется «Информационные сети» и включает в себя: анализ случайных процессов, моделирование малых миров; компьютерные алгоритмы для оценки свойств сети; экспериментальные исследования крупных сетей, а также анализ рисков, которые трудно предсказать.

В виду того, что курс читается в основном для ИТ-шников, лектор сделал ставку на то, чтобы дать достаточно теории с минимумом математики и большим количеством практики. Для большинства вышеупомянутых задач подходит программа NetLogo. Она включает собственный язык программирования высокого уровня, который позволяет с лёгкостью моделировать различные случайные процессы. Для визуализации разнообразных данных была выбрана программа Gephi.

На основе опыта использования последней и была написана статья, в которой рассматривается получение входных данных для ПО с последующей их визуализацией.

Семинар ANR-Lab «Визуализация сетевых данных в Gephi»

Собственно постановка задачи была таковой: визуализация каких-либо реальных данных средствами Gephi.

Генерация данных

После некоторых размышлений решил представить взаимодействия авторов с сайта IACR . Кто работает в области защиты информации наверняка знают про него, для всех остальных — это сайт, где в открытом доступе представлены статьи по информационной безопасности.

Форматы файлов Gephi

Gephi понимает достаточно большое количество форматов файлов.

image

Как видно из рисунка, самый лучший вариант — использовать gexf. Как оказалось, это открытый формат и библиотеку с лёгкостью можно скачать с отсюда. На сайте пишется, что Libgexf в настоящее время работает только на Linux (проверено в Ubuntu 8.10 и 9.04). Не долго думая, решил скачать исходники и скомпилировать под Ubuntu 11.10 с интерфейсами для Python (так как остальную часть решил реализовывать на нём).

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

  • обязательно:
    1. id — номер вершины
    2. необязательно:
      1. label — пометка или обозначение вершины
      2. x — координата x на плоскости, где будет расположена вершина графа
      3. y — координата y на плоскости, где будет расположена вершина графа
      4. size — размер вершины
      • обязательные:
        1. source — id начальной вершины
        2. target — id конечной вершины
        3. необязательные:
          1. label — пометка или обозначение ребра
          2. weight — вес ребра

          Gephi создание графа

          Скрипт заполнения БД на Python
          • Загружать данные об авторах статьи
          • Разделить данные об авторах на отдельные ФИО
          • Заполнять БД в соответствии с предыдущим пунктом

          Приведу лишь некоторые комментарии. В качестве БД использовалась sqlite3, интерфейс поддержка которой присутствует в python. Таблицы и колонки созданы в соответствии с описанием в разделе «Форматы файлов». «httр://eprint.iacr.org/cgi-bin/cite.pl?entry=year/number» использовалась в качестве исходной ссылки, где year — год публикации, number — номер статьи.

          Изначально предполагалось, что нужно перебирать с 001 до последнего, который определяется по отсутствию слова «author». Однако, потом выяснилось, что не все номера статей присутствуют (например, нет 001 в 2004 году). Поэтому пришлось нагородить велосипед на проверку 3-х подряд не найденных авторов. Ещё одних подвох ждал при получении ФИО. Строки авторов могут иметь вид:
          «»
          «»
          «ша Попович>»
          «»
          «»

          Кто подскажет как быстро из строк получить ФИО, буду благодарен. На выходе должно быть [‘Елена Прекрасная’,’Тугарин Змей’,’Алёша Попович’] (без пробелов и запятых, т.е. просто имя и фамилия через пробел).

          Ну и напоследок, чтобы не мучить интернет, я решил сначала создать локальный дамп авторов, а потом его использовать в качестве входных данных. Для этого я использовал pickle, который позволяет делать дамп переменных в файл, а после, в случае необходимости, извлекать. Для этого я создал словарь (dictionary). В качестве ключей выступали года, а значения — массив строк с авторами. Таким образом, я могу создавать БД по интересующим меня годам, используя лишь локальный файл.

          Визуализация данных при помощи Gephi

          В качестве примера возьмем маленький граф: года с 1996 по 2003. Он состоит из 759 вершин и 437 рёбер. Эту информацию можно увидеть при импортировании графа:

          или в окне «Context».

          Дополнительно, при импортировании можно выбрать ориентацию графа: ориентированный, неориентированный или смешанный.

          Далее выберем окно «Ranking» для начального редактирования графа. В зависимости от степени, раскрасим все вершины в оттенки синего цвета и зададим размер самой вершины. Рекомендую задавать максимальный размер вершины, равный максимальной степени вершины или в 2 раза больше.

          В конечном итоге получилось вот это:

          Теперь, чтобы красиво всё представить, выберем окно «Layout». В этом окне представлены алгоритмы, которые можно использовать для упорядочивания графа.

          Далее приводятся скриншоты некоторых из них.

          Parallel Force Atlas

          Ещё вершины можно прикрепить к одной из осей, однако это выбирается в окне «Ranking» -> «Coordinates»

          На графе можно выбрать вывод поля «label». Например:

          Выводы

          Gephi является хоть и молодым, но очень мощным средством визуализации различных данных, который подойдет как новичку, так и опытному пользователю. Использование баз данных позволяет быстро и легко получить необходимые входные данные для визуализации.

          Источник: habr.com

          Визуализация на Gephi

          Knowledge Graph или Граф знаний — база знаний, которая построена на основе семантических связей. Один из инструментов визуализации KG является Gephi. Что такое Gephi и для чего он нужен, подробно рассказано в статье «Графовые методы анализа в gephi».

          1. Как изменить размер и цвет вершин и ребер?
          2. Как установить название вершин и ребер?
          3. Как отфильтровать данные?

          Начнем с описания данных для построения и анализа графа. Для загрузки в gephi нам необходимо два файла – nodes и edges. Файлы, которые я использую для построения в этой статье:

          Файл «nodes_st» содержит уникальные значения вершин и их «айдишники». Дополнительно значения из label я разбила на группы (проект, сотрудник, отдел, тема проекта) и записала в столбец «group» (это позволит в дальнейшем настроить цветовые схемы вершин).

          Файл «edges_st» содержит все возможные переходы из одной вершины в другую. В моем файле есть три поля source, target и name_edges. Обязательными являются только source и target, поле name_edges сформировано самостоятельно, чтобы можно было добавить подписи на ребрах.

          При загрузке данных не забываем выбирать тип графа (ориентированный, неориентированный и смешанный) и ставить отметку «Append to existing workspace», чтобы загрузка происходила в одну рабочую область.

          1 Размер и цветовая схема ребер и вершин. Размер и цветовая схема ребер и вершин

          Данные загружены, можно перейти к блоку «Укладка» (Layout). Выбираем укладку в соответствии с топологией, которую вы хотите выделить.

          К примеру, ForceAtlas, ForceAtlas2, Yifan Hu отлично подойдут, чтобы показать разбиение на классы/группы, можно настраивать силы отталкивания и притяжения вершин. С другими алгоритмами можно ознакомиться в Интернете.

          После «заливки» данных мы получили граф, разбитый на кластеры. В нашем случае вершины — сотрудники сгруппировались вокруг вершин-отделов. Укладка выбрана ForceAtlas, сила отталкивания- 1000.

          Скорректируем размеры вершин. Для этого в блоке Appearance (вкладка nodes) выбираем размер – Ranking. Из выпадающего списка – Degree, устанавливаем размеры вершин от наименее часто встречающей (min size) до самой популярной вершины (max size). В моем случае размер установлен от 10 до 50.

          Фрагмент полученного графа представлен ниже.

          Блок Appearance позволяет настроить цвет узлов и ребер. Рассмотрим на примере узлов (nodes). Развернув палитру, выбираем тип окрашивания:

          Unique – монохромное окрашивание.

          Partition – может быть более двух цветов, все зависит от количества групп/классов, на которые вы разбили вершины. Ranking – создает плавный цветовой переход от наименее часто встречающихся до популярных вершин.

          На рисунке ниже представлено окрашивание Partition по полю group (данное поле сформировано вручную)

          Теперь нам осталось подписать и отфильтровать данные. Переходим к пункту 2.

          2 Название вершин и ребер на графе

          Раскрываем панель, расположенную под графом

          Устанавливаем галки «Узел» и «Ребро», настраиваем шрифт и размер. Размер текста относительно вершин настраивается ползунком.

          Также эта панель позволяет менять цвет фона (вкладка global), убирать ребра и изменять их размер (вкладка Ребра).

          3 Фильтрация данных

          Рассмотри фильтрацию на примерах.

          Кейс 1. Нас интересуют все проекты с темой 48. Перетаскиваем Ego Network (из папки Топология) в окно ниже «Наборы фильтров. Устанавливаем значение «ID узла» равное «тема 48» и фильтруем. Если нам интересно посмотреть какие сотрудники участвовали в этих проектах, то увеличиваем глубину до 2.

          Кейс 2. Показать темы проектов, которыми занимались сотрудники отдела3 Для начала отфильтруем данные по отделу 3 и расширим глубину до 3, чтобы захватить названия тем (глубина 1 –сотрудники, глубина 2 – проекты, глубина 3 – тема проекта).

          Так как нас интересуют только темы проектов, оставим только нужные нам вершины. Добавляем в набор фильтров оператор AND и Атрибут group (сформирован из поля label) по значению. Указываем в параметрах атрибута «тема_проекта». Наш новый граф готов.

          Основные возможности инструмента Gephi рассмотрены, из серой «скучной» массы, мы получили читаемый граф для анализа с возможностью фильтрации и визуализации.

          Источник: newtechaudit.ru

          Рейтинг
          ( Пока оценок нет )
          Загрузка ...
          EFT-Soft.ru