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)Gv 的邻居集合。

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 the G.nodes (or nodes) into n chunks, where n is the number of CPU cores.

[Source]