什么是好的重叠组算法?

时间:2011-02-02 22:59:01

标签: algorithm graph cluster-analysis data-visualization social-networking

我熟悉各种聚类算法(k-means等)但是对于我的特定用例(社交网络),我需要一种能够检测重叠组的算法。这个算法巧妙地将我的Facebook好友分成了我的高中朋友,我的大学朋友,我的家人和我的工作朋友。

我上面使用的算法(JUNG的VoltageClusterer)将节点分成单个簇。但我想要一个可以为节点分配多个集群的算法(例如,我的一个朋友可以是我的高中朋友和大学朋友)。

我该怎么做?如果我能让这个算法也适用于加权图形而不仅仅是未加权的图形,那将是很好的。

3 个答案:

答案 0 :(得分:2)

Palla等人有一篇很好的关于检测重叠社区的自然论文: http://www.nature.com/nature/journal/v435/n7043/full/nature03607.html 他们证明了它在不同类型网络中的成功,从社交到蛋白质互动。

该算法称为k-clique渗流。它在他们的C-finder程序中实现: http://www.cfinder.org/

答案 1 :(得分:0)

回答我自己的问题,我发现了一篇不错的论文:http://www.springerlink.com/content/y44484587755k478/

任何其他论文/方法都会有所帮助。

答案 2 :(得分:0)

您可以尝试使用模糊c-means,这与旧备用k-means非常相似,但允许重叠群集。在:

有一个合理的介绍(包括一个小演示)

A Tutorial on Clustering Algorithms: Fuzzy c-Means