如何使用python重新启动实现随机游走

问题描述 投票:0回答:1

我具有使用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库/代码可以这样做。

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

python networkx igraph
1个回答
0
投票

个性化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}

从此词典中,您可以选择最高概率的用户。

© www.soinside.com 2019 - 2024. All rights reserved.