Spark graphFrames - 标签传播与强连接组件
Spark graphFrames - Label Propagation vs. Strongly Connected Components
在https://docs.databricks.com/spark/latest/graph-analysis/graphframes/user-guide-scala.html标准示例中:
- 在绘图上直观地查看强连通分量时,它们在计算上似乎是合理的。
- 因此,我对用于检测 "communities" 的标签传播感到惊讶。
我错过了什么? [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社区:社区的每个节点都有一条路径
社区内的(边缘序列)到社区内的所有其他节点
一个社区。
在https://docs.databricks.com/spark/latest/graph-analysis/graphframes/user-guide-scala.html标准示例中:
- 在绘图上直观地查看强连通分量时,它们在计算上似乎是合理的。
- 因此,我对用于检测 "communities" 的标签传播感到惊讶。
我错过了什么? [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社区:社区的每个节点都有一条路径 社区内的(边缘序列)到社区内的所有其他节点 一个社区。