Spark graphFrames - 标签传播与强连接组件

Spark graphFrames - Label Propagation vs. Strongly Connected Components

https://docs.databricks.com/spark/latest/graph-analysis/graphframes/user-guide-scala.html标准示例中:

我错过了什么? [A、D、E] 我本以为从数据来看也会是一个社区,结果会相似。我尝试了更多的周期。标签传播似乎是 "clustering".

的可怜表弟

你在这里发现了一种称为标签振荡的已知现象,当标签同步更新并且(子)图具有二分结构(或星图)时会发生这种现象。两个社区将无休止地交换标签,LPA 永远不会自行终止。

时间标签:

t+1 时的标签:

t+2 时的标签:

...等等。

正如您已经提到的,这并不是我们对社区检测算法的真正期望,因为社区内没有边缘。但这仍然是一种快速算法,可以为非二分结构提供良好的结果。 Raghavan proposed a fast alternative which uses asynchronous updating. But this is not yet implemented in Graphframes. Graphframes calls the graphX implementation of LPA (have a look at code code) which uses Pregel (have a look at code code) 是同步的。

除了二分结构的 LPA 问题之外,还有一个 SCC 和 LPA 之间的一般区别

  • SCC社区:社区的每个节点都知道(有边)社区内的所有其他节点。
  • LPA社区:社区的每个节点都有一条路径 社区内的(边缘序列)到社区内的所有其他节点 一个社区。