注意:黃色部分爲個人感情抒發,可以不用在意。
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算法等,請自行探索。