先贴出我借鉴的博客
Graph Community Detection(图团体检测)
当我们的样本以及样本之间的关系可以被表示为一个网络或图(graph)时,可能存在这样的需求:我们想找出来网络中联系比较”紧密”的样本。举个例子,在社交网站中,用户以及用户之间的好友关系可以表示成下面的无向图,图中的顶点表示每个用户,顶点之间的边表示用户是否为好友关系:
直观上我们可以看出a,b,e,f之间的关系比较密切,c,d,g,h之间的关系比较密切,而这两个集合之间的关系就不那么密切了。这个例子涉及的数量规模比较小,在更大的数据上我们就不太容易人工的找出这些关系密切的集合了,那么如何通过算法把我们的用户按照关系的密切程度划分成一个个集合呢,这就是图团体检测算法要完成的工作。
图团体(graph community): 通常被定义为一种顶点(vertice)的子集,每个子集中的顶点相对于网络的其它顶点来说要连接得更加紧密。
我们将上图的社交网络表示成邻接矩阵的形式:
- | a | b | c | d | e | f | g | h |
---|---|---|---|---|---|---|---|---|
a | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
b | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
c | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |