如何用Python加速随机选择生成?随机游走生成器优化问询
Python + NumPy 实现随机游走生成器
我用Python和NumPy实现了一个随机游走生成器,给定邻接矩阵的情况下,可以从每个节点出发采样随机路径。为此我写了下面这个类,它接收图中每个节点的邻居节点列表,以及对应的转移概率作为输入:
import numpy as np class RandomChoice(object): def __init__(self, neighbors_choices, neighbors_prob, depth=50): C = len(neighbors_choices) self.depth = depth self.neighbors_choices = neighbors_choices self.neighbors_prob = neighbors_prob # 原代码未完成,这里补全变量赋值
类的核心参数说明
neighbors_choices:一个嵌套列表,每个子列表对应单个节点的所有邻居节点集合neighbors_prob:和neighbors_choices一一对应的嵌套概率列表,每个子列表的概率对应邻居节点的转移权重(需要保证每个子列表内的概率总和为1)depth:随机游走的最大步数,默认设置为50
后续可以给这个类添加路径生成的方法,比如写一个generate_single_walk(start_node)函数:每次基于当前节点的概率分布,用np.random.choice选取下一个节点,循环执行直到达到设定的depth,最终返回完整的游走路径。
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

