def simulate_affiliation_dpe(): nrange = [400] #50*2**np.arange(3) drange = np.arange(1,5) embed = [Embed.dot_product_embed, Embed.dot_product_embed_unscaled, Embed.normalized_laplacian_embed, Embed.normalized_laplacian_embed_scaled] k = 2 p = .15 q = .1 for n in nrange: G = rg.affiliation_model(n, k, p, q) for d in drange: print n*k,d, for e in embed: Embed.cluster_vertices_kmeans(G, e, d, k, 'kmeans') print num_diffs_w_perms_graph(G, 'block', 'kmeans'), print plot.matshow(nx.adj_matrix(G)) plot.show()
def embedding_vs_dimension_performance(): n = 50 drange = np.arange(1,5) embed = [Embed.dot_product_embed, Embed.dot_product_embed_unscaled, Embed.normalized_laplacian_embed, Embed.normalized_laplacian_embed_scaled] nmc = 10 k = 2 p = .5 q = .1 all_params = list(IterGrid({'d':drange, 'embed':embed})) [param.update({'num_diff':np.zeros(nmc),'rand_idx':np.zeros(nmc)}) for param in all_params] for mc in np.arange(nmc): print mc G = rg.affiliation_model(n, k, p, q) truth = nx.get_node_attributes(G, 'block').values() for param in all_params: pred = Embed.cluster_vertices_kmeans(G, param['embed'], param['d'], 2) param['num_diff'][mc] = num_diff_w_perms(truth, pred) param['rand_idx'][mc] = metrics.adjusted_rand_score(truth, pred) return all_params