У меня есть следующий график, который я создал с помощью 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
.
Пожалуйста, дайте мне знать, если есть python библиотека / код для random walk with restarts
, чтобы сделать это.
Я с радостью предоставлю более подробную информацию, если это необходимо.
РЕДАКТИРОВАТЬ
Если моя существующая сеть будет иметь такой вес, как показано ниже, я все равно рассчитываю случайные обходы с перезапусками следующим образом: 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),
])