社区划分算法:标签传播算法的python实现过程(7行代码实现)

注意:黄色部分为个人感情抒发,可以不用在意。

1.标签传播算法的具体实现过程由python的一个类库networkx完成。

    由以下语句安装networkx

pip install networkx

2.建立一个典型的社交网络图:Zachary的空手道俱乐部图表

  在networkx内置了空手道俱乐部图

import networkx as nx
G=nx.karate_club_graph()

3.定义标签传播算法函数

输入:一个定义好的图G

输出:社区划分结果,划分结果用二维列表表示,如[[1,2,5],[8,7,9]],节点1,2,5代表一个社区,节点7,8,9代表另一个社区。

from networkx.algorithms import community
def label_propagation_community(G):
    communities_generator = list(community.label_propagation_communities(G))
    m = []
    for i in communities_generator:
        m.append(list(i))
    return m

3.打印划分结果:

g=label_propagation_community(G)
print(g)

建议:在networkx中还有其它的社区划分算法,比如GN算法,CPM算法等,请自行探索。

你可能感兴趣的:(python代码)