Jump to content

Алгоритм Лейдена

Алгоритм Лейдена — это алгоритм обнаружения сообществ, разработанный Траагом и др. [1] в Лейденском университете . Он был разработан как модификация Метод Лувена для решения проблем разобщенных сообществ.

Компоненты графа

[ редактировать ]

Прежде чем определить алгоритм Лейдена , будет полезно определить некоторые компоненты графа.

Вершины и ребра

[ редактировать ]

Граф состоит из вершин (узлов) и ребер . Каждое ребро соединено с двумя вершинами, и каждая вершина может быть соединена с нулем или более ребрами. Края обычно представляются прямыми линиями, а узлы представляются кругами или точками. В заданных обозначениях пусть быть множеством вершин, и быть набором ребер:

где — направленное ребро из вершины в вершину . Мы также можем записать это как упорядоченную пару:


Сообщество

[ редактировать ]

Сообщество — это уникальный набор узлов:

а объединение всех сообществ должно представлять собой общее множество вершин:

Раздел — это совокупность всех сообществ:


Качество

[ редактировать ]

Подобно модульности , функция качества используется для оценки того, насколько хорошо были распределены сообщества. Алгоритм Лейдена использует модель Постоянного Поттса (CPM): [2]

Алгоритм

[ редактировать ]
Алгоритм Лейдена начинается с одноэлементного разделения (a) . Алгоритм перемещает отдельные узлы из одного сообщества в другое, чтобы найти раздел (b) , который затем уточняется (c) . Агрегатная сеть (d) создается на основе уточненного раздела с использованием неуточненного раздела для создания начального раздела для совокупной сети. Например, красное сообщество в (b) разбивается на два подсообщества в (c) , которые после агрегирования становятся двумя отдельными узлами в (d) , оба принадлежащими одному и тому же сообществу. Затем алгоритм перемещает отдельные узлы в совокупной сети (e) . В этом случае уточнение не меняет разбиение (f) . Эти шаги повторяются до тех пор, пока дальнейшие улучшения не станут возможными.

Алгоритм Лейдена аналогичен алгоритму метода Лувена с некоторыми важными модификациями.

Шаг 1: Во-первых, каждый узел сети назначается своему сообществу.

Шаг 2. Далее мы решаем, в какие сообщества переместить узлы, и обновляем раздел. .

queue = V(G) # create a queue from the nodes

while queue != empty:
  node = queue.next() # get the next node
  delta_H = 0
  for C in communities: # compute the change in quality for each community
    if delta_H(node, C) > delta_H:
      delta_H = delta_H(node, C)
      community = C
  if delta_H > 0:
    move node to community
    outside_nodes = { node_i | (node, node_i) are edges and node_i is not in community } # find the nodes which are connected to the node but not in the community
    queue.add(outside_nodes not already in queue)

Шаг 3. Назначьте каждый узел графа своему сообществу в новом разделе под названием .

Шаг 4. Целью этого шага является разделение сообществ с плохими связями:

for C in communities of P:
  # find the nodes in the community which have lots of edges within the community
  well_connected_nodes = { node | node is in C, |E(node, C\node)| >= gamma ||node||(||C|| - ||node||) }
  for node in well_connected_nodes:
    if node is singleton under P_refined:
      well_connected_communities = { C_i | C_i is in P_refined, C_i is a subset of C, |E(C_i, C\C_i)| >= gamma*||C_i||(||C|| - ||C_i||)
      for C_i in well_connected_communities:
        compute probability P(C_i) # 0 if assignment of node to C_i decreases quality of P_refined, greater weights for greater quality increases
      assign node to C_i by sampling P(C_i) distribution

Шаг 5. Используйте уточненный раздел агрегировать график. Каждое сообщество в становится узлом в новом графе .

Пример : Предположим, что у нас есть:

Тогда наш новый набор узлов будет:

Шаг 6. Обновите раздел. используя агрегированный график. Мы не допускаем разделения сообществ , но сообщества можно разделить на несколько узлов из уточненного раздела :

Пример : Предположим, что это плохо связанное сообщество из раздела :

Затем предположим, что на этапе уточнения он был разделен на два сообщества: и :

Когда мы агрегируем граф, новые узлы будут:

но мы сохраним старый раздел:

Шаг 7. Повторяйте шаги 2–6, пока каждое сообщество не будет состоять только из одного узла.

  1. ^ Трааг, Винсент А; Уолтман, Людо; ван Эк, Нис Ян (26 марта 2019 г.). «От Лувена до Лейдена: гарантия хороших связей между сообществами» . Научные отчеты . 9 (1): 5233. arXiv : 1810.08473 . Бибкод : 2019НатСР...9.5233Т . дои : 10.1038/s41598-019-41695-z . ПМК   6435756 . ПМИД   30914743 .
  2. ^ Трааг, Винсент А; Ван Доорен, Пол; Нестеров, Юрий (29 июля 2011 г.). «Узкие возможности для обнаружения сообществ без ограничений по разрешению». Физический обзор E . 84 (1): 016114. arXiv : 1104.3083 . Бибкод : 2011PhRvE..84a6114T . дои : 10.1103/PhysRevE.84.016114 . ПМИД   21867264 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 81a3d2265a30ddf27f9d2d9113cdf52e__1715812860
URL1:https://arc.ask3.ru/arc/aa/81/2e/81a3d2265a30ddf27f9d2d9113cdf52e.html
Заголовок, (Title) документа по адресу, URL1:
Leiden algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)