我正在尝试寻找潜在的集群或节点组(在本例中为论坛消息)。
在当前数据中,每个节点(消息)已暂时与其他 n 个消息分组在一起,并为该组指定了名称。因此,我们知道消息 ID 1 与消息 ID 3 和 7 一起出现。
我目前正在使用该信息构建边缘列表(如果它们已分组在一起,则存在边缘),然后使用 walktrap 社区生成树状图。
在给定边缘列表的情况下,还有其他方法可以梳理出组或簇吗? (我正在使用 R,但指向任何内容的指针都会有帮助)。
感谢您的宝贵时间!
我对 R 不太了解,但是...
这篇概述论文详细讨论了图聚类。您可能还对马尔可夫聚类 (MCL) 算法感兴趣。
对于 R 中的网络分析,我建议使用 igraph。您已经在使用它了吗?它允许使用不同的聚类方法构建树状图。然后使用community.to.membership()来切割树状图。 MCL 算法(尚)无法从 igraph 中获得,但可以很容易地从命令行运行。
一种常见的包罗万象的方法似乎是为数据构建一个邻接矩阵,然后使用矩阵乘法构建一种传递闭包,然后例如计算逆矩阵来识别“原因”,或计算 PCA/ICA 来识别组。