如何在使用邻接矩阵表示的大型网络中找到桥梁(社区连接节点)

2024-04-10

我有大约 10K 到 100K 个节点的网络,这些节点都已连接。这些节点通常被分组为社区集群,这些社区集群之间通过许多边紧密相连,并且存在集线器等。在社区之间存在具有一些边的节点bridging / 连接社区在一起。这些数据集位于邻接矩阵中

我尝试过谱聚类(丁等 2001 http://www.cc.gatech.edu/~mihail/D.8802readings/kdd3a.pdf)但它在大型数据集上确实很慢,并且当存在很多模糊性时似乎会停止工作(桥接器不是通往另一个集群的唯一桥接路线 - 其他社区可以充当替代代理路线)。

我尝试过一些方法martelot http://www.elemartelot.org/index.php/programming/cd-code例如用于模块化优化的纽曼算法,但没有在该工作中纳入稳定性优化函数(这可能是至关重要的吗?)。在由随机图(ER 图)创建簇的合成数据集上,这些方法有效,但在存在嵌套层次结构的真实数据集上,结果是分散的。不过,使用独立的可视化应用程序/工具,桥梁是显而易见的。

您会推荐/建议尝试哪些方法?我正在使用 MATLAB。


你到底想做什么?检测社区或它们之间的桥梁?这是两个不同的问题。一旦有了社区,识别连接两个不同社区的节点的边就足够简单了。所以,我猜你想检测社区。

实际上有数千种方法用于此目的,其中一些是在 Matlab 中实现的,例如您引用的方法,或者广义Louvain算法 http://netwiki.amath.unc.edu/GenLouvain/GenLouvain(也是基于模块化优化)。然而,它们中的大多数都可以作为 C 或 C++ 程序使用,例如InfoMap http://www.tp.umu.se/~rosvall/code.html(基于数据压缩范例),WalkTrap http://www-rp.lip6.fr/~latapy/PP/walktrap.html(使用基于随机游走的距离进行聚类),马尔可夫簇 http://micans.org/mcl/(模拟一些传播机制),这样的例子不胜枚举……

这些工具或多或少地以不同的方式形式化了社区结构的概念,当应用于同一网络时,可能会导致不同的(估计的)社区结构。当然,不同的社区也意味着不同的桥梁。所以问题是知道如何为您的数据选择合适的方法。你似乎有a priori有关您正在学习的网络的知识,因此您应该使用它来做出选择(而不是编程语言)。例如,即使您没有明确说明,您似乎也在寻找分层社区结构:并非所有工具都能够检测这种结构。同样,如果您认为一个节点可以同时属于多个社区,那么您应该考虑寻找重叠的社区,例如使用CFinder http://www.cfinder.org/(基于派系渗透)。

我建议您看看这篇关于社区检测的精彩评论,您可能会发现一些有趣的信息,让您可以选择一种方法:图中的社区检测 http://arxiv.org/abs/0906.0612。另外,从编程的角度来看,我建议您使用igraph库 http://igraph.sourceforge.net/(适用于 C、R 和 Python):它包含多个标准社区检测工具。您可以在您的数据上尝试它们,看看您会得到什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用邻接矩阵表示的大型网络中找到桥梁(社区连接节点) 的相关文章

  • 求反射角的弧度

    我正在编写一个简单的 Flash 游戏 只是为了学习 Flash 并提高我的数学能力 但我对弧度感到非常困惑 因为这对我来说是新的 到目前为止 我所做的是使用鼠标 单击并释放 使用弧度向该方向射出一个球 现在我想要发生的是 当球撞到墙壁时
  • Java中的字符算术

    在玩的过程中 我遇到了一些对我来说似乎很奇怪的事情 以下不是有效的 Java 代码 char x A x x 1 possible loss of precision 因为其中一个操作数是整数 所以另一个操作数被转换为整数 结果无法分配给字
  • Android:如何获取小数点后的两位数?不想截断值

    如何获取小数点后仅两位数的双精度值 例如 如果 a 190253 80846153846 那么结果值应该像 a 190253 80 尝试 我尝试过这个 public static DecimalFormat twoDForm new Dec
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • matlab矩阵中求子矩阵的通用方法

    我正在寻找一种 好 方法来在更大的矩阵 任意维数 中找到矩阵 模式 Example total rand 3 4 5 sub total 2 3 1 3 3 4 现在我希望这样的事情发生 loc matrixFind total sub 在
  • 为什么在 Javascript 中添加两位小数会产生错误的结果? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 的数学有问题吗 https stackoverflow com questions 588004 is javascripts math broken 为什么 JS 搞砸了这个简
  • 使用 java 执行 Matlab 函数

    我正在编写一个应用程序 它使用 matlab 进行图像处理 然后使用 Java 接口显示结果 由于某些原因 我必须同时使用 Java 和 Matlab 如何在java中使用matlab函数 如何创建和访问界面 MATLAB控制 http m
  • 给定与总和匹配的长度的唯一 3 位数字 (-1,0,1) 序列的数量

    假设您有一个长度为 n 即空格数 的垂直游戏板 你有一个三面骰子 有以下选项 前进一 停留和后退 如果您低于或高于棋盘游戏空间的数量 则该游戏无效 一旦到达棋盘末端 唯一有效的动作就是 停留 给定确切的骰子投掷次数 t 是否可以通过算法计算
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • 通过傅里叶空间填充进行插值

    我最近尝试在 matlab 上实现一个在傅立叶域中使用零填充的插值方法的简单示例 但我无法正常工作 我总是有一个小的频移 在傅里叶空间中几乎不可见 但它在时空上产生了巨大的误差 由于傅里叶空间中的零填充似乎是一种常见 且快速 的插值方法 因
  • Bellman-Ford 算法检测什么?负重还是负循环?

    如果给定一个图 现在我们要从源头计算最短路径 现在 如果一条边具有负权重 但在到达目的地时有边到后边返回到该边 我的意思是如果没有循环 那么我们就没有负循环 但是here http en wikipedia org wiki Bellman
  • Python 小数.InvalidOperation 错误

    当我运行这样的东西时 我总是收到此错误 from decimal import getcontext prec 30 b 2 3 Decimal b Error Traceback most recent call last File Te
  • 按度数在圆上找到一个点?

    假设我们有一个 100x100 坐标系 如下所示 0 0 是它的左上角 50 50 是它的中心点 100 100 是它的右下角 等等 现在我们需要从中心向外画一条线 我们知道线的角度 但需要计算其终点的坐标 您认为最好的方法是什么 例如 如
  • 如何使用 Ansible when 条件在文件中搜索字符串

    我有一个变量中用 n 分隔的搜索字符串列表listofips 我想在文件中搜索该字符串hello csv在我的下面playbook dir 我可能遇到一些语法问题 我不确定 但下面是我尝试过的 set fact listofips 10 0
  • 如何通用地减少子集平均值的计算?

    Edit 由于似乎没有人阅读此链接的原始问题 因此让我在这里介绍一下它的概要 正如其他人所问的 最初的问题是 给定大量值 总和将超过数据类型的值Double那么如何计算这些值的平均值呢 有几个答案说要按集合计算 比如取50个和50个数字 计
  • 在 MATLAB 中定义其他中缀运算符

    有没有办法在 MATLAB 中定义额外的中缀运算符 具体来说 我想定义两个中缀运算符 gt and lt gt 这些符号是理想的 但如果需要 它可以是单个字符 它调用函数implies and iff以同样的方式 calls and and
  • 使用数学符号注释 Adob​​e Reader PDF

    我阅读的许多数学教科书和其他文献都是 PDF 格式 因此我经常使用 Adob e Reader 注释工具对它们进行注释 我确实找到了一个有用的指南 http cjasn asnjournals org site misc annotatin
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运

随机推荐

  • 获取数据包中的所有层

    如何获取 scapy 中所有图层的列表 例如 Ether IP UDP DNS or Ether IP TCP HTTP 我唯一能想到的就是做一个packet summary 并解析输出 这看起来很粗糙 我认为应该有一个内置的方法 但在文档
  • 静态库在 iOS 模拟器上出现错误并在 iOS 设备上运行

    目前我正在开发一个iOS应用程序 iOS 6 我需要在其中实现一个静态库 我使用这个成功实现了静态库tutorial http www icodeblog com 2011 04 07 creating static libraries f
  • 使用 espresso 的 testUI (Jenkins)

    该应用程序正在本地通过 espresso 测试 我的意思是直接到设备和 genymotion 模拟器 当我使用 Jenkins 构建应用程序的映像时 浓缩咖啡测试未成功 我收到此错误 JENKINS java lang RuntimeExc
  • 仅颤动具有左上角和右上角边框的顶部边框

    我只需要向小部件 最好是容器 卡片 添加具有左上 右上边框半径的顶部边框阴影 我不需要左 右 下边框 请看下图 我尝试使用如下容器 Container child buildRemaining context decoration BoxD
  • Postman 中的“传输开始”是什么意思?

    我试图弄清楚为什么 API 需要很长时间才能处理我的请求 并在 Postman 中发现了这一点 传输开始是什么意思 https community postman com t how to interpret time details in
  • 如何在jquery-mobile/phonegap的$(document).ready()/onDeviceReady()上加载脚本[重复]

    这个问题在这里已经有答案了 我正在使用 PhoneGap 和 jQuery Mobile 开发一个应用程序 现在 当页面加载时 我想加载一个script js file 基本上onDeviceReady or document ready
  • android studio 2.2如何在没有android-apt插件的情况下应用dagger2

    我的项目 build gradle buildscript repositories jcenter dependencies classpath com android tools build gradle 2 2 0 alpha3 cl
  • 对(可能的)Android 内存泄漏一无所知

    我一直面临着一些烦人的事情OutOfMemoryErrors 即使在确保我的所有位图都正确缩放等之后 事实上 这个问题似乎与位图根本无关 但我可能是错的 出于测试和错误隔离的目的 我一直使用导航抽屉 不使用后退按钮 在两个活动 让我们称之为
  • 如何在 React 中将 select 元素与 prop 双向绑定

    在反应中创建选择元素的批准方法是什么 它与包含组件的选择的道具有两种方式绑定 默认选择应该是 prop 的当前属性 可以生成 因为该值是任意的 并且在选择时 prop 属性应该反映选择 此外 应该可以将值直接写入选择字段 我将选项添加到状态
  • 如何检测正在运行的 MSI 安装 [重复]

    这个问题在这里已经有答案了 我正在寻找一种方法来检测 Windows Installer 安装是否已在进行中 到目前为止我发现的是 检查注册表项 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows C
  • 通配符证书对 mydomain.com 无效

    我创建了通配符证书来支持我的网站域和子域 新证书适用于我的子域 例如 www mydomain com sub mydomain com 但是当我尝试访问 mydomain com 时 我收到证书警告 该证书仅对 mydomain com
  • 葡萄酒规格文件

    我有一个名为的 Windows DLLmorag dll包含函数 foo 和 bar 我还有一个名为的 Linux SOmorag so包含 foo 和 bar 的 Linux 实现 每个平台上的参数相同 我有一个可以加载的 Windows
  • 来自子进程的大数据块的 pexpect 超时

    我正在使用 pexpect 调用另一个提示输入 raw input 的 python 脚本 py27 我试图围绕这个脚本构建一个 GUI 包装器而不修改它 我遇到的问题是 我调用的脚本在下一个命令提示符之前执行时返回了大量数据 例如 10K
  • 如何在集成测试中使用 Propagation.REQUIRES_NEW 回滚嵌套事务

    我对扩展以下基类的各种服务进行了几个集成测试 ContextConfiguration locations classpath applicationContext test xml TransactionConfiguration tra
  • 在 Firebase 中对数据进行排序

    我正在使用 Firebase listview 如下所示 它的工作方式就像一个魅力 但问题是它在我的 listview lv 末尾显示子项 Posts 中最后按下的键 我希望最后按下的键最重要的是显示 或者我是否可以按日期对其进行排序 qu
  • MS Access SQL,更改数据类型

    当尝试在 Access 的设计模式下将数据类型从文本更改为数字 使用接近 2 GB 的数据库 时 我不断收到 磁盘空间或内存不足 错误 因此我找到了一种解决方法 基本上创建一个新列 将数据类型设置为数字 复制旧列内容 删除旧列并将新列重命名
  • 给定源顶点,查找有向图中具有环路的所有路径

    我无法解决这个问题 我必须找到所有simple从源顶点开始的路径s含有一个simple有向图中的循环 即不允许重复 当然除了循环在路径上连接回的单个重复顶点 我知道如何使用 DFS 访问来查找图形是否有循环 但我找不到一种方法来使用它来查找
  • 如何正确地将React组件存储在单独的文件中并导入React?

    我已经完成了一些 React 教程的介绍 并尝试将迄今为止的一些知识运用起来 我已经成功地在 a 中创建了一些组件
  • 如何获取UISlider拇指图像的中心

    我正在创建一个自定义UISlider测试一些界面创意 主要是基于使拇指图像更大 我找到了如何做到这一点like so UIImage thumb UIImage imageNamed newThumbImage 64px png self
  • 如何在使用邻接矩阵表示的大型网络中找到桥梁(社区连接节点)

    我有大约 10K 到 100K 个节点的网络 这些节点都已连接 这些节点通常被分组为社区集群 这些社区集群之间通过许多边紧密相连 并且存在集线器等 在社区之间存在具有一些边的节点bridging 连接社区在一起 这些数据集位于邻接矩阵中 我