学习笔记(2)-标签传播算法伪代码实现

算法名称:社区发现中的标签传播算法(LPA)
算法输入:无向无权图邻接矩阵AdjacentMatrix,节点个数VerticeNum
算法输出:存储节点标签的分类数组Community

//初始化每个节点的标签
For i <- 0 to VerticeNum Do
    Community[i] <- i
    //寻找i节点的所有邻居存入Neighbor[i]
    FindMaetexNonZero(i,AdjacentMatrix,NeighBor[i])
while 未达到分类标准 or 未超出迭代阈值 then
    RandomSort(SS)//生成随机序数队列SS
    For i <- 0 to VerticeNum Do
        //统计节点i邻居中数量最多的标签
        VectorFrequency(Neighbor[i], lable)
        //若只有一个数量最多则直接赋值
        if lable.size() = 1 then
            Community[i] <- lable[0]
        //若有多个相同数量的标签则随机选择一个
        else then
            Community[i] <- lable[random]
return Community

改进算法:
1、不重叠三角形初始化:
算法名称:标签传播算法不重叠三角形初始化(Findunitriangle)
算法输入:无向图邻接阵AdjacentMatrix,节点个数VerticeNum,各节点邻居集合Neighbor,分类数组Community
算法输出:存储节点标签的分类数组Community

//标记所有节点都未访问过
For i <- to VerticeNum Do isVisited[i] <- False
//社区标签
c=0
//寻找不重叠三角形赋予相同标签作为初始社区
For i <- 0 to VerticeNum Do
    For j <- 0 to Neighbor[i].size 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值