Ejemplo n.º 1
0
def edge(graph):
    edge_attr = []
    edge_attr = pd.DataFrame(list(
        itertools.combinations(list(graph.nodes.keys()), r=2)),
                             columns=['source', 'target'])
    edge_attr['shortest_path_length'] = edge_attr.apply(
        lambda x: nx.shortest_path_length(graph, x[0], x[1])
        if nx.has_path(graph, x[0], x[1]) else 0,
        axis=1)
    edge_attr['efficiency'] = edge_attr.apply(
        lambda x: nx.efficiency(graph, x[0], x[1]), axis=1)
    edge_attr['jaccard_coefficient'] = edge_attr.apply(
        lambda x: link_pred_generator(nx.jaccard_coefficient)
        (graph, x[0], x[1]),
        axis=1)
    edge_attr['resource_allocation_index'] = edge_attr.apply(
        lambda x: link_pred_generator(nx.resource_allocation_index)
        (graph, x[0], x[1]),
        axis=1)
    edge_attr['adamic_adar_index'] = edge_attr.apply(
        lambda x: link_pred_generator(nx.adamic_adar_index)(graph, x[0], x[1]),
        axis=1)
    edge_attr['preferential_attachment'] = edge_attr.apply(
        lambda x: link_pred_generator(nx.preferential_attachment)
        (graph, x[0], x[1]),
        axis=1)
    return edge_attr
Ejemplo n.º 2
0
 def test_efficiency(self):
     assert_equal(nx.efficiency(self.G2, 0, 1), 1)
     assert_equal(nx.efficiency(self.G2, 0, 2), 1 / 2)
Ejemplo n.º 3
0
 def test_efficiency_disconnected_nodes(self):
     """
     When nodes are disconnected, efficiency is 0
     """
     assert_equal(nx.efficiency(self.G1, 1, 2), 0)
Ejemplo n.º 4
0
 def test_efficiency(self):
     assert_equal(nx.efficiency(self.G2, 0, 1), 1)
     assert_equal(nx.efficiency(self.G2, 0, 2), 1 / 2)
Ejemplo n.º 5
0
 def test_efficiency_disconnected_nodes(self):
     """
     When nodes are disconnected, efficiency is 0
     """
     assert_equal(nx.efficiency(self.G1, 1, 2), 0)
Ejemplo n.º 6
0
def test_efficiency():
    G = nx.cycle_graph(4)
    assert_equal(nx.efficiency(G, 0, 1), 1)
    assert_equal(nx.efficiency(G, 0, 2), 1 / 2)
Ejemplo n.º 7
0
def test_efficiency():
    G = nx.cycle_graph(4)
    assert_equal(nx.efficiency(G, 0, 1), 1)
    assert_equal(nx.efficiency(G, 0, 2), 1 / 2)
Ejemplo n.º 8
0
        if key == 'geometry':
            feature.SetGeometry(record[key])
        else:
            feature.SetField(key, record[key])
    dst_layer.CreateFeature(feature)

# degree centrality
DC = nx.degree_centrality(G)
nx.set_node_attributes(G, DC, 'centr')
nodes = nx.nodes(G)
d_eff = {}
for node1 in nodes:
    eff = []
    for node2 in nodes:
        if node1 != node2:
            e = nx.efficiency(G, node1, node2)
            eff.append(e)
    ave = float(sum(eff) / len(eff))
    d_eff[node1] = ave
nx.set_node_attributes(G, d_eff, 'Effic')
# nx.write_shp(G,r"D:\Projects\diploma\model\1993")

# local_edge_connectivity
le = {}
for n in nodes_g:
    if n in node_dict:
        l = []
        for k in gen:
            if k != n:
                ec = nx.edge_connectivity(G, k, n)
                l.append(ec)
Ejemplo n.º 9
0
def features_part2(info):
    """
    third set of features.
    """
    G = info['G']
    n = info['num_nodes']
    num_units = info['num_units']
    edges = info['edges']
    nedges = len(edges)

    H = G.to_undirected()

    res = dict()
    cc = nx.closeness_centrality(G)
    res['closeness_centrality'] = cc[n - 1]
    res['closeness_centrality_mean'] = np.mean(list(cc.values()))

    bc = nx.betweenness_centrality(G)
    res['betweenness_centrality_mean'] = np.mean(list(bc.values()))

    cfcc = nx.current_flow_closeness_centrality(H)
    res['current_flow_closeness_centrality_mean'] = np.mean(list(
        cfcc.values()))

    cfbc = nx.current_flow_betweenness_centrality(H)
    res['current_flow_betweenness_centrality_mean'] = np.mean(
        list(cfbc.values()))

    soc = nx.second_order_centrality(H)
    res['second_order_centrality_mean'] = np.mean(list(soc.values())) / n

    cbc = nx.communicability_betweenness_centrality(H)
    res['communicability_betweenness_centrality_mean'] = np.mean(
        list(cbc.values()))

    comm = nx.communicability(H)
    res['communicability'] = np.log(comm[0][n - 1])
    res['communicability_start_mean'] = np.log(np.mean(list(comm[0].values())))
    res['communicability_end_mean'] = np.log(
        np.mean(list(comm[n - 1].values())))

    res['radius'] = nx.radius(H)
    res['diameter'] = nx.diameter(H)
    res['local_efficiency'] = nx.local_efficiency(H)
    res['global_efficiency'] = nx.global_efficiency(H)
    res['efficiency'] = nx.efficiency(H, 0, n - 1)

    pgr = nx.pagerank_numpy(G)
    res['page_rank'] = pgr[n - 1]
    res['page_rank_mean'] = np.mean(list(pgr.values()))

    cnstr = nx.constraint(G)
    res['constraint_mean'] = np.mean(list(cnstr.values())[:-1])

    effsize = nx.effective_size(G)
    res['effective_size_mean'] = np.mean(list(effsize.values())[:-1])

    cv = np.array(list(nx.closeness_vitality(H).values()))
    cv[cv < 0] = 0
    res['closeness_vitality_mean'] = np.mean(cv) / n

    res['wiener_index'] = nx.wiener_index(H) / (n * (n - 1) / 2)

    A = nx.to_numpy_array(G)
    expA = expm(A)
    res['expA'] = np.log(expA[0, n - 1])
    res['expA_mean'] = np.log(np.mean(expA[np.triu_indices(n)]))

    return res
Ejemplo n.º 10
0
 def test_efficiency(self):
     assert nx.efficiency(self.G2, 0, 1) == 1
     assert nx.efficiency(self.G2, 0, 2) == 1 / 2
Ejemplo n.º 11
0
 def efficiency(uG, ni, nj, rand_node):
     a = nx.efficiency(uG, ni, nj)
     b = nx.efficiency(uG, ni, rand_node)
     return a, b