社区检测中模块度推导之期望边数
社区检测中模块度推导之期望边数本文参考论文:Finding community structure in very large networks.参考博客链接:http://ju.outofmemory.cn/entry/304650邻接矩阵中Avw = 1 表示顶点v,w之间有边相连;Avw = 0 则表示顶点v,w之间没有边相连(在矩阵中对角线位置元素全部为0)。如果社区内部有很多边而...
社区检测中模块度推导之期望边数
本文参考论文:Finding community structure in very large networks.
参考博客链接:http://ju.outofmemory.cn/entry/304650
邻接矩阵中Avw = 1 表示顶点v,w之间有边相连;Avw = 0 则表示顶点v,w之间没有边相连(在矩阵中对角线位置元素全部为0)。
如果社区内部有很多边而社区之间边很少,那么这个划分是一个好的划分。可以用下面的公式来衡量(该值很大时说明是一个很好的社区划分):
其中m表示该图中所有的边数。
∂(cv,cw) = 1表示顶点v所属的社区与顶点w所属的社区是同一个社区。
但是有一种特殊情况:所有点同属于一个社区,那么上述公式的值就为1。为了处理这种特殊情况,在该值的基础之上,减去在随机网络中该值的一个期望值。那么得到的这个新的式子就是一个很好的度量。
顶点v,w之间随机生成一条边的概率Pvw,也就是期望值,用顶点度表示的话,Pvw = kvkw/2m。那么模块度就可以定义为:
其中kv 表示顶点v的度。
下面给出Pvw = kvkw/2m 的推导过程。
每个顶点的度不变,边重新随机的连接,那么顶点v,w之间存在边的期望值记为Pvw。
每个顶点的度不变,那么图中的总边数不会变,因此重新随机连接之后,图中的边数等于原来图的边数。即(我们称之为公式a)
对每个结点v来说,它的度也不会变化,即(我们称之为公式b)
满足上面的式子的同时随机的进行连边,这样选定了一条边的一个顶点之后,在选择另一个顶点的时候,选择到顶点v的概率只与顶点v的度kv有关。而一条边的两个端点进行选择的时候是相互独立的,因此对于Pvw,有选择顶点v的概率只与kv有关,选择顶点w的概率只与kw有关,我们可以把概率看作是顶点度的函数。即
Pvw = F(kv)F(kw)
进一步
因为F(kw)中不含有变量v,那么F(kv)与kv 之间存在常数倍的关系,将该常数设置为C。
根据图论的相关知识可知:假设有n个顶点,那么,2m = k1 + k2 + … + kn;
将上述式子两边都是平方,即(2m)^2 = (k1 + k2 + … + kn)^2, 展开即得顶点度两两乘积的累积和。经整理得:C^2 = 1/2m;
那么,Pvw = CkvCkw = kvkw/(2m),得证。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)