MCPcopy Index your code
hub / github.com/shenweichen/GraphEmbedding / _gen_sampling_table

Method _gen_sampling_table

ge/models/line.py:114–140  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

112 self.batch_it = self.batch_iter(self.node2idx)
113
114 def _gen_sampling_table(self):
115
116 # create sampling table for vertex
117 power = 0.75
118 numNodes = self.node_size
119 node_degree = np.zeros(numNodes) # out degree
120 node2idx = self.node2idx
121
122 for edge in self.graph.edges():
123 node_degree[node2idx[edge[0]]
124 ] += self.graph[edge[0]][edge[1]].get('weight', 1.0)
125
126 total_sum = sum([math.pow(node_degree[i], power)
127 for i in range(numNodes)])
128 norm_prob = [float(math.pow(node_degree[j], power)) /
129 total_sum for j in range(numNodes)]
130
131 self.node_accept, self.node_alias = create_alias_table(norm_prob)
132
133 # create sampling table for edge
134 numEdges = self.graph.number_of_edges()
135 total_sum = sum([self.graph[edge[0]][edge[1]].get('weight', 1.0)
136 for edge in self.graph.edges()])
137 norm_prob = [self.graph[edge[0]][edge[1]].get('weight', 1.0) *
138 numEdges / total_sum for edge in self.graph.edges()]
139
140 self.edge_accept, self.edge_alias = create_alias_table(norm_prob)
141
142 def batch_iter(self, node2idx):
143

Callers 1

__init__Method · 0.95

Calls 1

create_alias_tableFunction · 0.85

Tested by

no test coverage detected