Итеративная модульность

Я запускал moduletiy edge_weight/randomized с разрешением 1 не менее 20 раз в одной и той же сети. Это та же самая сеть, которую я создал на основе следующего правила. Два узла связаны, если они имеют хотя бы один общий элемент. Каждый раз, когда я запускаю модульность, я получаю немного другое распределение узлов среди сообществ. Кроме того, у меня есть 9 или 10 сообществ, но они никогда не постоянны. Любые комментарии или помощь очень ценятся.


person Process1    schedule 01.12.2016    source источник


Ответы (2)


Я думаю, что ответ находится в рандомизирующей части алгоритма. Вы можете найти более подробную информацию здесь:

https://github.com/gephi/gephi/wiki/Modularity

https://sites.google.com/site/findcommunities/

http://lanl.arxiv.org/abs/0803.0476

person guillaume ERETEO    schedule 05.12.2016
comment
Спасибо. Ценить это. Будет ли правильно, если я прогоню модульность 100 раз в одной и той же сети и выберу согласованную сеть, основанную на отношениях, которые сохраняют по крайней мере определенный процент (скажем, 60%) или выше на протяжении 100 прогонов, и назову это своей окончательной модульностью. Я выбираю 60% на основе параметра топологии сети, такого как наивысший коэффициент кластеризации. Я строю модульность только с теми ребрами, которые были названы алгоритмом модульности 60% или выше на протяжении 100 испытаний. - person Process1; 07.12.2016

Я нашел решение своей проблемы, используя консенсусную кластеризацию. Вот бумага, которая описывает это. Один из способов получить оптимальные кластеры без необходимости решать их в многомерном пространстве с использованием спектральной кластеризации — многократно запускать алгоритм до тех пор, пока не будет достигнуто больше разбиений. Вот статья и полное объяснение деталей:

НАУЧНЫЕ ОТЧЕТЫ | 2 : 336 | DOI: 10.1038/srep00336 Согласованная кластеризация в сложных сетях Андреа Ланчичинетти и Санто Фортунато

Матрица консенсуса. Предположим, что мы хотим объединить nP разделов, найденных алгоритмом кластеризации в сети с n вершинами. Матрица консенсуса D представляет собой матрицу размера n x n, запись Dij которой указывает количество разделов, в которых вершины i и j сети были отнесены к одному и тому же кластеру, деленное на количество разделов nP. Матрица D обычно намного плотнее, чем матрица смежности A исходной сети, потому что в матрице консенсуса есть ребро между любыми двумя вершинами, которые хотя бы один раз встречались в одном и том же кластере. С другой стороны, веса велики только у тех вершин, которые наиболее часто группируются в кластеры, тогда как малые веса указывают на то, что вершины, вероятно, находятся на границе между разными (реальными) кластерами, поэтому их отнесение к одному кластеру маловероятно и, по существу, обусловлено к шуму. Мы хотим сохранить большие веса и отбросить меньшие, поэтому необходима процедура фильтрации. Среди прочего, в отсутствие фильтрации матрица консенсуса быстро превратилась бы в очень плотную матрицу, что сделало бы применение любого алгоритма кластеризации вычислительно затратным. Мы отбрасываем все элементы D ниже порога t. Подчеркнем, что могут быть некоторые зашумленные вершины, все ребра которых могут быть ниже порога, и они больше не будут связаны. Когда это происходит, мы просто соединяем их с их соседями с наибольшим весом, чтобы граф оставался связанным на протяжении всей процедуры.

Затем мы применяем тот же алгоритм кластеризации к D и создаем другой набор разделов, который затем используется для построения новой матрицы консенсуса D9, как описано выше. Процедура повторяется до тех пор, пока матрица консенсуса не превратится в блочно-диагональную матрицу Dfinal, веса которой равны 1 для вершин в одном блоке и 0 для вершин в разных блоках. Матрица Dfinal обеспечивает структуру сообщества исходной сети. В наших расчетах обычно достаточно одной итерации, чтобы получить стабильные результаты. Отметим, что для того, чтобы все время использовать один и тот же метод кластеризации, последний должен уметь обнаруживать кластеры во взвешенных сетях, поскольку матрица консенсуса является взвешенной. Это необходимое ограничение на выбор методов, для которых можно было бы использовать предложенную здесь процедуру. Однако это не является серьезным ограничением, так как большинство описанных в литературе алгоритмов кластеризации могут обрабатывать взвешенные сети или могут быть тривиально расширены для работы с ними.

person Process1    schedule 08.12.2016