码迷,mamicode.com
首页 > 编程语言 > 详细

COMMUNITY DETECTION_python-louvain

时间:2020-01-20 20:51:33      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:led   show   put   weight   UNC   double   fir   net   cti   

Python-louvain Package

pip install python-louvain

import community
#first compute the best partition partition
= community.best_partition(G)

#Drawing partition

Method 1: 

#drawing
size = float(len(set(partition.values())))
pos = nx.spring_layout(G)
count = 0.
for com in set(partition.values()) :
    count = count + 1.
    list_nodes = [nodes for nodes in partition.keys()
                                if partition[nodes] == com]
    nx.draw_networkx_nodes(G, pos, list_nodes, node_size = 20,
                                node_color = str(count / size))

nx.draw_networkx_edges(G, pos, alpha=0.5)
plt.show()

Method 2: 

pos = nx.spring_layout(G)
values = [partition.get(node) for node in G.nodes()]
nx.draw_networkx(G, pos, cmap=plt.get_cmap(magma), node_color=values, node_size=50, with_labels=False)

Supplementary knowledge:

1. what is the partition of graphs.

partition: dict; {key (nodes_id): values(community_id)}

2.  function : community.best_partition(G)

Returns
    -------
    partition : dictionnary
       The partition, with communities numbered from 0 to number of communities
def best_partition(graph,
                   partition=None,
                   weight=weight,
                   resolution=1.,
                   randomize=None,
                   random_state=None):
    """Compute the partition of the graph nodes which maximises the modularity
    (or try..) using the Louvain heuristices

    This is the partition of highest modularity, i.e. the highest partition
    of the dendrogram generated by the Louvain algorithm.

    Parameters
    ----------
    graph : networkx.Graph
       the networkx graph which is decomposed
    partition : dict, optional
       the algorithm will start using this partition of the nodes.
       It‘s a dictionary where keys are their nodes and values the communities
    weight : str, optional
        the key in graph to use as weight. Default to ‘weight‘
    resolution :  double, optional
        Will change the size of the communities, default to 1.
        represents the time described in
        "Laplacian Dynamics and Multiscale Modular Structure in Networks",
        R. Lambiotte, J.-C. Delvenne, M. Barahona
    randomize : boolean, optional
        Will randomize the node evaluation order and the community evaluation
        order to get different partitions at each call
    random_state : int, RandomState instance or None, optional (default=None)
        If int, random_state is the seed used by the random number generator;
        If RandomState instance, random_state is the random number generator;
        If None, the random number generator is the RandomState instance used
        by `np.random`.

    Returns
    -------
    partition : dictionnary
       The partition, with communities numbered from 0 to number of communities

 

COMMUNITY DETECTION_python-louvain

标签:led   show   put   weight   UNC   double   fir   net   cti   

原文地址:https://www.cnblogs.com/dulun/p/12219254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!