gpt4 book ai didi

python - 如何在python中重新启动随机游走

转载 作者:行者123 更新时间:2023-12-04 01:29:17 25 4
gpt4 key购买 nike

我使用 networkx 创建了以下图表.

import networkx as nx

G = nx.Graph()

G.add_nodes_from(["John", "Mary", "Jill", "Todd",
"iPhone5", "Kindle Fire", "Fitbit Flex Wireless", "Harry Potter", "Hobbit"])

G.add_edges_from([
("John", "iPhone5"),
("John", "Kindle Fire"),
("Mary", "iPhone5"),
("Mary", "Kindle Fire"),
("Mary", "Fitbit Flex Wireless"),
("Jill", "iPhone5"),
("Jill", "Kindle Fire"),
("Jill", "Fitbit Flex Wireless"),
("Todd", "Fitbit Flex Wireless"),
("Todd", "Harry Potter"),
("Todd", "Hobbit"),
])

现在,我要执行 random walk with restarts识别与 John 最相似的用户.我在 networkx 中搜索了文档我在 networkx 中找不到它的实现.

请让我知道是否有 random walk with restarts 的 python 库/代码去做这个。

如果需要,我很乐意提供更多详细信息。

编辑

如果我现有的网络按如下方式加权,我是否仍会计算重新启动的随机游走,如下所示: nx.pagerank_numpy(G, personalization={"John": 1}) ?
import networkx as nx

G = nx.Graph()

G.add_nodes_from(["John", "Mary", "Jill", "Todd",
"iPhone5", "Kindle Fire", "Fitbit Flex Wireless", "Harry Potter", "Hobbit"])

G.add_weighted_edges_from([
("John", "iPhone5", 0.1),
("John", "Kindle Fire", 0.2),
("Mary", "iPhone5", 0.3),
("Mary", "Kindle Fire", 0.4),
("Mary", "Fitbit Flex Wireless", 0.5),
("Jill", "iPhone5", 0.9),
("Jill", "Kindle Fire", 0.1),
("Jill", "Fitbit Flex Wireless", 0.1),
("Todd", "Fitbit Flex Wireless", 0.1),
("Todd", "Harry Potter", 0.1),
("Todd", "Hobbit", 0.1),
])

最佳答案

个性化 PageRank— implemented in networkx ——本质上是一个随机游走,如果个性化向量的起始节点为 1,其他地方为 0。

以下代码

nx.pagerank_numpy(G, personalization={"John": 1})

然后产生一个字典,每个节点都有可能结束
{'John': 0.24958826532666656,
'Mary': 0.1229452674202248,
'Jill': 0.12294526742022475,
'Todd': 0.04506174037342413,
'iPhone5': 0.17574399763529416,
'Kindle Fire': 0.17574399763529416,
'Fitbit Flex Wireless': 0.08243647797726429,
'Harry Potter': 0.012767493105803515,
'Hobbit': 0.012767493105803515}

从这个字典中,您可以选择概率最高的用户。

对于 加权图 , pagerank_numpy方法有一个 weight您可以在其中设置要使用的边数据键的参数。使用 add_weighted_edges_from 添加边时这个数据键叫做 "weight"所以代码变成如下。

nx.pagerank_numpy(G, personalization={"John": 1}, weight="weight")

关于python - 如何在python中重新启动随机游走,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61337245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com