【项目笔记】若干基本社团发现算法介绍

news2025/1/13 7:51:50

两个衡量指标:边介数 & 模块度

边介数计算:

以下用图来自:https://blog.csdn.net/weixin_44704845/article/details/102686597

  1. 选择S为源节点对图搜索,画出S到其他节点的最短路径树
    在这里插入图片描述
    2.给边标数字
    1) 所有邻近叶子结点的那条边标上1
    在这里插入图片描述
    2)再给其他边标上所有最邻近他的边之和+1
    获得S作为源节点时的各边单次边介数
    在这里插入图片描述
    3.然后再换一个节点作为边节点(根?)
    相同方法计算边标数,当遍历完所有节点后,将各边的的单次边介数累计求和,得到的最终该边边介数
    在这里插入图片描述

边介数概念理解

Definition:从源节点S到各节点最短路径中,经过该边的路径数

  • 源节点S到各节点都只有一条最短路径
  • 橙色边单次边介数为2,经过它的最短路径有2条
  • 蓝色边单次边介数为6,经过它的最短路径有6条
    在这里插入图片描述

总结:社团内部的边边介数小,社团之间的边边介数大。

模块度Q:

Q值计算: (社区内部的总边数 / 网络中总边数) - K

  • K是一个期望值
  • K = 将网络设定为随机网络时,同样的社团数量分配,形成的: (社区内部的总边数 / 网络中总边数)

Q值物理含义:网络中:E[社区内部的边的占比 - 在同样的社区结构下任意连接节点的边的占比] (E是求期望)

  • 如果社区内部边的比例不大于任意连接时的期望值(找到的社团还没有随意连接的网络中形成的社团质量好),则Q=0。
  • Q∈[0,1],数值越大,社区结构越明显。实际网络中,该值通常位于0.3-0.7之间。

基于模块度的GN算法

  1. 计算当前网络的边介数和模块度Q值,并存储模块度Q值和当前网络的社团分割情况
  2. 除去边介数最高的边(社团之间的边);
  3. 计算当前网络的模块度Q值,如果此Q值比原来的大,则将现在的Q值和网络中社团分割情况存储更新,否则,进行下一次网络分割;
  4. 所有边分割完毕,返回当前的模块度Q值和社团分割情况

Newman快速算法 (FN算法)

  1. 将网络中的每个顶点设为一个单独社区,
  2. 每次迭代选择产生最大Q值的两个社团合并,直至整个网络融合成一个社团。
  • 整个过程是自底向上的过程
  • 这个过程最终得到一个树图,
  • 树的叶子节点表示网络中的顶点,树的每一层切分对应着网络的某个具体划分
  • 从树图的所有层次划分中选择模块度值最大的划分作为社团划分。

具体实现:

  • 设网络有n个节点,m条边
  • 每一步的社区数目为 r,组成一个 r×r 矩阵 e
  • 矩阵元素eij表示两个社团 i 和 j 中,社团内节点之间连边的数目 占网络中总边数的百分比

(1)初始化网络,开始网络有n 个社区,初始化的eij 和 ai
(2)依次按照∆Q的最大或者最小的方向进行合并有边相连的社区对,并计算合并后的模块度增量∆Q
(3)修改矩阵e
(4)重复执行步骤(2)和(3),直至整个网络合并成一个社区

Louvain 算法

  1. 将每个节点指定到唯一的一个社区
  2. 然后按顺序将节点在这些社区间进行移动
  3. 假设有一节点 i ,它有三个邻居节点 j1, j2, j3,分别尝试将节点 i 移动到 j1, j2, j3 所在的社区,并计算相应的模块度变化值ΔQ
  4. 选择ΔQ最大,将节点 i 移动到相应的社区中去(ΔQ要为正,如果变化值均为负,则节点 i 保持不动)。
  5. 按照贪心ΔQ反复迭代,直到网络中任何节点的移动都不能增大总模块度

COPRA算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/524974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【YOLO系列】--YOLOv4超详细解读/总结(网络结构)

YOLOv4(YOLOv4: Optimal Speed and Accuracy of Object Detection)(原文+解读/总结+翻译) 系列文章: YOLOv1论文解读/总结_yolo论文原文_耿鬼喝椰汁的博客-CSDN博客 YOLOv2论文解读/总结_耿鬼…

软件测试面试至今0 offer,问题到底出在哪儿?

转眼已是四月中旬,求职招聘季也快要结束啦,如果没点真技术 真本事,不了解点职场套路,在今年行情下,找工作可是难上加难。 现在点开微博或者脉脉,只要搜索“招聘”,用“惨不忍睹”来形容也不为过…

【数据结构】经典排序

【数据结构】八大排序 1. 排序的概念和运用1.1 概念1.2 运用 2. 常规的排序算法介绍一. 插入排序1.1 直接插入排序1.2 希尔排序 二. 选择排序2.1 选择排序2.2 堆排序 三. 交换排序3.1 冒泡排序3.2 快速排序3.2.1 Hoare法3.2.2 挖坑法3.2.3 前后指针/左右指针法3.2.4 分治法/递归…

windows11 安装 webassembly,遇到的各种错误

1.最开始是尝试在 虚拟机 centos 7 安装的(因为不想安装vs2015) 但是无奈 各种错误.最终无法解决. 2.尝试在windows安装,吐槽一下官方文档 的安装提示是错误的(太老了) 参考以下文章: https://blog.csdn.net/weixin_45482422/article/details/119459918 https://blog.csdn.…

C++中this指针的特性,存放位置,能否为空?

