node_redundancy#
- node_redundancy(G, nodes=None)[source]#
计算二分图
G
中节点的冗余系数。节点
v
的冗余系数是v
的邻居对中同时与其他节点相连的比例。在一模投影中,即使没有v
,这些节点也会相互连接。更正式地,对于任意顶点
v
,*v
的冗余系数* 定义为\[rc(v) = \frac{|\{\{u, w\} \subseteq N(v), \: \exists v' \neq v,\: (v',u) \in E\: \mathrm{and}\: (v',w) \in E\}|}{ \frac{|N(v)|(|N(v)|-1)}{2}},\]其中
N(v)
是G
中v
的邻居集合。- Parameters:
- G图
一个二分图
- nodes列表或可迭代对象(可选)
计算这些节点的冗余。默认是
G
中的所有节点。
- Returns:
- redundancy字典
一个以节点为键,节点冗余值为值的字典。
- Raises:
- NetworkXError
如果图中的任何节点(或指定的
nodes
中的节点)的(出)度小于二(这将导致除以零,根据冗余系数的定义)。
References
[1]Latapy, Matthieu, Clémence Magnien, and Nathalie Del Vecchio (2008). Basic notions for the analysis of large two-mode networks. Social Networks 30(1), 31–48.
Examples
计算图中每个节点的冗余系数:
>>> from networkx.algorithms import bipartite >>> G = nx.cycle_graph(4) >>> rc = bipartite.node_redundancy(G) >>> rc[0] 1.0
计算图的平均冗余:
>>> from networkx.algorithms import bipartite >>> G = nx.cycle_graph(4) >>> rc = bipartite.node_redundancy(G) >>> sum(rc.values()) / len(G) 1.0
计算一组节点的平均冗余:
>>> from networkx.algorithms import bipartite >>> G = nx.cycle_graph(4) >>> rc = bipartite.node_redundancy(G) >>> nodes = [0, 2] >>> sum(rc[n] for n in nodes) / len(nodes) 1.0
Additional backends implement this function
- parallelParallel backend for NetworkX algorithms
In the parallel implementation we divide the nodes into chunks and compute the node redundancy coefficients for all
node_chunk
in parallel.- Additional parameters:
- get_chunksstr, function (default = “chunks”)
A function that takes in an iterable of all the nodes as input and returns an iterable
node_chunks
. The default chunking is done by slicing theG.nodes
(ornodes
) inton
chunks, wheren
is the number of CPU cores.
[Source]