MCPcopy Create free account
hub / github.com/easy-graph/Easy-Graph / _alias_setup

Function _alias_setup

easygraph/functions/graph_embedding/node2vec.py:230–255  ·  view source on GitHub ↗
(probs)

Source from the content-addressed store, hash-verified

228
229
230def _alias_setup(probs):
231 K = len(probs)
232 q = np.zeros(K)
233 J = np.zeros(K, dtype=int)
234
235 smaller = []
236 larger = []
237 for kk, prob in enumerate(probs):
238 q[kk] = K * prob
239 if q[kk] < 1.0:
240 smaller.append(kk)
241 else:
242 larger.append(kk)
243
244 while len(smaller) > 0 and len(larger) > 0:
245 small = smaller.pop()
246 large = larger.pop()
247
248 J[small] = large
249 q[large] = q[large] + q[small] - 1.0
250 if q[large] < 1.0:
251 smaller.append(large)
252 else:
253 larger.append(large)
254
255 return J, q
256
257
258def _node2vec_walk(G, walk_length, start_node, alias_nodes, alias_edges):

Callers 2

_get_alias_edgeFunction · 0.85

Calls 2

appendMethod · 0.80
popMethod · 0.80

Tested by

no test coverage detected