BiMLPA

May 27, 2020 · View on GitHub

"BiMLPA: Community Detection in Bipartite Networks by Multi-Label Propagation", NetSci-X 2020 https://link.springer.com/chapter/10.1007/978-3-030-38965-9_2

マルチラベル伝搬法を用いた二部ネットワークからのコミュニティ抽出(JSAI 2019)

二部ネットワークにおける,多対多対応のコミュニティ抽出を行うプログラムです.

インストール

pip経由でインストールする場合:

sudo pip install bimlpa

レポジトリからlatest versionをインストールしたい場合:

sudo pip install git+https://github.com/marblet/BiMLPA

使い方

from BiMLPA import *
import networkx as nx

G = generate_network('BiMLPA/test/southernwomen.net')

# The parameters are set to theta=0.3, lambda=7
bimlpa = BiMLPA_SqrtDeg(G, 0.3, 7)
bimlpa.start()
relabeling(G)
top_coms, bottom_coms = output_community(G)

# If the community structure is known, the normalized mutual information score can be calculated
# using calc_NMI by assigning the correct community number to the attribute 'community' of the node.
community = {i+1: 0 for i in range(9)}
community.update({i+10: 1 for i in range(9)})
community.update({i+19: 2 for i in range(6)})
community.update({i+25: 3 for i in range(3)})
community.update({i+28: 4 for i in range(5)})
nx.set_node_attributes(G, name='community', values=community)

print('NMI : ', calc_NMI(G))