Существует ли алгоритм обнаружения сообщества с низкой временной сложностью, такой как Louvain, но который наказывает СЛИШКОМ большое количество сообществ

#python #machine-learning #graph #networkx #modularity

#python #машинное обучение #График #networkx #модульность

Вопрос:

Я создаю массивную сеть, которая заполнена изолированными узлами, но также и довольно большими кластерами. Я использовал алгоритм Louvain для достижения наилучшего разделения — однако некоторые сообщества слишком велики. Мне было любопытно, какие алгоритмы (предпочтительно с фреймворками Python) имеют аналогичное время выполнения с Louvain, но наказывают слишком большое количество сообществ при достижении идеальной модульности?

Ответ №1:

Вы можете попытаться повторить алгоритм обнаружения сообщества (Louvain или другой), запустив его в слишком больших сообществах, которые вы сначала найдете. Это разделит их на более мелкие.

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

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