【igraph实例】Commmunity 识别

本文通过python的igraph库,介绍了多种社区识别算法的实现,包括Edge betweenness、Modularity maximization、Label propagation、Fast community unfolding、Walktrap和k-clique community,详细展示了在网络分析中的应用。
摘要由CSDN通过智能技术生成

作者简介: 本文作者系大学统计学专业教师,多年从事统计学的教学科研工作,在随机过程、统计推 断、机器学习领域有深厚的理论积累与应用实践。个人主页

本文使用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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值