社区发现LFM算法学习笔记

 

社区发现的目标是在以社交网络为代表的复杂网络中发 现网络的模块结构特性,一个社区代表了一个节点的聚簇。由于实际中不同社区之间可能共享某些节点,重叠社区发现 算法的目标是能够在复杂网络中发现重叠的社区。重叠社 区 发 现 算 法 的 一 个 典 型 代 表 是 LFM 方 法。 LFM的基本思想是迭代地从不同的种子节点出发,以贪婪的 方式检测社区。LFM在一次迭代过程中从不属于任何社区 的节点中随机选择种子,并且为了确定某一节点是否属于当 前社区,使用下式来度量社区中节点相对于社区的适应度之和。

其中,kin和kout是社区G中节点的内部度(与社区内部节点的连 接数量)和外部度(与社区外部节点的连接数量);模块的内部度数等于模块内部链接数的两倍。外部度是将模块的每个成员与图的其余部分连接起来的链接数。α是正实 数,用于控制社区大小,α越小,社区越大. 基于该度量方法,LFM在检测过程中迭代地评估已经在 社区中的节点的所有邻居节点,找到其中加入社区时能够增 加社区适应度的节点,并且选择其中的最佳贡献者加入到社 区中。一旦添加新节点,LFM再次评估社区中已经存在的节 点对社区适应度的贡献,并移除贡献度为负的节点,即排除该 节点能够增加社区适应度。当所有邻居的贡献度为负时,对 一个社区的贪婪发现就此结束.当网络中的所有节点都已分 配社区时,整个社区发现过程将停止。

 

节点A对于子图G的适应度定义(A的适应度):有结点A和无结点A适应度变化量:

G+{A}(G-{A})指结点A在G的里边(外边)得到的子图。

 

本文的目的是确定从节点a开始的子图,以便包含一个新节点或从子图中删除一个节点将降低fG。我们称这样的子图为节点a的自然社区。这相当于为给定一个α的适合度函数确定局部最大值。

 

发现结点A的自然群落算法步骤(假设节点A在社区G中):

1.在G的所有邻居节点(邻居结点不在G内)上执行循环

2.将适应度最大的邻居结点加入G中,获得新的G’

3.重新计算G‘中每个结点的适应度

4.如果一个结点的适应度为负,则从G’中删除,生成一个新的G‘‘

5.如果4发生,重复第三步,否则对子图G’‘从1重复

当步骤1中的所有都有负适应度时,进程结束。

这个过程对应于适应度函数的一种贪婪优化,因为在每次移动时,都要寻找可能的最大增长

 

我们将图的覆盖定义为一组集群,这样每个节点至少被分配到一个集群。这是对传统图划分概念(每个节点属于单个集群)的扩展,以考虑可能的重叠社区。在我们的例子中,检测一个覆盖等于发现被研究图的每个节点的自然社区。实现这一点的简单方法是对每个单个节点重复上述过程。然而,这在计算上是昂贵的。许多节点的自然群落经常重合,因此计算机的大部分时间都花在一次又一次地重新发现相同的模块上。经济的出路可以总结如下:

1.随机选取结点A

2.检测A的自然群落

3.随机选取一个尚未分配到任何组的结点B

4.检测结点B的自然群落,探测所有结点,不考虑他们可能属于其他组

5.重复步骤3

当所有结点被分配到至少一个组时,算法停止。

参考文献:

1. 刘 春 张国良,一种基于重叠社区发现的软件特征提取方法

2.Detecting the overlapping and hierarchical community structure in complex networks

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

篮砂石

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值