【问题标题】:Model for generating and detecting communities in dense network在密集网络中生成和检测社区的模型
【发布时间】:2020-09-12 17:31:21
【问题描述】:

我有一个完整的无向加权图。想象一个图,其中人是节点,边 (u,v,w) 表示 u 和 v 之间的关系类型,权重为 w。 w 可以取 1(彼此不认识 - 因此完整性)、2(熟人)、3(朋友)之间的任何值。这种关系基于边缘权重自然形成集群。

我的目标是定义一个模型来模拟这种现象,并且我可以从中采样一些图表并查看实际观察到的行为。

到目前为止,我已经使用了随机块模型 (https://graspy.neurodata.io/tutorials/simulations/sbm.html),因为有一些关于将这些生成模型用于这些社区检测任务的论文。但是我可能正在监督某些事情,因为我似乎无法完全表示我需要的内容:g = sbm(list_of_params) 其中 g 是完整的,并且在共享权重 3 的节点之间存在一些可识别的集群。

在这一点上,我什至不确定 sbm 是否是完成这项任务的最佳方法。

我还假设图形工具可以做的所有事情,抓握也可以。从一开始我就读到了两者,似乎就是这样。

总结:

  1. 有没有办法在抓握中生成一个随机块模型,从而产生一个完整的无向加权图?

  2. sbm 是该任务的最佳模型吗?我应该看gmm吗?

谢谢

【问题讨论】:

  • 在社交网络中,“互不相识”的概念通常用缺少边(或权重0)来表示。我会降低你的权重并在稀疏图上重新运行。

标签: python cluster-analysis graph-tool


【解决方案1】:

有没有办法在抓握中生成一个随机块模型,从而产生一个完整的无向加权图?

是的,但正如上面的 cmets 所指出的,这是一种指定模型的奇怪方式。如果您想从有关社交网络中社区检测的深入文献中受益,则不应使用完整图。做其他人都做的事情:边的存在(或不存在)应该表示关系(或不存在),边上的可选权重可以表示关系的强度。

要从带有权重的 SBM 生成图表,请使用以下函数: https://graspy.neurodata.io/reference/simulations.html#graspologic.simulations.sbm

我还假设 graph-tool 能做的一切,grachy也能做。

这不是真的。有(至少)两种不同的流行方法来推断 SBM 的参数。不幸的是,每种方法的从业者似乎都避免在他们的论文和代码中相互引用。

  • graph-tool 使用 MCMC 统计推断方法来找到最佳的图分区。
  • graspologic(以前的 graspy)使用与谱聚类相关的技巧来查找分区。

据我所知,graph-tool 方法提供了更直接和有原则的模型选择方法。它还具有有用的扩展,例如重叠社区、嵌套(分层)社区、分层图等。

我对@9​​87654326@(光谱)方法不太熟悉,但是——对我而言——它们似乎更难以扩展,而不仅仅是为理想的社区划分寻求点估计。不过,您应该对我的观点持怀疑态度。我不是这个领域的专家。

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 2012-06-09
    • 2017-12-07
    • 2012-12-24
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    相关资源
    最近更新 更多