文章目录 一、this指针的特性二、this指针存在哪里?三、this指针可以为空吗? 一、this指针的特性 我们学习过C知道,成员函数没有直接存放在类而是放在了公共代码区,这样当多个对象调用同一个函数就不需要再创建一个函数成员了。 …

libevent高并发网络编程 - 02_libevent缓冲IO之bufferevent

文章目录 1. 为什么需要缓冲区?2. 水位3. bufferevent常用API3.1 evconnlistener_new_bind()3.2 evconnlistener_free()3.3 bufferevent_socket_new()3.4 bufferevent_enable()3.5 bufferevent_set_timeouts()3.6 bufferevent_setcb()3.7 bufferevent_setwatermark(…

全面解析Linux指令和权限管理

目录 一.指令再讲解1.时间相关的指令2.find等搜索指令与grep指令3.打包和压缩相关的指令4.一些其他指令与热键二.Linux权限1.Linux的权限管理2.文件类型与权限设置3.目录的权限与粘滞位 一.指令再讲解 1.时间相关的指令 date指令: date 用法:date [OPTION]… [FOR…

缓冲区的flip

流和缓冲区都是用来描述数据的。计算机中,数据往往会被抽象成流,然后传输。比如读取一个文件,数据会被抽象成文件流;播放一个视频,视频被抽象成视频流。处理节点为了防止过载,又会使用缓冲区削峰&#xff0…

巴西大神开发的 ARPL 黑群晖DSM系统引导在线编译工具

ARPL 是一款黑群晖系统引导在线编译工具,目前支持最新群晖系统DSM 7.1.1,今天为了折腾升级这个群晖系统DSM 7.1.1浪费了一天的时间,ARPL是巴西人一位大神开发的黑群晖系统引导在线编译工具,使用下来非常的不错,可惜没有…

3网络互联-3.4【实验】【计算机网络】

3网络互联-3.4【实验】【计算机网络】 前言推荐3网络互联3.4 IP分组转发与静态路由实验目的实验内容及实验环境实验原理1.路由器2.路由(Routing)3.IP分组的转发4.路由的构建5.静态路由设计原则 实验过程1.搭建一个仅包含直连路由的网络拓扑,观察路由器的…

时间序列分析

一、移动平均法 1.一次移动平均法 公式: 预测标准误差: 本质:用前N次数据预测t1期的数据 规律:如果实际数据波动较大,N值越大,预测到的数据波动越小 注意:一般不适用于波动较大的数据。用一次移动平均法…

Kafka原理之消费者

一、消费模式 1、pull(拉)模式(kafka采用这种方式) consumer采用从broker中主动拉取数据。 存在问题:如果kafka中没有数据,消费者可能会陷入循环中,一直返回空数据 2、push(推)模式 由broker决定消息发送频率,很难适应所有消费者…

【MySQL】 InnoDB

学习笔记,来源黑马程序员MySQL教程 文章目录 逻辑存储结构架构内存架构磁盘结构后台线程 事务原理概述redo logundo log MVCC基本概念实现原理1、隐藏字段2、undo log3、readview 总结 逻辑存储结构 一个表空间对应一张表一 页 对应B树上一个 节点Trx id&#xff1a…

Git cat命令的用法

cat (全称 concatenate) 命令是 Linux/类 Unix 操作系统中最常用的命令之一。cat 命令允许我们创建单个或多个文件、查看文件内容、连接文件和重定向终端或文件中的输出。 语法: cat [OPTION] [FILE]...1.终端查看一个文件内容 cat file01.txt2.终端查看多个文件…

熵、信息量、条件熵、联合熵、互信息简单介绍

熵、信息量、条件熵、联合熵、互信息简单介绍 近期在看对比学习论文,发现有不少方法使用了互信息这种方式进行约束,故在此整理一下网上查阅到的关于互信息的相关内容。 一、熵、信息量 关于熵的讨论,这个知乎专栏写的挺不错的。 熵在信息论…

【更新日志】填鸭表单TduckPro v5.1 更新

hi,各位Tducker小伙伴。 填鸭表单pro迎来了v5.1版本;本次我们进行了许多的功能新增和优化,能够让我们在日常使用中获得更好的体验。 让我们一起来康康新功能吧。 01 新增Pro功能 新增登录后才能填写表单。 新增表单卡片一键发布。 新增矩…

【C++学习】CC++内存管理

目录 一、C&C内存管理 二、C语言中动态内存管理方式:malloc/calloc/realloc/free 三、C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作符自定义类型 四、operator new与operator delete函数 4.1 operator new与operator delete函数&#x…

【云原生】使用外网Rancher2.5.12在阿里云自建内网K8s 1.20集群

目录 一、目标二、解决方案三、草图四、版本信息五、资源规划六、必要条件七、开始部署1、安装Docker2、安装Rancher3、解析Rancher Server URL域名4、创建K8s集群5、注册K8s集群节点 八、验证 一、目标 在云平台搭建一套高可用的K8s集群 二、解决方案 第一种:使…

横向移动-利用IPC$

环境主机 本次都是在内网自己搭的靶机实验 上线主机:windows2008R2 - 192.168.31.46 需要移动到的主机:windows2012 - 192.168.31.45 实验演示 1.确定域控 通过命令net time /domain,发现存在域 这里我们通过ping来发现域控的ip,…

UGUI Scroll Rect滚动矩形组件

1、概述 当需要在小区域显示占用大量空间的内容时,可以使用Scroll Rect。滚动矩形提供了滚动浏览此内容的功能。 通常,将Scroll Rect与Mask结合在一起以创建滚动视图,在该视图中,只有Scroll Rect内部的可滚动内容可见。它也可以…