注意:黄色部分为个人感情抒发,可以不用在意。
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算法等,请自行探索。