louvain算法_图机器学习经典算法 louvain 完全解读

本文原创作者知乎主页链接为
https://www.zhihu.com/people/he-he-he-he-77-19-21

louvain 算是目前市面上提到的和使用过的最常用的社区发现算法之一了,除此之外就是 infomap,这两种。

模块度是评估一个社区网络划分好坏的度量方法,它的物理含义是社区内节点的连边数与随机情况下的边数之差,它的取值范围是 [−1/2,1),其定义如下:8c006f9215e8d4f5ad5adfc9eab3c081.png

这个公式的含义一定要理解清楚才能体会到 louvain 背后的真谛。

为了更好的理解这里举一个具体的例子:

5bbd5e719e3dffa87bc617ff29d9f61e.png

实际上的情况是这样的,假设我们有一个 graph 如上,这个社区 graph 中有 7 个 nodes,为了方便起见我们假设所有 edges 的权重均为1(带权的计算方式和下面是完全一样的),这个时候我们先计算整个 graph 的边的权重 :2a931592166fc17710c711eb9c346faf.png

(这里需要注意, 的计算是重复的,比如我们以 node 为当前节点的时候,计算了一次 edges 的权重之和,例如 和, 和 , 和 . 当我们以node 为当前节点进行计算的时候,我们的计算是 和 , 和 , 和 。可以发现 和 这两个 nodes 进行 edges 的求和的时候, 和 实际上是重复计算了,因此实际上计算总的 edges 的权重之和的时候,每条edge 的权重都被重复计算了两次,所以 m 的公式前面有个 1/2.)

比如假设当前 ,,则(节点和自身之间不存在 edge,权重为 0),(无 edge 连接,权重也是 0),则对于 来说其计算结果为 3,同理,计算结果是2,则对所有的 nodes 都进行如上的两轮循环的遍历之后,得到的的计算结果是:

node 1:3  、 node2:2 、  node3:5、node4:2、node5:1、node6&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值