python隶属关系图模型:基于模型的网络中密集重叠社区检测方法

173 阅读3分钟

原文链接: tecdat.cn/?p=7285

 

隶属关系图模型 是一种生成模型,可通过社区联系产生网络。下图描述了一个社区隶属关系图和网络的示例(图1)。

 

  • 图1.左:社区关系图(圆形节点表示三个社区,正方形节点代表网络的节点),右:AGM生成的网络,社区关系图在左侧

 

 

 当我们使用拟合于实际网络的 合成网络时,合成网络具有与真实网络非常相似的特征(图2)。

 

  • 图2.边际概率是Orkut网络中常见社区成员数量的函数  。

 

 进行社区检测

 

如果用户指定了要检测的社区数量,则 会找到相应的社区数量。如果用户未假定某个概率,则 使用(1 / N ^ 2),其中N是图中的节点数。

 

例子

我们展示了一些由隶属关系图模型和基础网络检测到的社区的示例。

图创建

如何创建和使用有向图的示例:

# 创建一个网络图
G1 = snap.TNGraph.New() 
G1.AddNode(1) 
G1.AddNode(5) 
G1.AddNode(32) 
G1.AddEdge(1,5) 
G1.AddEdge(5,1) 
G1.AddEdge(5,32)

用于保存和加载图形的代码如下所示:

# 使用 Forest Fire 模型创建一个网络图
G3 = snap.GenForestFire(1000, 0.35, 0.35) 
#保存 
FOut = snap.TFOut("test.graph") 
G3.Save(FOut) 
FOut.Flush() 
FIn = snap.TFIn("test.graph") 
G4 = snap.TNGraph.Load(FIn) 
# 保存从文本读取
snap.SaveEdgeList(G4, "test.txt", "Save as tab-separated list of edges") 
G5 = snap.LoadEdgeList(snap.PNGraph, "test.txt", 0, 1)

 

 

  • 悲惨世界中的人物网络中的社区。不共享社区的两个节点之间的边缘概率设置为0.01,以检测更紧凑的社区。
  • NCAA橄榄球队网络中的社区(通过将两个不共享社区的节点的边缘概率设置为0.1,5个试验的最佳结果。圆形区域表示检测到的社区,节点颜色表示NCAA。

 

下载资料

我们提供6个数据集,每个数据集都有一个网络和一组真实的社区。真实社区是可以从数据中定义和标识的社区。每个数据集的网页都描述了我们如何识别数据集中的真实社区。

数据集:

 类型节点数边缘社区描述
 无向,社区3,997,96234,681,189664,414LiveJournal在线社交网络
 无向,社区65,608,3661,806,067,1351,620,991Friendster在线社交网络
 无向,社区3,072,441117,185,08315,301,901Orkut在线社交网络
 无向,社区1,134,8902,987,62416,386YouTube在线社交网络
 无向,社区317,0801,049,86613,477DBLP协作网络
 无向,社区334,863925,872271,570亚马逊产品网络

最受欢迎的见解

1.采用spss-modeler的web复杂网络对所有腧穴进行分析

2.用R语言和python进行社交网络中的社区检测

3.R语言文本挖掘NASA数据网络分析,tf-idf和主题建模

4.在R语言中使用航空公司复杂网络对疫情进行建模

5.python隶属关系图模型 基于模型的网络中密集重叠社区检测

6.使用Python和SAS Viya分析社交网络

7.关联网络分析:已迁离北京外来人口的数据画像

8.情感语义网络游记数据感知旅游目的地形象

9.用关联规则数据挖掘探索药物配伍中的规律