Skip to content

Commit

Permalink
add ablation study and synthetic dataset generation
Browse files Browse the repository at this point in the history
  • Loading branch information
goodman1204 committed Apr 14, 2022
1 parent 59770f4 commit d805b9b
Show file tree
Hide file tree
Showing 19 changed files with 2,304 additions and 850 deletions.
2 changes: 1 addition & 1 deletion can.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ def training(args):
end_time = time.time()
print("total time spend:", end_time- start_time)

pre, mu_c=clustering_latent_space(z.cpu().detach().numpy(),tru)
pre, mu_c = clustering_latent_space(z.cpu().detach().numpy(),tru)
plot_tsne(args.dataset,args.model,epoch,z.cpu(),torch.tensor(mu_c),Y,pre)

print("label mapping using Hungarian algorithm ")
Expand Down
2 changes: 1 addition & 1 deletion evaluation.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def clustering_latent_space(emb, label, nb_clusters=None):
if nb_clusters is None:
nb_clusters = len(np.unique(label))
# K-Means Clustering
km = KMeans(n_clusters = nb_clusters,init='random')
km = KMeans(n_clusters = nb_clusters,max_iter=500)
clustering_pred = km.fit_predict(emb)
# Compute metrics
return clustering_pred, km.cluster_centers_
74 changes: 74 additions & 0 deletions generate_synthtic_graph.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import networkx as nx
import numpy as np
from networkx.generators import erdos_renyi_graph

attribute_size = 1000

def generate_graphs(num_nodes, density):

G = erdos_renyi_graph(num_nodes,density)

# features for each node

fea_matrix = np.random.choice(attribute_size,(num_nodes,10))


# labels
label = np.random.choice(6,num_nodes)


return G, fea_matrix, label

def save_graph(num_nodes,density,G,fea_matrix,label):

#save edges
wp = open('synthetic_{}_{}.edge'.format(num_nodes,density),'w')

wp.write("#Nodes {}\n".format(num_nodes))
wp.write("#Edges {}\n".format(len(G.edges)))

for e in G.edges:
wp.write("{}\t{}\n".format(e[0],e[1]))

wp.close()

#save node

wp = open('synthetic_{}_{}.node'.format(num_nodes,density),'w')

wp.write("#Nodes {}\n".format(num_nodes))
wp.write("#Attributes {}\n".format(attribute_size))

for n in range(num_nodes):
for attr in fea_matrix[n]:
wp.write("{}\t{}\n".format(n,attr))
wp.close()

#save label

wp = open('synthetic_{}_{}.label'.format(num_nodes,density),'w')

for n in label:
wp.write("{}\n".format(n))

wp.close()


if __name__=="__main__":
num_nodes = 1000
density = 0.1
G,fea_matrix,label = generate_graphs(num_nodes,density)
save_graph(num_nodes,density,G,fea_matrix,label)
print("Done")












Loading

0 comments on commit d805b9b

Please sign in to comment.