node2vec 调节不同节点的pq值

要对不同节点配置不同的pq值,需要sampling_strategy这个参数配合。通过dict_my_strategy传入一个字典即可。

import networkx as nx
import matplotlib.pyplot as plt
from node2vec import Node2Vec

G = nx.les_miserables_graph()

# nx.draw_networkx(G, with_labels=True)  # draw the graph, simplest way.
# nx.draw_spring(G, with_labels = True)
# plt.show()

dict_my_strategy = {'Myriel':{'p':10, 'q':0.1}}  # use this dict to regulate the p,q for specific nodes.

print('  walking...')
node2vec = Node2Vec(G, dimensions=16, walk_length=20, num_walks=10, p=1, q=1, workers=1, sampling_strategy=dict_my_strategy)
# Embed nodes
print('  training...')
model = node2vec.fit(window=4,  min_count=1)
Published At
comments powered by Disqus