def graphlet_kernel(graphs, num_samples):
N = len(graphs)
Phi = np.zeros((N,2**15))
P = generate_permutation_matrix()
for i in range(len(graphs)):
n = graphs[i].number_of_nodes()
if n >= 6:
A = nx.to_numpy_matrix(graphs[i])
A = np.asarray(A, dtype=np.uint8)
for j in range(num_samples):
r = np.random.permutation(n)
window = A[np.ix_(r[:6],r[:6])]
Phi[i, graphlet_type(window)] += 1
Phi[i,:] /= num_samples
K = np.dot(Phi,np.dot(P,np.transpose(Phi)))
return K
评论列表
文章目录