- 2
- 0
- 约4.17千字
- 约 4页
- 2023-06-03 发布于江苏
- 举报
社区发现算法——COPRA算法
COPRA算法
LPA 算法简单直观 ,易于理解。⽽且求解准确性很⾼(指的 运⽓好的时候,毕竟随机性太⼤了hh)⽆需指定社区个数等其他任何参数.最
主要 算法时间复杂度很低.接近线性但 LPA 算法存在两个问题 :
第⼀,其稳定性较差,原因 社区间标签易传播 ,当⼀个节点存在多个可选标签时.随机地选择其中⼀个 . 对于不同的随机选择会产
⽣不同的社区发现结果
第⼆ ,在现实⽣活中,很多节点可能同时属于多个标签 .⽽ LPA 算法 ⽆法挖掘出重叠社区结构的.
对此,基于LPA算法,引⼊了新的标签结构(c,b),其中,c表⽰社区标识符(它可能属于哪个社区), b表⽰节点 x在社区c中的从属系数(它
属于该社区的可能性),且 0≤b≤ 1。顶点x的所有从属系数之和等于1,通过b (c,b)表⽰迭代次数t时的顶点x对于社区c的从属系数,N(x)
t
表⽰顶点x的邻接顶点集。具体计算公式为:
∑
y∈N (x) bt−1(c, y)
b (c, x) = ∣N (x) ∣
t
每次传播过程都 将邻居节点的归属系数取并集进⾏归⼀化。
其中,N(x) 节点x的所有邻居节点。t 迭代次数。该公式的意义 计算x节点所有邻居节点属于c社区的⾪属度之和与邻居节点数的⽐值。
迭代t中⼀个顶点的标签总 基于迭代t−1中它相邻的标签。
因为我们需要⼀个节点保存多个社区标识符信息,⽽不 所有的社区标识符信息。所以我们会删除那些低于阈值 1/v的社区信息,v 超参
数,表⽰⼀个节点最多可以属于⼏个社区。
从标签向量中删除社区对之后,将剩余的⾪属度进⾏归⼀化 (分别乘(除)以⼀个常数,使其之和为 1)。
假设v为2,故阈值为 1/v=0.5,低于此阈值的标签信息都会被删除,如果⼀个节点中所有的标签都低于此阈值就随机选择⼀个。删除标签
后的⽹络信息为 :
⽐如上图节点b三个从属系数都为 1/3,都⼩于阈值 1/2,所以都删除,并且随机选择⼀个,这⾥假如选择了c,然后归⼀化,从属系数为
1,b的标签变为(c,1)。
对于节点c,从属系数都为 1/2⼤于阈值,都合格,按公式计算{(c,1)+(c,1)}/2 所以结果为{(c,1}.
其它节点也类似,然后⽹络信息就变成了下图。
对于v2时,COPRA算法就变成了LPA算法。
与LPA算法⼀样,COPRA可能具有⾼度的不确定性,⼀个顶点的社区通常 由随机选择决定的。然⽽,在真实的⽹络中,COPRA通常⽐
其他测试算法产⽣更好的结果(就模块化⽽⾔)。
算法流程如下 :
评价指标 :扩展Q函数
Dolphin 数据集 D.Lusseau 等⼈使⽤长达 7 年的时间观察新西兰 Doubtful Sound海峡 62 只海豚群体的交流情况⽽得到的海豚社会关
系⽹络。这个⽹络具有 62 个节点,159 条边。节点表⽰海豚,⽽边表⽰海豚间的频繁接触
代码与数据下载
Python代码如下 :
class COPRA:
def __ init__ (self, G, T , v) :
:param G:图本⾝
:param T : 迭代次数T
:param r:满⾜社区次数要求的阈值r
self._G = G
self._ n = len(G.n des(False)) # 节点数 ⽬
self._T = T
self._v = v
def execute(self) :
# 建⽴成员标签记录
# 节点将被分配⾪属度⼤于阈值的社区标签
lablelist = {i:
您可能关注的文档
最近下载
- Q_SY 05674.3-2016 油气管道通信系统通用管理规程 第3部分:光缆传输系统设备运行维护.docx VIP
- 幼儿园中班科学《神奇的纸巾》PPT课件.pptx VIP
- (81格)舒尔特方格练习题 儿童专注力训练(共25份,每日一练).docx VIP
- 2026年渤海船舶职业学院单招《数学》模拟题库及1套完整答案详解.docx VIP
- 小学数学巧算24点专项练习题(每日一练,共20份).docx VIP
- (81格)舒尔特方格练习题 儿童专注力训练(共15份,每日一练).docx VIP
- 近三年贵州中考数学真题试题2025.docx VIP
- (81格)舒尔特方格练习题 儿童专注力训练(共14份 ,每日一练).docx VIP
- (81格)舒尔特方格练习题 儿童专注力训练(共18份 ,每日一练).docx VIP
- 四川大学映潮科技中国直播电商行业发展趋势报告2023.pdf VIP
原创力文档

文档评论(0)