MCPcopy
hub / github.com/shenweichen/GraphEmbedding / preprocess_transition_probs

Method preprocess_transition_probs

ge/walker.py:173–197  ·  view source on GitHub ↗

Preprocessing of transition probabilities for guiding the random walks.

(self)

Source from the content-addressed store, hash-verified

171 return create_alias_table(normalized_probs)
172
173 def preprocess_transition_probs(self):
174 """
175 Preprocessing of transition probabilities for guiding the random walks.
176 """
177 G = self.G
178 alias_nodes = {}
179 for node in G.nodes():
180 unnormalized_probs = [G[node][nbr].get('weight', 1.0)
181 for nbr in G.neighbors(node)]
182 norm_const = sum(unnormalized_probs)
183 normalized_probs = [
184 float(u_prob) / norm_const for u_prob in unnormalized_probs]
185 alias_nodes[node] = create_alias_table(normalized_probs)
186
187 if not self.use_rejection_sampling:
188 alias_edges = {}
189
190 for edge in G.edges():
191 alias_edges[edge] = self.get_alias_edge(edge[0], edge[1])
192 if not G.is_directed():
193 alias_edges[(edge[1], edge[0])] = self.get_alias_edge(edge[1], edge[0])
194 self.alias_edges = alias_edges
195
196 self.alias_nodes = alias_nodes
197 return
198
199
200class BiasedWalker:

Callers 1

__init__Method · 0.80

Calls 2

get_alias_edgeMethod · 0.95
create_alias_tableFunction · 0.85

Tested by

no test coverage detected