Я ищу реализации алгоритмов обнаружения сообщества, таких как алгоритм Гирвана-Ньюмена (2002). Я посетил сайты нескольких исследователей в этой области (Ньюмен, Санто и т.д.), Но не смог найти никакого кода. Я предполагаю, что кто-то там опубликовал реализации этих алгоритмов (может быть, даже инструментарий?), Но я не могу найти его.
Существуют ли алгоритмы обнаружения сообщества на графиках?
Ответ 1
Алгоритмы обнаружения сообщества иногда являются частью библиотеки (например, JUNG для java) или инструментом (см. Gephi). Когда авторы публикуют новый метод, они иногда делают свой код доступным. Например, методы Louvain и Infomap.
Боковое замечание: алгоритм Гирвана-Ньюмена иногда используется, но в основном его заменяют более быстрые и точные методы. Для хорошего обзора темы я рекомендую Алгоритмы обнаружения сообщества: сравнительный анализ или более длинный Обнаружение сообщества на графиках (103 страницы).
Ответ 2
Вы должны посмотреть на библиотеку igraph:
- 7 алгоритмов обнаружения сообщества (в том числе упомянутых выше):
- Edgebetweenness (подход, основанный на основе централизованной ссылки),
- Walktrap (метод Pons-Latapy для случайных блужданий),
- Ведущие собственные векторы (спектральный подход Ньюмена),
- Быстрая жадность (Clauset и др. модульная оптимизация),
- Распространение меток (Raghavan et al.),
- Лувен (Blondel et al, оптимизация модульности),
- Spinglass (Рейхардт-Борнхолдт, оптимизация модульности),
- InfoMap (Rosvall-Bergstrom, основанный на сжатии подход).
- Другие связанные функции: модульность процесса, работа с иерархическими структурами и т.д.
- Доступно в R, C и Python
- Открытый исходный код
На мой взгляд, самый полный инструмент для обнаружения сообщества. Для получения дополнительной информации также проверьте: Каковы различия между алгоритмами обнаружения сообщества в igraph?
Ответ 3
Вы можете попробовать библиотеку SNAP (Stanford Network Analysis Platform, http://snap.stanford.edu/), которая включает модульность, Гирван-Ньюман и Клаузет-Ньюмен -Моровые алгоритмы. Он написан на С++ и находится под лицензией BSD. Поскольку ряд документов использовал его (см. http://snap.stanford.edu/papers.html), это должно быть хорошо.