louvain算法_复杂网络社团划分算法

简介

一个基于模块度优化的启发式算法,用于发现大型网络的社团结构。


相关定义

模块度(第二版)

在一个(有权)网络中,模块度被定义为:

Q=\frac{1}{2 m} \sum_{i, j}\left[A_{i j}-\frac{K_{i} K_{j}}{2 m}\right] \ \delta \left(c_{i}, c_{j}\right)

其中A_{i j}表示节点i和节点j之间的边权值;K_{i}表示与节点i相连的边的权值之和(无权网络中为度);c_{i}表示i所属的社团;若节点i和节点j属同一社团,则\delta (c_{i}, c_{j})为1,否则为0;m表示网络中节点的边数量,若网络为有权网络则表示边权重和。

模块度(第一版)

Q=\sum_{i}\left(e_{i i}-a_{i}^{2}\right)=\operatorname{Tre} \left\|\mathbf{e}^{2}\right\|

基本思想

算主分为迭代重复计算的两个阶段:1.节点社团归属确定;2.社团合并。

step0:在算法开始,为网络中的每一个节点分配为一个不同的社团。

step1:确定节点社团归属

对于节点i,依次考虑将其加入其邻居节点j所属的社团C,此步骤带来的模块度增益\Delta Q为:

加入后的整体模块度 - 加入前整体的模块度

模块度(第一版)

Q=\sum_{i}\left(e_{i i}-a_{i}^{2}\right)=\operatorname{Tre} \left\|\mathbf{e}^{2}\right\|

对于社团c,若记sigma_in为社团c内所有边权重和的2倍,sigm_tot为连接到社团c中节点的连边和,则社团c的模块度为:

Q_{c_}=\frac{\sum_{in}}{2m}-(\frac{\sum_{tot}}{2m})^{2}

节点i加入后的社团c模块度为: 

Q_{c_{add}}=\frac{\sum_{in} + 2k_{i,in}}{2m}-(\frac{\sum_{tot+k_{i}}}{2m})^{2}

其中k_{i,in}为节点i连接到社团c中边的权重和,k_{i}表示节点i的度;


若节点i为孤立节点,即其所属社团a仅有一个节点,则移出前,社团a的模块度为:

Q_{a}=0-\left(\frac{k_{i}}{2 m}\right)^{2}

移出后,社团a的模块度为:

Q_{a_{rem}}=0

因此可以得到此时模块度增益为:

\Delta Q = (Q_{c_{add}} - Q_{c})+(Q_{a_{rem}}-Q_{a})=Q_{1}+Q_{2}

\Delta Q=\left[\frac{\sum_{\mathrm{in}}+2 k_{i, \text { in }}}{2 m}-\left(\frac{\sum_{\mathrm{tot}}+k_{i}}{2 m}\right)^{2}\right]-\left[\frac{\sum_{\mathrm{in}}}{2 m}-\left(\frac{\sum_{\mathrm{tot}}}{2 m}\right)^{2}-\left(\frac{k_{i}}{2 m}\right)^{2}\right]

网络上很多翻译、博客将此公式译为模块度增益公式,是不正确的!该公式仅给出了对于孤立节点的加入社团c带来的模块度增益,论文中也有对应说明。


若节点i未非孤立节点,则需要计算Q_{a_{rem}}

此时社团a的模块度为:

Q_{a}=\frac{\sum_{i n}}{2 m}-\left(\frac{\sum_{t o t}}{2 m}\right)^{2}

移出节点i后,社团a的模块度为:

 Q_{a_{rem}}=\frac{\sum_{in}-2k_{i,in}}{2 m}-\left(\frac{\sum_{t o t}-k_{i}}{2 m}\right)^{2}

其中k_{i,in}为节点i连接到社团a中边的权重和,k_{i}表示节点i的度;

step2:合并社团

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值