node2vec是否支持负边权重?

2024-10-03 17:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

node2vec是否为具有负权重的边提供支持?我有一个edgelist,它有几个边是负值,但奇怪的是,我在运行代码时遇到了一个错误。没有零边,不过,我查过了。你知道吗

编辑:被要求共享代码。我没有对原始回购做任何更改,所以我在这里粘贴抛出错误的确切行。你知道吗

unnormalized_probs = []
    for dst_nbr in sorted(G.neighbors(dst)):
        if dst_nbr == src:
            unnormalized_probs.append(G[dst][dst_nbr]['weight']/p)
        elif G.has_edge(dst_nbr, src):
            unnormalized_probs.append(G[dst][dst_nbr]['weight'])
        else:
            unnormalized_probs.append(G[dst][dst_nbr]['weight']/q)
    norm_const = sum(unnormalized_probs)
    normalized_probs =  [float(u_prob)/norm_const for u_prob in unnormalized_probs]

获取最后一行中的ZeroDivisionError。 我的edgelist作为输入,如下所示:

0 0 1
234 11 -2
12 0 -1

零值节点不是问题,以前我在正节点值上运行代码时,它们不是问题。你知道吗


Tags: 代码insrcnormfor错误dstweight
1条回答
网友
1楼 · 发布于 2024-10-03 17:18:51

我想出来了。将权重值(存储在非标准化概率中)相加,得到一个名为“norm\u const”的值,然后除以非标准化概率。所以,由于它们被添加,零发生的可能性就出现了,所以零除法误差。你知道吗

相关问题 更多 >