Понимание средней_степени_связи в сетиx? - PullRequest
0 голосов
/ 17 июня 2019

Мне трудно понять количество этого графика: networkx.algorithms.assortativity.average_degree_connectivity

enter image description here

average_neighbor_degree возвращает идентификатор узла и его среднее_neighbor_degree:

d - словарь, снабженный ключом для узла со средним значением степени соседей.

Тем не менее, я не могу понять, что такое average_degree_connectivity? Возвращает:

d - Словарь со степенью k со значением средней связности.

Например, для трех графиков average_degree_connectivity против average neighbors degree value. выглядят следующим образом. Что означает average neighbors degree value.? enter image description here

  1. Что обозначает average_degree_connectivity?
  2. Как average_neighbor_degree связано с average_degree_connectivity?

1 Ответ

1 голос
/ 17 июня 2019

Имеет смысл ответить на ваши вопросы наоборот:

  • Пусть v будет вершина с m соседями.average_neighbor_degree из v - это просто сумма степеней соседей, деленная на m.
  • Для average_degree_connectivity это важная часть определения:

    ... - средняя степень ближайшего соседа узлов со степенью k

    Таким образом, для всех различных степеней, которые встречаются в графе, это даетсреднее значение average_neighbor_degree всех узлов с одинаковой степенью.Это мера того, насколько связаны узлы с определенными степенями.

Это много средних, я надеюсь, что этот фрагмент разъясняет вопрос 2:

import networkx as nx
from collections import defaultdict

G = nx.karate_club_graph()
avg_neigh_degrees = nx.algorithms.assortativity.average_neighbor_degree(G)
deg_to_avg_neighbor_degrees = defaultdict(list)
for node, degree in nx.degree(G):
    deg_to_avg_neighbor_degrees[degree].append(avg_neigh_degrees[node])

# this is the same as nx.algorithms.assortativity.average_degree_connectivity(G)
avg_degree_connectivity = {degree: sum(vals)/len(vals) for degree, vals in
                           deg_to_avg_neighbor_degrees.items()}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...