一、CNM算法

该算法是基于贪婪算法思想的社团结构检测算法,该算法的计算复杂度为O(nlog2^22n),算法代码可以从网上搜到。CNM算法采用堆数据结构计算和更新模块度,具体描述如下:
(1)初始化:初始时假设每个节点就是一个独立的社团,模块度值Q=0,初始的eij_{ij}ij​、ai_ii​计算如下:

初始的模块增量矩阵的元素计算如下:

得到初始的模块度增量矩阵后,就可以得到由它每一行的最大元素构成的最大堆H。
(2)从最大堆中选择最大的Δ\DeltaΔQij_{ij}ij​,合并相应的社团i和j,标记合并后的社团的标号为j,并更新模块度增量矩阵Δ\DeltaΔQij_{ij}ij​,最大堆H和辅助向量ai_ii​。
Δ\DeltaΔQij_{ij}ij​的更新:删除第i行和第i列的元素,更新第j行和第j列的元素,得到:

最大堆H的更新:更新最大堆中相应的行和列的最大元素。
辅助向量ai_ii​的更新:aj,_j^,j,​=ai_ii​+aj_jj​,ai,_i^,i,​=0。记录合并以后的Q=Q+Δ\DeltaΔQij_{ij}ij​。
(3)重复步骤(2)直到网络中所有节点都归到一个社团内。
当模块度增量矩阵中最大的元素由正变负时就可以停止合并,并认为此时的结果就是网络的社团结构。

二、层次化社团检测

大规模实际网络中的节点往往具有不同层次的组织结构,大社团内部可能含有较小规模的社团,较小规模社团内部可能又包含更小规模的一些社团,如下图所示:

基于模块度的概念人们提出了一种能够用于加权网络的层次化社团结构的凝聚算法,简称BGLL算法,算法分为两个阶段:
(1)初始时假设每个节点都是一个独立的社团。对任意相邻的节点i和节点j,计算将节点i加入其邻居节点j所在的社团(记为社团C)时对应的模块度增量Δ\DeltaΔQ:

其中si,in_{i,in}i,in​是节点i与社团C内其它节点所有连边的权重和。
计算节点i与所有邻居节点的模块度增量,然后选出其中最大的一个。当该值为正时,把节点i加入相应的邻居节点所在的社团,否则,节点i留在原社团中。这种社团合并过程重复进行,直到不在出现合并现象,这样就划分出了第一层社团。
(2)构造一个新网络,其中的节点是前一阶段划分出的社团,节点之间的连边权重是两个社团之间所有连边的权重和。然后再利用(1)中的方法对新网络进行社团划分,得到第二层社团结构,以此类推,直到不能划分出更高一层的社团结构为止。

三、多片网络社团检测

1、定义

模块度的概念可以推广同于随时间演化的动态网络、具有多种连接形式的多元网络以及具有不同尺度社团结构的过尺度网络。一种统一的处理办法就是把这些网络表示为如下图所示的多片网络。其中,同一片上的节点之间的连接用实线表示,位于不同片的同一个节点之间用虚线连接。

根据片与片的关系,可以把多篇网络分为两类:
(1)各片之间有先后次序关系的多片网络,典型例子包括随时间演化的组织内部成员之间的关系网络。
(2)各片之间并无先后次序关系的多片网络。典型例子包括一群个体之间基于不同的关系类型定义而得到的不同的关系网络。

2、多片加权网络的模块度公式

第p片上节点i与节点j之间的连接权重记为wijp_{ijp}ijp​,第p片网络上的节点i与第q片网络上的节点i之间的连接的权重记为cipq_{ipq}ipq​。定义第p片上的节点i的三种强度如下:
片上强度:

片间强度:

总强度:

第p片上所有节点的强度之和记为Wρ_\rhoρ​=∑i\sum_i∑i​sip_{ip}ip​,所有片上所有节点的总强度之和记为:

由上可得,多片加权网络的模块度公式如下:

其中λp\lambda_pλp​是用来控制各片网络内社团划分规模和数量的分辨率系数。理论上说,方括号中的第二项也可以添加一个表示片间耦合的分辨路参数因子,但是这个参数可以包含到片间节点的连边权重cipq_{ipq}ipq​的取值中,通常取值为0(没有连接)或者取为ω\omegaω>0。

四、空间网络社团检测

为了更有效的研究空间网络的社团结构,我们再看以下模块度的原始定义:

其中pij_{ij}ij​是零模型中节点i和节点j之间连边数的期望值,并且对于通常选取的保持度序列不变的配置模型有:

为了考虑空间的影响,可以把上式修改为:

其中Ni_ii​是度量节点i的重要性,dij_{ij}ij​是节点i和节点j之间的物理距离。由于相隔一定距离的节点之间的总的权值应保持不变,即有

因此,障碍函数具有如下形式:

