模塊度與Louvain社區發現算法

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

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

 

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

 

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

 

1不斷地遍歷網絡中的結點,假設每一個節點爲1個社區,N個節點,初始化N個社區,嘗試將單個結點加入可以使模塊度提高最大的社區中,直到全部結點都再也不變化。社區

 

模塊度提高的定義以下:class

前項表明的意思爲結點加入鄰居社區後,社區內內全部邊pdf

 

後項表明着結點加入鄰居社區後,社區全部邊(包括內部邊,以及鏈接外部的邊)遍歷

 

目的是變化後但願子社區內邊,外邊少,即更彙集。im

 

可是爲何後項要全部邊呢?由於後項帶了懲罰項的意思,沒有懲罰項的話把全部都分紅一個社區都分紅一塊兒就最大了。db

 

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

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

前項表明的意思爲子社區內全部邊,後項表明着子社區社區全部邊(包括內部邊,以及鏈接外部的邊)。

 

模塊度就是但願子社區內邊,外邊少,即更彙集。

相關文章
相關標籤/搜索