利用GN算法进行社区发现
利用GN算法进行社区发现
- 算法原理
- 评价方法
- 实验结果
- 一种高效实现
算法原理
这个算法是这样做的。根据边的重要性将边一条一条的删去,那么随着边的删除,那些节点也会慢慢变成独立的子连通图。如下图:
所以,怎么来确定边的重要性了?一种估量方式就是Edge betweenness,它被定义为节点对之间的最短路径经过该条边的节点对数。举个栗子,假设图1是原始网络,节点旁边是节点编号;图2中边旁边是每条边的Edge betweenness,如边(3,4)的Edge betweenness是12,即共有{{1,4},{1,5},{1,6},{1,7},{2,4},{2,5},{2,6},{2,7},{3,4},{3,5},{3,6},{3,7}}这12对节点对的最短路径经过边(3,4)。
那么就可以算每条边的Edge betweenness了,然后排序取最大值对应的那条边删除,即图2。接着继续计算Edge betweenness,再删… (图3,4)。完整的算法逻辑如下:
1.计算所有边的betweenness;
2.移去betweenness最高的那条边;
3.重新计算剩余边的betweenness;
4.重复步骤2和3,直到没有边可被移去。
去看原文
评价方法
按上面的方法确实可以划分不同的社区(团体),但是会出现很多中划分方式,那么哪一种才是最好的呢?如上图,画出了图3和图4两种划分的团体。因此需要一个评估方法来评价哪种划分方式更合理。
作者是这样做的:
修正:eii是每个社区的边数量(双向图),2m也为双向原始图的边的总数,从所有的划分方式中选择Q值最大的方式作为最终的社区划分结果。
实验结果
一种高效实现
FN算法实现
FN算法的一种高效实现
原文有源码,更多内容,敬请关注地学分析与算法。
利用GN算法进行社区发现相关推荐
- 【机器学习】聚类算法、社区发现
目录 前言 聚类和社区发现 社区发现 聚类算法 聚类-评估指标 社区发现-模块度 前言 最近方向是团案挖掘,关于聚类算法和社区发现,其实之前不怎么了解,最近得补补了. 聚类和社区发现 首先要先明白这两 ...
- fastunfolding算法_社区发现算法综述—part1
目前我能在arxiv上找到的最新的关于社区发现算法系列的综述文了. 正文从这里开始: 2.2 社区发现 现代网络在规模.多样性和复杂性上呈指数增长. 由于网络的变化,各种各样呈现出网络结构的不同类型的 ...
- 社区发现算法 python_社区发现(Community Detection)算法(转)
作者: peghoty 社区发现(Community Detection)算法用来发现网络中的社区结构,也可以看做是一种聚类算法. 以下是我的一个 PPT 报告,分享给大家. 从上述定义可以看出:社区 ...
- 基于BAS算法实现复杂网络社区发现问题——附python代码
基于智能优化算法的复杂网络社区发现问题 第一章 基于天牛须算法求解复杂网络社区发现问题 文章目录 基于智能优化算法的复杂网络社区发现问题 前言 一.基本天牛须算法 二.关于社区发现 基本问题 总结 前 ...
- 社会网络中基于标签传播的社区发现新算法
社会网络中基于标签传播的社区发现新算法 文章发表时间 :2012年3月 1. 本文贡献 提出了基于标签影响值的社区发现发算法,在接近线性的时间复杂度下,选取一个小的顶点集合作为种子集进行传播 综合考虑 ...
- (深度学习社区发现综述)A Comprehensive Survey on Community Detection with Deep Learning
论文地址 推荐直接看原文. 译文 深度学习分类框架,包括基于深度神经网络.深度非负矩阵分解和深度稀疏滤波的深度学习模型,并进一步将深度神经网络模型细分为卷积网络,图注意网络,生成对抗网络和自编码器. ...
- 论文翻译 - 深度学习社区发现综述 A Comprehensive Survey on Community Detection with Deep Learning
为大家介绍一篇「深度学习」在社区发现(图聚类/图划分)方面应用的最新综述论文. 作者:Xing Su 原文链接:https://arxiv.org/abs/2105.12584 Github链接:ht ...
- 文献记录(part80)--基于平均互信息的最优社区发现方法
学习笔记,仅供参考,有错必纠 关键词:AMI-COPRA 算法 ;AMI-GN 算法 ;平均互信息 ;AMI 方法 ;社区发现; 基于平均互信息的最优社区发现方法 摘要 本文提出一种基于平均互信息的最 ...
- infomap最全面易懂的解释--最小熵原理:“层层递进”之社区发现与聚类
让我们不厌其烦地回顾一下:最小熵原理是一个无监督学习的原理,"熵"就是学习成本,而降低学习成本是我们的不懈追求,所以通过"最小化学习成本"就能够无监督地学习出很 ...
最新文章
- SQL语言之组函数(Oracle)
- SpringMVC-Helloworld 的归纳理解
- oracle查询orapw文件,oracle学习笔记《一》
- ASP.NET Core和json请求这样用真简单,axios、微信小程序得救了
- TCP VS UDP
- 京东推荐算法精排技术实践
- Python-将一个列表的数据复制到另一个列表中
- 课程思政与c语言程序设计,C语言程序设计课程思政教学改革教学设计.doc
- matlab mac 更改语言,MAC让Matlab编辑器显示中文的方法
- numpy矢量化运算
- C语言设计模式——简单工厂模式
- 【ShaderLab学习】AlphaTest AlphaBlend理解[1]
- Linux 下的zip,rar
- 只要五分钟,让你成功接入Twitter的第三方登录
- Springboot AOP Aspect 拦截中 获取HttpServletResponse response
- python 幸运数代码
- 快消品企业如何逆境中求胜
- 单总线是什么以及特点、协议 、使用方法
- 使用GPS坐标来计算距离和方位角
- 升压型直流开关电源基本原理