Modularity.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:Networks 作者: dencesun 项目源码 文件源码
def modularity(graph):
    # convert to numpy adjacency matrix
    A = nx.to_numpy_matrix(graph)

    # compute adjacency matrix A's degree centrality
    degree_centrality = np.sum(A, axis=0, dtype=int)
    m = np.sum(degree_centrality, dtype=int) / 2

    # compute matrix B
    B = np.zeros(A.shape, dtype=float)

    for i in range(len(A)):
        for j in range(len(A)):
            B[i, j] = A[i, j] - (degree_centrality[0, i] * degree_centrality[0, j]) / float(2 * m)

    # compute A's eigenvector
    w, v = LA.eig(B)
    wmax = np.argmax(w)
    s = np.zeros((len(A), 1), dtype=float)

    for i in range(len(A)):
        if v[i, wmax] < 0:
            s[i, 0] = -1
        else:
            s[i, 0] = 1

    Q = s.T.dot(B.dot(s)) / float(4 * m)
    return Q[0, 0], s
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号