图聚类算法
Graph clustering algorithm
我能解释我正在寻找的东西的最好方法是使用这张图片:
显然,视觉辅助使我们更容易对这些图进行分组,但我也认为找到密集的子图应该是一个可以使用算法解决的问题。我尝试了 MCL 算法,因为它很受欢迎,但它不能正常工作,因为它似乎至少不允许定向边缘。我试图对边缘进行不同的加权,但这也无助于聚类过程。我想在图中找到密集点,我确实有办法验证给定的集群是否可行,如果有帮助的话,在某些情况下某些元素不能在一起。
输出结果为:
集群 0:A、B、C
第 1 组:D、E、F、G
在这种情况下,如果 D 是可疑元素,使用不同的方法我可以找出属于哪个簇。
这个问题本身就是一个研究领域(也是我博士论文的一部分...)
最佳解决方案通常取决于您对 "cluster" 或 "community" 的数学定义。
例如,您可以最小化簇间边缘的数量,这称为 graph partition problem。
Fortunato 就此主题写了一篇很好的评论论文:
https://arxiv.org/pdf/0906.0612
除了我们自己的方法,我个人最喜欢的是模拟退火。
我能解释我正在寻找的东西的最好方法是使用这张图片:
显然,视觉辅助使我们更容易对这些图进行分组,但我也认为找到密集的子图应该是一个可以使用算法解决的问题。我尝试了 MCL 算法,因为它很受欢迎,但它不能正常工作,因为它似乎至少不允许定向边缘。我试图对边缘进行不同的加权,但这也无助于聚类过程。我想在图中找到密集点,我确实有办法验证给定的集群是否可行,如果有帮助的话,在某些情况下某些元素不能在一起。
输出结果为:
集群 0:A、B、C
第 1 组:D、E、F、G
在这种情况下,如果 D 是可疑元素,使用不同的方法我可以找出属于哪个簇。
这个问题本身就是一个研究领域(也是我博士论文的一部分...) 最佳解决方案通常取决于您对 "cluster" 或 "community" 的数学定义。 例如,您可以最小化簇间边缘的数量,这称为 graph partition problem。
Fortunato 就此主题写了一篇很好的评论论文: https://arxiv.org/pdf/0906.0612
除了我们自己的方法,我个人最喜欢的是模拟退火。