社区发现系列02-算法介绍

本文介绍了社区发现的概念和几种常用算法,包括LPA标签传播算法、Louvain算法和GN算法。LPA算法以标签传播为基础,Louvain算法基于模块度优化,而GN算法通过删除高介数边来分割社区。在实验中,Louvain算法在风控场景下表现出较好的效果和效率,适合作为大规模网络的社区发现工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hello, 大家好,欢迎来到阿君聊风控,我是阿君(一名有7年互金和电商风控经验的算法工程师)。
 
在上篇文章https://blog.youkuaiyun.com/u010569893/article/details/128565829?spm=1001.2014.3001.5502 中我们了解到可以用社区发现技术来对图进行划分,进而挖掘到作弊团伙。那么常用的社区发现算法有哪些呢?今天我们就来聊一聊常用的社区发现算法和原理,以及通过实验来来对比不同社区发现算法划分的效果

一、社区发现算法

网络图内部连接比较紧密的节点子集合对应的子图叫做社区(community),各社区节点集合彼此没有交集的称为非重叠型(disjoint)社区,有交集的称为重叠型(overlapping)社区。对给定的网络图寻找其社区结构的过程称为“社区发现”。大体上看,社区发现的过程就是一种聚类的过程。

1.1 LPA标签传播算法

1、基本思想:

标签传播算法是不重叠社区发现的经典算法,其基本思想是:将一个节点的邻居节点的标签中数量最多的标签作为该节点自身的标签。给每个节点添加标签(label)以代表它所属的社区,并通过标签的“传播”形成同一标签的“社区”结构。

给每个节点添加标签(label)以代表它所属的社区,并通过标签的“传播”形成同一标签的“社区”结构。一个节点的标签取决于它邻居节点的标签:假设节点z的邻居节点有z1至zk,那么哪个社区包含z的邻居节点最多z就属于那个社区(或者说z的邻居中包含哪个社区的标签最多,z就属于哪个社区)。优点是收敛周期短,无需任何先验参数(不需事先指定社区个数和大小),算法执行过程中不需要计算任何社区指标。

时间复杂度接近线性:对顶点分配标签的复杂度为O(n),每次迭代时间为O( m),找出所有社区的复杂度为O (n +m),但迭代次数难以估计

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

注: 
1、迭代次数设定一个阈值,可以防止过度运算; 
2、对于二分图等网络结构,同步更新会引起震荡; 
//3、类似(“强”社区>)定义的结构(该社区>=); 
4、每个顶点在初始的时候赋予唯一的标签,即“重要性”相同,而迭代过程又采用随机序列,会导致同一初始状态不同结果甚至巨型社区的出现; 
5、如果能预测“社区中心”点,能有效提高社区发现的准确度,大幅提高效; 
6、同一节点的邻居节点的标签可能存在多种社区最大数目相同的情况,取“随机”一个作为其标签

 

3、算法改进思路:初始化或传播改进 
1)给节点或边添加权重(势函数、模块密度优化、LeaderRank值、局部拓扑信息的相似度、标签从属系数等),信息熵等描述节点的传播优先度,进而初步确定社区中心点以提高社区划分的精度; 
2)标签初始化改进,如提

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值