社區搜索算法(常見的五種搜索算法)
Louvain是一種無監督算法(執行前無需輸入社區的數量或大小),分為模塊優化和社區聚合兩個階段【1】。第一步完成后,接下來是第二步。兩者都將執行,直到網絡中不再有變化并且實現最大模塊化。
是表示鄰接矩陣權重的鄰接矩陣條目,= ∑是節點的度數,如果函數(,)為1,則是節點所屬的族。=,否則為0。= 1 ∑ 2是圖中所有邊的權重之和。
Louvain將在模塊化優化中隨機排序網絡中的所有節點。然后,它將逐個刪除和插入不同社區中的每個節點,直到驗證模塊性(輸入參數)沒有顯著增加:
假設內部鏈接的權重之和是中間節點所有鏈接的權重之和,事件節點所有鏈接的權重之和,以及從該節點到社區中各節點的鏈接的權重之和是圖中所有邊的權重之和。
進一步提高算法性能的一種方法是簡化(2)并計算而不是完成以下表達式:
盡管需要為每個實驗社區計算總和σ,但k/(2m)特定于要分析的節點。這樣,只有在模塊優化中考慮其他節點時,才會重新計算后一個表達式。
完成第一步后,屬于同一社區的所有節點將合并為一個巨型節點。連接巨型節點的鏈接是先前連接到同一社區的節點的總和。這一步還會生成一個自循環,它是給定社區中所有鏈接的總和,然后分解為一個節點(圖1)。
》圖1盧萬算法的步驟順序。改編自【1】。
因此,通過在第一遍后對社區進行聚類,它固有地考慮了網絡中是否存在分層組織。算法1中的偽代碼。
【1】戴維·布隆德爾,法學博士。紀堯姆河。《大型網絡中社區的快速發展》,J. Stat。機甲。2008年12月12日
(本文轉自Luís Rita的文章《盧萬算法》,參考資料:
https://towardsdatascience . com/louvain-algorithm-93 FDE 589 f 58c)