non_randomness#

non_randomness(G, k=None, weight='weight')[source]#

计算图G的非随机性。

返回的第一个值nr是图中所有边的非随机性值的总和(当一条边的两个节点来自两个不同的社区时,该边的非随机性值趋向于较小)。

计算的第二个值nr_rd是一个相对度量,表示图G在概率方面与随机图的不同程度。当它接近0时,图G更可能由Erdos Renyi模型生成。

Parameters:
GNetworkX图

图必须是symmetric(对称)、connected(连通)且没有self-loops(自环)。

kint

G中的社区数量。 如果未设置k,函数将使用默认的社区检测算法来设置它。

weightstring或None, 可选 (默认=None)

边属性的名称,该属性持有作为权重的数值。如果为None,则每条边的权重为1,即图是二元的。

Returns:
非随机性(float, float) 元组

非随机性, 相对于Erdos Renyi随机图的相对非随机性。

Raises:
NetworkXException

如果输入图不连通。

NetworkXError

如果输入图包含自环或图没有边。

Notes

这计算了参考文献[1]中的公式(4.4)和(4.5)。

如果传递了权重字段,该算法将使用加权邻接矩阵的特征值来计算公式(4.4)和(4.5)。

References

[1]

Xiaowei Ying and Xintao Wu, On Randomness Measures for Social Networks, SIAM International Conference on Data Mining. 2009

Examples

>>> G = nx.karate_club_graph()
>>> nr, nr_rd = nx.non_randomness(G, 2)
>>> nr, nr_rd = nx.non_randomness(G, 2, "weight")