print "Done!" # Create a list of random graph pairs print "Creating list of random graph pairs..." for _ in xrange(100): g = nx.watts_strogatz_graph(g_base_nodes, 5, 0.1) graphPair = graph_pair_class.GraphPair(g_base, g) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" # Create a list of PING graphs print "Creating PING graphs..." for _ in xrange(100): g1, g2 = ping.create(2, 10) graphPair = graph_pair_class.GraphPair(g1, g2) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" # Convert graphPairs to a Pandas dataframe data = [g.features + [g.is_isomorphic] for g in graphPairs] columns = ['feature_' + str(x) for x in range(len(feature_list))] + ['is_isomorphic'] data = pd.DataFrame(data, columns=columns) # Train model on random samples model = LogisticRegression()
print "Done!" # Create a list of random graph pairs print "Creating list of random graph pairs..." for _ in xrange(100): g = nx.watts_strogatz_graph(g_base_nodes, 5, 0.1) graphPair = graph_pair_class.GraphPair(g_base, g) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" # Create a list of PING graphs print "Creating PING graphs..." for _ in xrange(100): g1, g2 = ping.create(2,10) graphPair = graph_pair_class.GraphPair(g1,g2) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" '''Neural Network model''' X = np.array([g.features for g in graphPairs]) y = np.array([g.is_isomorphic for g in graphPairs]) shuffle = range(len(y)) random.shuffle(shuffle) X = X[shuffle] y = y[shuffle]
graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" # Create a list of random graph pairs print "Creating list of random graph pairs..." for _ in xrange(num_of_graphs): g = nx.watts_strogatz_graph(g_base_nodes, 5, 0.1) graphPair = graph_pair_class.GraphPair(g_base, g) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" # Create a list of PING graphs print "Creating PING graphs..." for _ in xrange(num_of_graphs): g1, g2 = ping.create(int(nodes/5),nodes) graphPair = graph_pair_class.GraphPair(g1,g2) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" print "Pickling graphs" filename = 'graphPairs_' + str(nodes) + '_nodes_' + str(len(graphPairs)) + '_pairs.bro' f = open(filename, 'wb') pickle.dump(graphPairs, f) f.close() print "Done!"
graphPairs += [graphPair] print "Done!" # Create a list of random graph pairs print "Creating list of random graph pairs..." for _ in xrange(num_of_graphs): g = nx.watts_strogatz_graph(g_base_nodes, 5, 0.1) graphPair = graph_pair_class.GraphPair(g_base, g) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" # Create a list of PING graphs print "Creating PING graphs..." for _ in xrange(num_of_graphs): g1, g2 = ping.create(int(nodes / 5), nodes) graphPair = graph_pair_class.GraphPair(g1, g2) for f in feature_list: graphPair.add_feature(f) graphPairs += [graphPair] print "Done!" print "Pickling graphs" filename = 'graphPairs_' + str(nodes) + '_nodes_' + str( len(graphPairs)) + '_pairs.bro' f = open(filename, 'wb') pickle.dump(graphPairs, f) f.close() print "Done!"