什么是好的重叠组算法?
问题描述:
我熟悉各种聚类算法(k-means等),但对于我的特定用例(社交网络),我需要一种算法来检测重叠的组。这个算法将我的Facebook朋友整齐地分离成我的高中朋友,我的大学朋友,我的家人和我的工作朋友。什么是好的重叠组算法?
我上面使用的算法(JUNG的VoltageClusterer)将节点分成单个集群。但是我想要一种算法,可以为多个节点分配节点(例如,我的一个朋友可以是我的高中朋友和大学朋友)。
我该怎么做?如果我可以让这个算法适用于加权图,而不仅仅是不加权的图,那将会很好。
答
帕拉等人对检测重叠社区一个很好的自然纸: http://www.nature.com/nature/journal/v435/n7043/full/nature03607.html 他们展示了其在不同类型的网络的成功,从社会与蛋白质相互作用
该算法被称为k团渗滤。它是在他们的C-finder程序中实现的: http://www.cfinder.org/
答
你可能会尝试模糊的c-means,它很像旧的备用k-means,但允许重叠的簇。有一个在一个合理的介绍(包括一个小的示范):
谷歌对于“模糊聚类”和/或“软聚类”,你应该会发现很多。 – 2011-02-02 23:03:59