社团划分中模块度的计算,python,networkx

社团划分中的一个衡量指标模块度Q的计算,之前一直理解错了,是按照划分之前的原始的图去计算结点信息,同时加上划分以后的社团,所以需要用到原来的图G1和划分完以后的图G2

import networkx as nx
def Q(G1,G2):
    m=len(G1.edges())
    Aab=0
    res=0.0
    for a in G1.nodes():
        for b in G1.nodes():
            if nx.has_path(G2,a,b):
                Aab=0
                if b in G1.neighbors(a):
                    Aab=1
                res=res+(Aab*m*2-nx.degree(G1,a)*nx.degree(G1,b))/(4*m*m)
    return res
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值