generate_random_paths#

generate_random_paths(G, sample_size, path_length=5, index_map=None, weight='weight', seed=None)[source]#

随机生成 sample_size 条长度为 path_length 的路径。

参数:
GNetworkX 图

一个 NetworkX 图

sample_size整型

要生成的路径数量。这在 [1] 中是 R

path_length整型 (默认值 = 5)

随机生成的路径的最大长度。这在 [1] 中是 T。根据论文,建议 T >= 5

index_map字典, 可选

如果提供,这将填充一个反向索引,将节点映射到 paths 中生成的随机路径索引集合。

weight字符串或 None, 可选 (默认值=”weight”)

作为权重的边属性名称,该属性存储数值。如果为 None,则每条边的权重为 1。

seed整型, random_state, 或 None (默认值)

随机数生成状态的指示符。参阅 随机性

返回值:
paths列表生成器

生成器,生成 sample_size 条路径,每条路径长度为 path_length

参考文献

[1] (1,2)

Zhang, J., Tang, J., Ma, C., Tong, H., Jing, Y., & Li, J. Panther: Fast top-k similarity search on large networks. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (Vol. 2015-August, pp. 1445–1454). Association for Computing Machinery. https://doi.org/10.1145/2783258.2783267.

示例

请注意,返回值是路径列表

>>> G = nx.star_graph(3)
>>> random_path = nx.generate_random_paths(G, 2)

通过将字典传入 index_map,它将构建一个反向索引,将节点映射到包含该节点的路径。

>>> G = nx.star_graph(3)
>>> index_map = {}
>>> random_path = nx.generate_random_paths(G, 3, index_map=index_map)
>>> paths_containing_node_0 = [
...     random_path[path_idx] for path_idx in index_map.get(0, [])
... ]