您的位置:首页 > 其它

社区发现(二):建模方法

2020-08-29 13:33 95 查看

引用:https://blog.csdn.net/itplus/article/details/9286905

文章目录

下面我们以新浪微博用户对应的网络图为例,来介绍相应的社区发现算法。

1. 可用信息

微博环境下的可用信息

  • 微博内容
  • 地理位置
  • 毕业院校
  • 标签信息
  • 关注
  • 粉丝
  • ……

微博个人主页

2. 基本假设

如果两个微博用户之间的互动越频繁,那么两者之间的社交关系越密切,而亲密的社交关系往往蕴含着潜在的兴趣关联或者较强的线下社交关系

3. 生成网络图

  • 用户当节点
  • 相互关注的用户之间建边

这里在相互关注的用户之间建立连接关系,主要是为了简化模型,此时对应的图为无向图。

当然,我们也可以采用单向关注来建边,此时将对应有向图。

4. 已有算法

Algorithm Year Complexity
CFinder 2005
LPA 2007 O(m)O(m)O(m)
LFM 2009 O(n2)O(n^2)O(n2)
EAGLE 2009 O(n2s)O(n^2s)O(n2s)
GIS 2009 O(n2)O(n^2)O(n2)
HANP 2009 O(m)O(m)O(m)
GCE 2010 O(mh)O(mh)O(mh)
COPRA 2010 O(vmlog⁡(vmn))O(vm\log{(\frac{vm}{n})})O(vmlog(nvm​))
NMF 2010 O(Kn2)O(Kn^2)O(Kn2)
Link 2010 O(nkmax2)O(nk^2_{max})O(nkmax2​)
SLPA 2011 O(Tm)O(Tm)O(Tm)
BMLPA 2012 O(nlog⁡n)O(n\log{n})O(nlogn)

5. 质量评估

不同的社区发现算法将得到不同的社区分划结果,不同结果之间如何比较优劣呢?

无向图NewmanGirvan于2004年提出了modularity的概念。

定义
所谓modularity是指网络中连接社区结构内部顶点的边所占的比例与另外一个随机网络中连接社区结构内部顶点的边所占比例的期望值相减得到的差值。

这个定义看起来很拗口,但通过层层推导,可以得到如下的数学表达式。定义中的随机网络也称为Null Model,其构造方法为:

the null model used has so far been a random graph with the same number of nodes, the same number of edges and the same degree distribution as in the original graph, but with links among nodes randomly placed.

modularity 计算公式:
Q=∑c∈C(lcm−(Dc2m)2) Q=\sum_{c \in C}(\frac{l_c}{m}-(\frac{D_c}{2m})^2) Q=c∈C∑​(mlc​​−(2mDc​​)2)

注意:该公式是针对无向图的,因此这里的 m 表示无向边的条数,即若节点 i 和节点 j 有边相连,则节点 (i, j) 对 m 只贡献一条边。

  • m:图中的总边数

  • lc:社区c中所有内部边的条数

  • Dc:社区c中所有顶点的度之和。Dc也可写成
    Dc=2lc+Oc D_c=2l_c+O_c Dc​=2lc​+Oc​
    其中Oc 是社区c 与其他社区之间的边

对于重叠型社区分划,也可定义相应的modularity。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: