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

时间:2020-05-26 01:24:53

标签: python cluster-analysis graph-tool

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

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

到目前为止,我已经研究了随机块模型(https://graspy.neurodata.io/tutorials/simulations/sbm.html),因为有一些论文介绍了将这些生成模型用于这些社区检测任务。但是,由于我似乎无法完全代表我的需求,所以我可能正在监督一些事情:g = sbm(list_of_params)其中g已完成,并且节点之间存在一些权重为3的可分辨簇。

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

我还假设图形工具可以做的所有事情,掌握也可以做。因为从一开始我就读过这两者,看来情况确实如此。

摘要:

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

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

谢谢

1 个答案:

答案 0 :(得分:1)

有没有一种方法可以在抓握中生成随机块模型,从而生成完整的无向加权图?

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

要使用权重从SBM生成图形,请使用以下功能: https://graspy.neurodata.io/reference/simulations.html#graspologic.simulations.sbm

我还假设图形工具可以做的所有事情,熟练的人也可以做。

这不是事实。至少有两种不同的流行方法可以推断SBM的参数。不幸的是,每种方法的实践者似乎都避免在论文和代码中互相引用。

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

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

我对graspologic(频谱)方法并不熟悉,但是-对我来说-他们似乎更难扩展到不仅仅是为理想的社区划分寻求点估计。不过,您应该持怀疑态度,接受我的意见。我并不是这个领域的专家。

相关问题