【问题标题】:Interpreting community structure in graph theory图论中的社区结构解释
【发布时间】:2014-09-03 04:50:12
【问题描述】:

好的,所以我有一个这样的文件。

 5 1211 11
 18 25 11
 12 281 11
 522 569 11
 46 269 11
 46 1854 11
 544 2324 11
 544 1955 11
 10 795 11
 246 982 11
 37 1500 11
 2 1154 11
 11 911 11
 200 281 11
 512 663 11
 197 663 11
 181 202 11
 1 124 11
 14 636 11
 14 1616 11
 578 1743 11

前两列代表节点(人),第三列代表他们在一段时间内发送消息时遵循的特定模式(在本例中相同)。这些节点实际上代表在同一​​办公室工作的人。现在,我为他们绘制了一个图表和

现在,我使用社区命令和算法作为 walktrap.community 使用 R。我再次得到图表,

我真的很想知道这些分组的含义。我知道它们是通过考虑模块化进行分组的。但这些分组实际上代表什么? 我在很多研究论文上都读到了这一点,但没有找到任何相关的东西。

【问题讨论】:

  • 请添加algorithms标签。
  • 我也阅读了很多研究论文,并看到了 wiki 页面。但我无法推断的一件事是,我可以从这里推断出什么可能的事情? (遵循特定模式的节点,它们像这样分组)

标签: r algorithm graph igraph


【解决方案1】:

不确定这是您要问的,但是...

社区是网络集群的一种形式。基本思想是,给定社区中的节点(顶点)与该社区中的其他节点“连接更多”,而不是与其他社区中的节点的连接。在您的简单示例中,节点 46 连接到节点 269 和 1854,但这三个节点未连接到任何其他节点,因此它们形成了一个社区。类似地,节点 11 和 911 相互连接,但不连接任何其他节点,因此它们形成了一个社区。 “更多连接”的定义取决于用于识别社区(进行聚类)的算法。

编辑回应 OP 的评论。

来自文档:

这个函数试图找到密集连接的子图,也称为 通过随机游走在图中的社区。这个想法是短随机 散步往往停留在同一个社区。​​p>

这是一个例子:

library(igraph)
# create a sample graph
g <- graph.full(5)
for (i in 0:3) {
  g <- g %du% graph.full(5)
  g <- add.edges(g,c(5*i+1,5*(i+1)+1))
}

wc <- walktrap.community(g)
colors <- rainbow(max(membership(wc)))
set.seed(1)   # for reproducible layout
plot(g,vertex.color=colors[membership(wc)], 
     layout=layout.fruchterman.reingold)

在此示例中,每个子组(社区)都高度互连,虽然集群相互连接,但它们之间的连接较少。因此,从节点 1-5 开始的随机游走更有可能在这些节点之间循环,而不是到达任何其他节点。因此节点 1-5 形成一个社区。​​p>

算法详解here

【讨论】:

  • 你能给我一个简单的例子来说明你最后一行的意思吗?我的意思是,你能解释一下 walktrap.community 算法的更多连接意味着什么吗?谢谢。 :)
  • This paper,来自walktrap.community(...) 文档,详细描述了算法。
猜你喜欢
  • 1970-01-01
  • 2013-09-04
  • 2012-04-19
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
相关资源
最近更新 更多