社區劃分算法:標籤傳播算法的python實現過程(7行代碼實現)

注意:黃色部分爲個人感情抒發,可以不用在意。

1.標籤傳播算法的具體實現過程由python的一個類庫networkx完成。

    由以下語句安裝networkx

pip install networkx

2.建立一個典型的社交網絡圖:Zachary的空手道俱樂部圖表

  在networkx內置了空手道俱樂部圖

import networkx as nx
G=nx.karate_club_graph()

3.定義標籤傳播算法函數

輸入:一個定義好的圖G

輸出:社區劃分結果,劃分結果用二維列表表示,如[[1,2,5],[8,7,9]],節點1,2,5代表一個社區,節點7,8,9代表另一個社區。

from networkx.algorithms import community
def label_propagation_community(G):
    communities_generator = list(community.label_propagation_communities(G))
    m = []
    for i in communities_generator:
        m.append(list(i))
    return m

3.打印劃分結果:

g=label_propagation_community(G)
print(g)

建議:在networkx中還有其它的社區劃分算法,比如GN算法,CPM算法等,請自行探索。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章