密集网络中社区的生成与检测模型

2024-10-02 16:21:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的目标是定义一个模型,对这种现象进行建模,从中我可以对一些图形进行采样,并查看实际观察到的行为

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

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

我还假设graph tool可以做的一切,graspy也可以做。从一开始我就读到了这两种情况,似乎情况就是这样

总结:

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

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

谢谢


Tags: 模型类型目标节点定义关系情况朋友
1条回答
网友
1楼 · 发布于 2024-10-02 16:21:48

Is there a way to generate a stochastic block model in graspy that yields a complete undirected weighted graph?

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

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

I am also assuming that everything that graph-tool can do, graspy can also do.

事实并非如此。有(至少)两种不同的常用方法来推断SBM的参数。不幸的是,每种方法的实践者似乎都避免在论文和代码中相互引用

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

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

我对graspologic(spectral)方法不太熟悉,但对我来说,除了为理想的社区划分寻找点估计之外,它们似乎更难扩展。不过,你应该对我的观点持强烈的怀疑态度。我不是这方面的专家

相关问题 更多 >