Имеет ли место промежуточность для Твиттера, учитывает как подписчиков, так и подписчиков? - PullRequest
0 голосов
/ 02 сентября 2018

Я работаю над поиском центральности между группами пользователей в Твиттере.

Межцентричность рассматривается как доля узла, появляющегося в кратчайшем пути между 2 узлами

Я не совсем понимаю, означает ли ключевое слово "путь" или "ребра" подписчиков или подписчиков или подписчиков пользователя, за которым он следует. Я планирую использовать jgrapht, но мне не совсем понятна концепция.

Заранее спасибо

1 Ответ

0 голосов
/ 03 сентября 2018

Межцентричность измеряет долю кратчайших путей , которые проходят через узел. Поскольку значение кратчайшего пути немного отличается между направленными и неориентированными графами , вам следует сначала подумать о том, как вы хотите представить данные в виде графика.

Без дополнительного контекста для вашего конкретного случая использования более естественно представить график Twitter в виде направленного графика, где каждый пользователь представлен как узел, а ребра переходят от каждого пользователя ко всем пользователи, за которыми следует этот пользователь. Конечно, учитывая 2 узла u и v , можно иметь 2 направленных ребра ( u , v ) и () v , u ), если оба пользователя следуют друг за другом. Надеюсь, что это объясняет значение края.

При ссылке на термин "путь" в контексте вычисления центральности между значениями, это означает один кратчайший путь между двумя узлами в этом ориентированном графе.

Пример:

Допустим, у нас 4 пользователя Twitter, идентифицированных как 1, 2, 3 и 4. Скажем 1 следует 2 и 4, а 2 следует 3: enter image description here

Тогда, если мы используем networkx , мы можем вычислить центральность промежуточности следующим образом:

import networkx as nx
DG = nx.DiGraph()
DG.add_edges_from([(1, 2), (2, 3), (1, 4)])
print(nx.betweenness_centrality(DG))

И получите:

{1: 0.0, 2: 0.16666666666666666, 3: 0.0, 4: 0.0}

То есть все узлы, кроме узла 2, имеют нулевую центральность, а узел 2 имеет значение 0,16667. Это значение мы получаем, потому что у нас ровно один кратчайший путь, который проходит через узел 2 (от 1 до 3), N = 4 и (N-1)(N-2) = 6. Чтобы лучше понять, как работает nx.betweenness_centrality, посмотрите здесь в документации.

...