数值运算pythonmopn_python隶属关系图模型:基于模型的网络中密集重叠社区检测方法...

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

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

1460000022082685

1190000022082681

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

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

1460000022082684

1190000022082681

进行社区检测

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

例子

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

图创建

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

# create a graph PNGraph 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)

1190000022082681

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

# generate a network using Forest Fire model G3 = snap.GenForestFire(1000, 0.35, 0.35) # save and load binary FOut = snap.TFOut("test.graph") G3.Save(FOut) FOut.Flush() FIn = snap.TFIn("test.graph") G4 = snap.TNGraph.Load(FIn) # save and load from a text file snap.SaveEdgeList(G4, "test.txt", "Save as tab-separated list of edges") G5 = snap.LoadEdgeList(snap.PNGraph, "test.txt", 0, 1)

1190000022082681

1460000022082686

1190000022082681

悲惨世界中的人物网络中的社区。不共享社区的两个节点之间的边缘概率设置为0.01,以检测更紧凑的社区。

NCAA橄榄球队网络中的社区(通过将两个不共享社区的节点的边缘概率设置为0.1的5个试验的最佳结果。圆形区域表示检测到的社区,节点颜色表示NCAA会议。):

下载资料

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

数据集:

类型

节点数

边缘

社区

描述

无向,社区

3,997,962

34,681,189

664,414

LiveJournal在线社交网络

无向,社区

65,608,366

1,806,067,135

1,620,991

Friendster在线社交网络

无向,社区

3,072,441

117,185,083

15,301,901

Orkut在线社交网络

无向,社区

1,134,890

2,987,624

16,386

YouTube在线社交网络

无向,社区

317,080

1,049,866

13,477

DBLP协作网络

无向,社区

334,863

925,872

271,570

亚马逊产品网络

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值