作者简介: 本文作者系大学统计学专业教师,多年从事统计学的教学科研工作,在随机过程、统计推 断、机器学习领域有深厚的理论积累与应用实践。个人主页
本文使用python实现的igraph库,识别网络中的commmunity
.
from IPython.display import Image
Image("../input/image-community/Community.jpeg") #https://healthcommcapacity.org/
加载必须的库
# Import libraries
import pandas as pd #For reading dataset files
import networkx as nx #For network creation/analysis
from networkx.algorithms import community
import community as community_louvain
import matplotlib.pyplot as plt #For plotting graphs
import igraph as ig
%matplotlib inline
加载数据集
G = nx.karate_club_graph()
nx.draw_networkx(G)
Community 算法
1. Edge betweenness
#Edge betweenness
lst_b = nx.algorithms.community.girvan_newman(G)
type(lst_b)
# Print possible communities
for x in lst_b:
print(x)
#Community visualization
colors = ["#00C98D", "#5030C0", "#50F0F0"]
pos = nx.spring_layout(G)
lst_b = community.girvan_newman(G)
color_map_b = {
}
keys = G.nodes()
values = "black"
for i in keys:
color_map_b[i] = values
counter = 0
for x in lst_b:
print(1)
for c in x:
for n in c:
#print(n,counter)
color_map_b[n] = colors[counter]
counter = counter + 1
break
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_nodes(G, pos, node_color=dict