參考:
Louvain algorithm for community detection
Louvain 算法
一種基于模塊度的圖算法模型。對于點多邊少的圖蝗肪,進行聚類效果特別明顯橄霉。louvain是針對于無向圖的社區(qū)發(fā)現(xiàn)算法.
社區(qū)
如果一張圖是對一片區(qū)域的描述的話下愈,我們將這張圖劃分為很多個子圖施逾。當子圖之內(nèi)滿足關聯(lián)性盡可能大戴甩,而子圖之間關聯(lián)性盡可能低時芋浮,這樣的子圖我們可以稱之為一個社區(qū)威沫。
模塊度的定義:
模塊度是評估一個社區(qū)網(wǎng)絡劃分好壞的度量方法妇多,它的物理含義是社區(qū)內(nèi)節(jié)點的連邊數(shù)與隨機情況下的邊數(shù)之差伤哺,它的取值范圍是 [?0.5,1]≌咦妫可以簡單地理解為社區(qū)內(nèi)部所有邊權重和減去與社區(qū)相連的邊權重和立莉。
- 模塊度越大分群質(zhì)量越高
算法流程:
1、初始時將每個頂點當作一個社區(qū)七问,社區(qū)個數(shù)與頂點個數(shù)相同蜓耻。
2、依次將每個頂點與之相鄰頂點合并在一起械巡,計算它們的模塊度增益是否大于0刹淌,如果大于0饶氏,就將該結(jié)點放入該相鄰結(jié)點所在社區(qū)。
3有勾、迭代第二步疹启,直至算法穩(wěn)定,即所有頂點所屬社區(qū)不再變化蔼卡。
4喊崖、將各個社區(qū)所有節(jié)點壓縮成為一個結(jié)點,社區(qū)內(nèi)點的權重轉(zhuǎn)化為新結(jié)點環(huán)的權重菲宴,社區(qū)間權重轉(zhuǎn)化為新結(jié)點邊的權重贷祈。
5、重復步驟1-3喝峦,直至算法穩(wěn)定势誊。
分群算法過程圖解(摘自論文Fast unfolding of communities in large networks)
Louvain 分群過程