Example #1
0
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()
Example #2
0
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