當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX stochastic_block_model用法及代碼示例


本文簡要介紹 networkx.generators.community.stochastic_block_model 的用法。

用法:

stochastic_block_model(sizes, p, nodelist=None, seed=None, directed=False, selfloops=False, sparse=True)

返回一個隨機塊模型圖。

該模型將節點劃分為任意大小的塊,並獨立地在節點對之間放置邊,其概率取決於塊。

參數

sizes整數列表

塊的大小

p浮點數列表列表

元素 (r,s) 給出從組 r 的節點到組 s 的節點的邊的密度。 p 必須匹配組的數量 (len(sizes) == len(p)),如果圖是無向的,它必須是對稱的。

nodelist列表,可選

區塊標簽是根據 nodelist 中的節點標識符分配的。如果 nodelist 為 None,則排序為範圍 [0,sum(sizes)-1]。

seed整數、random_state 或無(默認)

隨機數生成狀態的指示符。請參閱隨機性。

directed布爾可選,默認=假

是否創建有向圖。

selfloops布爾可選,默認=假

是否包含自循環。

sparse: boolean optional, default=True

使用稀疏啟發式加速生成器。

返回

gNetworkX 圖表或DiGraph

大小總和(大小)的隨機塊模型圖

拋出

NetworkXError

如果概率不在 [0,1] 中。如果概率矩陣不是方陣(有向情況)。如果概率矩陣不是對稱的(無向情況)。如果大小列表與節點列表或概率矩陣不匹配。如果節點列表包含重複項。

參考

1

Holland, P. W., Laskey, K. B., & Leinhardt, S., “Stochastic blockmodels: First steps”, Social networks, 5(2), 109-137, 1983.

例子

>>> sizes = [75, 75, 300]
>>> probs = [[0.25, 0.05, 0.02], [0.05, 0.35, 0.07], [0.02, 0.07, 0.40]]
>>> g = nx.stochastic_block_model(sizes, probs, seed=0)
>>> len(g)
450
>>> H = nx.quotient_graph(g, g.graph["partition"], relabel=True)
>>> for v in H.nodes(data=True):
...     print(round(v[1]["density"], 3))
...
0.245
0.348
0.405
>>> for v in H.edges(data=True):
...     print(round(1.0 * v[2]["weight"] / (sizes[v[0]] * sizes[v[1]]), 3))
...
0.051
0.022
0.07

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.generators.community.stochastic_block_model。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。