zoukankan      html  css  js  c++  java
  • python编程代写隶属关系图模型:基于模型的网络中密集重叠社区检测方法

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

     

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

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

     

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

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

     

     进行社区检测

    如果用户指定了用户要检测的社区数量,则 会找到相应的社区数量。如果用户未假定某个概率,则 使用(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)

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

    # 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)
    
    

    • 悲惨世界中的人物网络中的社区。不共享社区的两个节点之间的边缘概率设置为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 亚马逊产品网络

    如果您有任何疑问,请在下面发表评论。

  • 相关阅读:
    预备作业03 20162308马平川
    预备作业02 20162308 马平川
    预备作业01
    采用dlopen、dlsym、dlclose加载动态链接库
    FastCGI协议分析
    Fastcgi协议定义解释与说明
    linux exec函数族
    进程通信---FIFO
    FTP协议及工作原理详解
    HTTP协议详解
  • 原文地址:https://www.cnblogs.com/tecdat/p/11634295.html
Copyright © 2011-2022 走看看