基于模块度的社团检测算法相关推荐

  1. 图算法(十三):Louvain算法【适用场景:用于社团发掘、层次化聚类等场景】【基于模块度的社区发现算法,其优化目标是最大化整个社区网络的模块度】

    一.概述 Louvain算法是基于模块度的社区发现算法,该算法在效率和效果上都表现较好,并且能够发现层次性的社区结构,其优化目标是最大化整个社区网络的模块度. 适用场景:Louvain算法适用于社团发 ...

  2. SynchroTrap:基于相似度的异常检测算法

    SynchroTrap简介 什么是SynchroTrap 顾名思义,SynchroTrap即在同步情况下的欺诈.黑产通过控制大量的账号,需要在有限的时间里获取最大的利益,那不可避免的就会产生多个黑产账 ...

  3. 除了基于模块度之外的其它社团检测算法

    一.模块度的局限性 (1)判断网络是否具有较强的社团结构一种方法是把一个给定网络与该网络相应的随机化模型做对比.通常做法是通过随机重连方式生成许多具有相同度序列的随机化网络,并计算这些网络的模块度的均 ...

  4. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  5. 基于深度学习的目标检测算法综述(一)

    基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述(二) 基于深度学习的目标检测算法综述(三) 本文内容原创,作者:美图云视觉技术部 检测团队,转载请注明出处 目标检测(Object ...

  6. 4种基于像素分割的文本检测算法

    摘要:文本检测是文本读取识别的第一步,对后续的文本识别有着重大的影响.一般场景下,可以通过对通用目标检测算法进行配置修改,来实现对文本行的检测定位.本文主要介绍基于像素分割的文本检测算法. 本文分享自 ...

  7. 学习笔记之——基于深度学习的目标检测算法

    国庆假期闲来无事~又正好打算入门基于深度学习的视觉检测领域,就利用这个时间来写一份学习的博文~本博文主要是本人的学习笔记与调研报告(不涉及商业用途),博文的部分来自我团队的几位成员的调研报告(由于隐私 ...

  8. 论文研究 | 基于机器视觉的 PCB 缺陷检测算法研究现状及展望

    前面分享了机器视觉在汽车行业与交通行业的应用,其实机器视觉在工业上的应用是最广泛也是最具挑战性的,其中PCB板缺陷检测一直是机器视觉待攻克的难题.印刷电路板(PCB)是电子零件的基板,需求量极大,承载 ...

  9. 【积】louvain社团检测算法(python)代码图片双解(一)

    louvain社团检测算法(python) 这里写目录标题 louvain社团检测算法(python) 壹.完整代码 贰.分步解释 1.为网络中的每个节点分配一个社团: 2. 算法初始化 3. 第一阶 ...

最新文章

  1. 用 Flask 来写个轻博客 (37) — 在 Github 上为第一阶段的版本打 Tag
  2. java 内部类泛型,java – 使用泛型强制转换为内部类
  3. java foreach用法_Java十大简单性能优化
  4. android碎片按钮,Android 碎片(Fragment)
  5. CO-类的本质、description方法
  6. new和delete底层解析
  7. 4路组相连cache设计_Cache组织方式
  8. CentOS 6下搭建Apache+MySQL+PHP+SSL
  9. java gc的特性_Java12新特性 -- 可中断的G1 Mixed GC
  10. 操作系统锁的实现方法有哪几种_一文带你彻底了解同步和锁的本质
  11. insert转update工具_mysql binlog 分析工具
  12. ACR122U-A9|ACR1251|ACM1252系列NFC读写器读卡器PCSC Tool测试工具使用步骤说明
  13. 批量修改联系人头像_视频号pr批量剪辑0基础实操课,pr批量处理伪原创一分钟一个视频【共2节】...
  14. 等保测评--管理机构安全(ORS)
  15. linux udp 端口 抓包,Linux系统-tcpdump常用抓包命令
  16. 麦吉尔大学计算机工程的世界排名,「麦吉尔大学」2021qs世界排名_申请条件 - 言顶留学...
  17. 面试题之消息中间件(MQ与RabbitMQ)
  18. 听打测试打字速度软件,易捷听打练习测速助手
  19. XyplayerX4.0 影视解析源码+解析接口+安装步骤
  20. 反转链表-就地逆置法

热门文章

  1. 二、CSS知识总结(上篇)
  2. html不读取缓存,如何让前端浏览器不进行缓存
  3. 异配图神经网络小结:突破同配性,拥抱异配性
  4. NLP高阶实战必读:一文走遍完整自然语言处理流程
  5. CVPR 2019 | 无监督领域特定单图像去模糊
  6. Self-Attention GAN 中的 self-attention 机制
  7. 图像分割综述:FCN、U-Net、PSPNet、DeepLab
  8. python 逗号作用 语句间_Python中逗号的三种作用
  9. android的线程管理器,[Android开源]:一款安全、轻巧、简单的线程池管理器EasyThread...
  10. 把度分秒的经纬度转换成十进制的经纬度的工具类