模塊度與Louvain社區發現算法


轉自:感謝分享!https://zhuanlan.zhihu.com/p/29380602

詳細解釋見: www.cnblogs.com/fengfenggirl

 

Louvain算法其實是基於層次聚類的,圖聚類。層次聚類依據是類間距更大,Louvain算法圖聚類依據是模塊度(公式在下方)。

 

Louvain算法包括兩個階段,迭代這兩個階段。

 

1不斷地遍歷網絡中的結點,假設每個節點為1個社區,N個節點,初始化N個社區,嘗試將單個結點加入能夠使模塊度提升最大的社區中,直到所有結點都不再變化。

 

模塊度提升的定義如下:

前項代表的意思為結點加入鄰居社區后,社區內內所有邊

 

后項代表着結點加入鄰居社區后,社區所有邊(包括內部邊,以及連接外部的邊)

 

目的是變化后希望子社區內邊,外邊少,即更聚集。

 

但是為什么后項要所有邊呢?因為后項帶了懲罰項的意思,沒有懲罰項的話把所有都分成一個社區都分成一起就最大了。

 

2它處理第一階段的結果,將一個個小的社區歸並為一個超結點來重新構造網絡。它的執行流程如圖所示:

迭代這兩個步驟直至算法穩定(所有子社區模塊度相加值不變)。

前項代表的意思為子社區內所有邊,后項代表着子社區社區所有邊(包括內部邊,以及連接外部的邊)。

 

模塊度就是希望子社區內邊,外邊少,即更聚集。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM