标签传播算法及其改进方案(科研记录)

标签传播算法

注:本文只是对自己设计的算法的一个简单记录。

算法步骤
  1. 初始时,给每个节点一个唯一的标签;
  2. 每个节点使用其邻居节点的标签中最多的标签来更新自身的标签。
  3. 反复执行步骤2,直到每个节点的标签都不再发生变化为止。
    一次迭代过程中一个节点标签的更新可以分为同步和异步两种。所谓同步更新,即节点z在第t次迭代的label依据于它的邻居节点在第t-1次迭代时所得的label;异步更新,即节点z在第t次迭代的label依据于第t次迭代已经更新过label的节点和第t次迭代未更新过label的节点在第t-1次迭代时的label。
改进方案

标签传播算法的时间复杂度很低,非常适合大型网络的社区划分,但是也存在很多缺点:

  1. 划分结果不稳定,随机性强;
  2. 准确度不高。
具体体现在:
  1. 更新顺序:节点标签更新顺序随机,但是很明显,越重要的节点越早更新会加速收敛过程;
  2. 随机选择:如果一个节点的出现次数最大的邻居标签不止一个时,随机选择一个标签作为自己标签。这种随机性可能会带来一个雪崩效应,即刚开始一个小小的聚类错误会不断被放大。
改进思路:

  确定节点的更新顺序 : LeaderRank,PageRank,HITS,参与系数,k-核/k-壳,等等及其改进算法;
  降低随机选择的概率 : 各种相似度度量/距离度量以及他们的随机结合。

目前算法:

  k为社区数量,ARI为调整兰德系数,NMI为网络选择标准互信息,Q为模块性指标,δ为算法稳定系数,Time为运行时间,环境为python2.7(黑体 为与 FMM,LPA ,BGLL ,LPAm, LPAm+, infomap, ISCD+, LPA-S这些算法的比较。 )
  karate:k=2 ,ARI=1.0000,NMI=1.0000,Q=0.3715,δ=0,Time=8;
  dolphin:k=4 ,ARI=0.4325,NMI=0.6241,Q=0.5203,δ=0,Time=20;
  football:k=12 ,ARI=0.8896,NMI=0.9268,Q=0.6010,δ=0,Time=66;
  polkbooks:k=4 ,ARI=0.6664,NMI=0.5534,Q=0.5140,δ=0,Time=59;斜体样式

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值