利用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算法进行社区发现相关推荐

  1. 【机器学习】聚类算法、社区发现

    目录 前言 聚类和社区发现 社区发现 聚类算法 聚类-评估指标 社区发现-模块度 前言 最近方向是团案挖掘,关于聚类算法和社区发现,其实之前不怎么了解,最近得补补了. 聚类和社区发现 首先要先明白这两 ...

  2. fastunfolding算法_社区发现算法综述—part1

    目前我能在arxiv上找到的最新的关于社区发现算法系列的综述文了. 正文从这里开始: 2.2 社区发现 现代网络在规模.多样性和复杂性上呈指数增长. 由于网络的变化,各种各样呈现出网络结构的不同类型的 ...

  3. 社区发现算法 python_社区发现(Community Detection)算法(转)

    作者: peghoty 社区发现(Community Detection)算法用来发现网络中的社区结构,也可以看做是一种聚类算法. 以下是我的一个 PPT 报告,分享给大家. 从上述定义可以看出:社区 ...

  4. 基于BAS算法实现复杂网络社区发现问题——附python代码

    基于智能优化算法的复杂网络社区发现问题 第一章 基于天牛须算法求解复杂网络社区发现问题 文章目录 基于智能优化算法的复杂网络社区发现问题 前言 一.基本天牛须算法 二.关于社区发现 基本问题 总结 前 ...

  5. 社会网络中基于标签传播的社区发现新算法

    社会网络中基于标签传播的社区发现新算法 文章发表时间 :2012年3月 1. 本文贡献 提出了基于标签影响值的社区发现发算法,在接近线性的时间复杂度下,选取一个小的顶点集合作为种子集进行传播 综合考虑 ...

  6. (深度学习社区发现综述)A Comprehensive Survey on Community Detection with Deep Learning

    论文地址 推荐直接看原文. 译文 深度学习分类框架,包括基于深度神经网络.深度非负矩阵分解和深度稀疏滤波的深度学习模型,并进一步将深度神经网络模型细分为卷积网络,图注意网络,生成对抗网络和自编码器. ...

  7. 论文翻译 - 深度学习社区发现综述 A Comprehensive Survey on Community Detection with Deep Learning

    为大家介绍一篇「深度学习」在社区发现(图聚类/图划分)方面应用的最新综述论文. 作者:Xing Su 原文链接:https://arxiv.org/abs/2105.12584 Github链接:ht ...

  8. 文献记录(part80)--基于平均互信息的最优社区发现方法

    学习笔记,仅供参考,有错必纠 关键词:AMI-COPRA 算法 ;AMI-GN 算法 ;平均互信息 ;AMI 方法 ;社区发现; 基于平均互信息的最优社区发现方法 摘要 本文提出一种基于平均互信息的最 ...

  9. infomap最全面易懂的解释--最小熵原理:“层层递进”之社区发现与聚类

    让我们不厌其烦地回顾一下:最小熵原理是一个无监督学习的原理,"熵"就是学习成本,而降低学习成本是我们的不懈追求,所以通过"最小化学习成本"就能够无监督地学习出很 ...

最新文章

  1. SQL语言之组函数(Oracle)
  2. SpringMVC-Helloworld 的归纳理解
  3. oracle查询orapw文件,oracle学习笔记《一》
  4. ASP.NET Core和json请求这样用真简单,axios、微信小程序得救了
  5. TCP VS UDP
  6. 京东推荐算法精排技术实践
  7. Python-将一个列表的数据复制到另一个列表中
  8. 课程思政与c语言程序设计,C语言程序设计课程思政教学改革教学设计.doc
  9. matlab mac 更改语言,MAC让Matlab编辑器显示中文的方法
  10. numpy矢量化运算
  11. C语言设计模式——简单工厂模式
  12. 【ShaderLab学习】AlphaTest AlphaBlend理解[1]
  13. Linux 下的zip,rar
  14. 只要五分钟,让你成功接入Twitter的第三方登录
  15. Springboot AOP Aspect 拦截中 获取HttpServletResponse response
  16. python 幸运数代码
  17. 快消品企业如何逆境中求胜
  18. 单总线是什么以及特点、协议 、使用方法
  19. 使用GPS坐标来计算距离和方位角
  20. 升压型直流开关电源基本原理

热门文章

  1. 2019、2020、2021年技术知识巩固记录
  2. socket read方法阻塞解决方法
  3. JVM介绍与知识脉络梳理
  4. 洋哥有哪些送给20多岁年轻人的建议?
  5. 医疗管理系统-体检预约
  6. 【量化投资】策略一(聚宽)
  7. 2021-03-18-8400
  8. Kotlin中协程理解与实战(一)
  9. 判断一个数是否为Sky数
  10. 岩板铺地好吗_岩板到底好不好?从材质和施工的角度看