重叠社区发现-UEOC算法(unfold and extract overlapping communities)学习笔记

2023-11-10

本文提出了一种基于马尔可夫动力学模型的发现节点共享社区的算法UEOC。在UEOC方法中,为了检测出所有的自然群落,将马尔可夫随机游动方法与一种新的约束策略相结合,该策略基于相应的退火网络[21],用于展开每个群落。然后,利用一个借助电导的截止准则,即一个局部社区适应度函数[22],提取出的社区。如果该配置存在于网络中,这些提取的社区将自然重叠。此外,我们方法的一个优点是UEOC对其唯一参数的选择不敏感,并且不需要预先知道社区结构,比如社区的数量。

算法思想:

(1)选取度最大的节点s,s未被分配到任何社区;

(2)利用结合约束策略的马尔可夫随机游动方法展开节点s的自然群落;

(3)通过基于电导函数的截止准则提取节点s出现的社区;

(4)如果仍有未分配给任何社区的节点,则从(1)重复。

UEOC的核心是如何展开和提取每个节点的自然群落,这直接决定了算法的性能。对于第一个目标,本文提出了一种结合约束策略的马尔可夫随机游走方法,这将使每个社区都清晰可见。针对第二种情况,提出了一种基于电导函数的截止准则,以精确地提取出现的群落。

1.展开社区

假设网络N = (V, E),考虑定义在N上的一个随机过程,其中一个假想代理沿着节点之间的链接自由地从一个节点走到另一个节点。当代理到达一个节点时,它将随机选择一个相邻节点并移动到那里。

假设X = {Xt, t≥0}表示代理职位,和P {Xt = j, 1≤j≤n}的概率表示代理走t步之后到达节点j。对于t > 0,我们有P{Xt | X0, X1,…,Xt-1} = P{Xt | Xt-1}。也就是说,代理的下一个状态完全由前一个状态决定,该状态称为马尔科夫属性。这随机过程是一个离散的马尔可夫链及其状态空间v .此外,Xt是均匀的,因为P {Xt= j | X(t-1) =i}= pij,其中pij是从节点i到节点j的转移概率。用N的邻接矩阵表示,A = (a_{ij})_{n\times n},Pij被定义为:

让我们考虑上面的马尔可夫动力学模型,给定代理的特定源节点s,让\alpha _{s}^{l}\left ( i \right )表示该代理从节点s开始并最终在l步内到达任意目的节点i的概率。\alpha _{s}^{l}\left ( i \right )的值,可以被下述公式迭代估计  ,\alpha _{s}^{l}\left ( i \right )称为l步转移概率分布(向量)。注意,从源节点s到达所有节点的概率值之和将是1,即 ,当步骤数l等于0时,这意味着代理仍然在节点s上,那么对于每个i≠s 等于1,等于0。

       由于一个社区内的链接密度通常比社区之间的链接密度高得多,当l的值合适时,从源节点s开始的随机游走代理应该有更多的路径可供选择,以在l步内到达其自己社区中的节点。相反,代理到达其相关社区之外的节点的概率应该低得多。换句话说,代理将很难通过这些“瓶颈”链接逃离其现有社区,并到达其他社区。因此,一般来说,当步数l合适时,向量应大致满足条件  在这个等式中,Cs表示节点s所在的社区。然而,尽管上述马尔可夫方法很好地适用于一些简单的网络,例如纽曼模型中的基准图和一些小的真实网络,但是它对于一些复杂的网络,例如兰奇尼蒂模型中的基准图和一些大规模真实网络并不那么有效。此外,该方法对步数l的选择非常敏感,步数l对其性能有着至关重要的影响。

        许多内部社区节点的关联概率值小于外部社区节点的关联概率值,因此无法展现清晰的社区。这也意味着对这个相对复杂的网络来说不太符合条件

         为了克服这些缺点,提出了一种结合约束策略的马尔可夫随机游走方法。我们方法的思想产生于这样一种直觉,即具有社区结构的网络上的马尔可夫随机过程不同于其相应的没有社区的退火网络上的过程。考虑到这一点,在每个步骤中,代理从特定源节点s开始并到达每个目的节点I的概率将被定义为在社区网络N上计算的与其相关联的概率和在相应的退火网络r上计算的与其相关联的概率之间的差值。由于R没有群落结构,所以网络N中一个群落内的链接密度要比R中高得多,而N中群落间的链接密度要比R中低得多。因此,在退火网络带来的约束下,该代理将被阻止逃离其关联的社区并到达该社区之外的节点。这也将导致,每个社区内节点的计算概率值将较高,而每个外部节点的计算概率值将相对较低,并且在大多数情况下甚至等于0。

 

 

 

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

重叠社区发现-UEOC算法(unfold and extract overlapping communities)学习笔记 的相关文章

  • AI无敌?人类的反击静悄悄。

    前几年 alphago横扫围棋棋坛 人类棋手不得不接受现实 那么 按照AI的进步速度 我们当时也提过火车站台的比喻 呼啸而过 望尘莫及 从此 人类棋手输给AI不再是新闻 而且随着相关论文的发布和国内外各个技术团队的跟进 超越顶尖人类棋手的围
  • Python_单下划线和双下划线

    属性 x 公有变量 x 私有变量 在py中不能完全做到私有 只能说 伪私有 只是一种良好的书写习惯 不希望被其他类或者子类访问 x 后置下划线 避免与py中的关键字冲突 方法 fun 私有方法 无法在外部直接访问 只能允许本身访问 子类也不

随机推荐

  • 目的:ubuntu配置使用opengl - 初探-创建一个空窗口

    目的 ubuntu配置使用openGL 初探 创建一个空窗口 环境 系统 Ubuntu18 04 环境 g 步骤 Ubuntu下使用openGL 搭建配置环境并测试窗口 1 openGL库 需要单独安装 由于本机是vmware虚拟机Ubun
  • 关于CittyEngine处于加载界面死机的解决方法

    1 CityEngine License无法打开 与已安装的ArcGISAdministrator冲突 在安装后破解是打开CityEngine License警告 试图执行不支持的操作 提示 CityEngine可以独立安装 并不一定要安装
  • 使用vector对数据进行排序(动态排序)

    排序思路 头函数 algorithm 中有一个函数是 upper bound start end value 它可以返回区间 start end 中第一个大于等于 value 的值的位置 再加上 vector 中自带的插入函数 insert
  • 电脑安装了lattice diamond后,再安装lattice radiant,若出现lattice radiant license checkout failed如何解决?

    我电脑安装了lattice diamond 再安装lattice radiant 设置完环境变量后 发现lattice radiant仍然会报错 如下图 检查环境变量和license都并没有什么错误 但是就是一直会出现以下情况 后面如何解决
  • UML 类图

    1 概述 目录 1 概述 1 1 UML概念 1 2 类图的概念 2 类的表示方式 2 1 普通类 2 2 抽象类 2 3 接口 3 类与类关系的表示 3 1 关联关系 Association 3 1 1 单向关联 3 1 2 双向关联 3
  • 【小程序】如何实现从底部弹出对话框

    前面两篇两篇文章介绍了如何在小程序中实现上下滑动效果以及如何用 Canvas 绘制一张图片 这一篇作为前两篇的延续 介绍如何从底部弹出一个对话框 相比而言 底部弹出对话框的功能比较通用 因此非常适合定义成组件 component 先来看一下
  • 【学习记录贴】Vue+Element-UI富文本编辑框及插入图片

    本贴会涉及以下几个技术点 Vue Element UI实现富文本编辑框 以及文本编辑框中事件拦截 插入图片 Element UI限制上传图片后 隐藏上传按钮 官网上是没有这个方法的 可以通过上传到指定张数后隐藏上传按钮来实现 form表单验
  • MyBatis-Plus删除操作知识点总结

    系列文章目录 Mybatis Plus知识点 MyBatis MyBatis Plus的基础运用 心态还需努力呀的博客 CSDN博客 Mybatis Plus SpringBoot结合运用 心态还需努力呀的博客 CSDN博客MyBaits
  • VScode自由切换输出结果窗口,输出到“终端”和“调试控制台”

    Author xiaozhu sai 软件 Visual Studio Code 点击右边的齿轮按钮 打开launch json文件 注意 console 属性即可 具体见一下代码 使用 IntelliSense 了解相关属性 悬停以查看现
  • C++ sort函数自定义排序规则

    在使用vector容器时经常要进行排序 使用排序函数sort非常方便 但是之前都是简单调用sort v begin v end 没有自定义排序规则使用sort函数的额第三个参数 下面对sort总一个简单总结 头文件 include
  • 计算机网络第2章(物理层)

    B站视频 计算机网络微课堂 有字幕无背景音乐版 网址 https www bilibili com video BV1c4411d7jb p 61 目录 2 1 物理层的基本概念 2 2 物理层下面的传输媒体 导引型传输媒体 非导引型传输媒
  • Vue弹窗传值

    场景 点击新增后 需要将这个页面的分类Id传到弹窗页面 新增的时候绑定这个分类 步骤 1 列表页面中弹窗标签中绑定 classifyId this classify
  • 演唱会为什么总是抢不到票?用Python做一个自动抢票脚本!想看谁的就看谁的!

    大麦网 是中国综合类现场娱乐票务营销平台 业务覆盖演唱会 话剧 音乐剧 体育赛事等领域 但是因为票数有限 还有黄牛们不能丢了饭碗 所以导致了 很多人都抢不到票 那么 今天带大家用Python来制作一个自动抢票的脚本小程序 文章末尾看运行效果
  • Java 基于文本界面的《员工管理系统》

    一 代码实现 1 设计分析 该管理系统使用了5个包 Package 类似于文件夹 1 bean 包含员工类 Employee 2 main 主程序的入口 3 service 主要是 业务逻辑层 的功能实现 4 util 存放工具类 此处存放
  • 【springmvc系】利用RequestBodyAdviceAdapter做接口鉴权

    需求 有个简单的需求 对于第三方接口我们需要做个简单的鉴权机制 这边使用的是非对称性加密的机制 我们提供三方公钥 他们通过公钥对接口json报文使用加密后的报文请求 我们通过对接收过来的请求某一个加密报文字段来进行RSA解密校验 考虑到日后
  • hashmap原理_HashMap原理jdk7和jdk8的区别

    一 hashMap的jdk1 7和jdk1 8区别 1 实现方式 jdk7中使用数组 链表来实现 jdk8使用的数组 链表 红黑树 2 新节点插入到链表是的插入顺序不同 jdk7插入在头部 jdk8插入在尾部jdk7中 如何在头部插入 看a
  • [Hadoop3.3.1]:Unable to load native hadoop library for your platform

    需求 linux已经启动了hadoop集群 想要在windows中用java对文件进行下载操作 错误提示 找不到winutils exe hadoop dll没有设置原因 Hadoop访问windows本地文件系统 要求Windows上的本
  • SQL Server数据库进阶

    批处理 将多条SQL语句作为一个整体去编译 生成一个执行计划 然后执行 为了将一个脚本分为多个批处理 可使用GO语句 GO语句的特点 GO语句必须自成一行 只有注释可以在同一行上 它使得自脚本的开始部分或者最近一个GO语句以后的所有语句编译
  • elementUI中,实现一个单元格内显示两行数据,并用其中一个数据进行排序。

    最近在公司中 有这样一个需求 表格中 一个单元格里面显示两行数据 并且可以使用其中一行进行排序 其中数据的样式也要实时变动 类似于下图 这样的话 elementUI中自带的prop就不适合了 所以 需要展示两行数据的地方 我们就用插槽来解决
  • 重叠社区发现-UEOC算法(unfold and extract overlapping communities)学习笔记

    本文提出了一种基于马尔可夫动力学模型的发现节点共享社区的算法UEOC 在UEOC方法中 为了检测出所有的自然群落 将马尔可夫随机游动方法与一种新的约束策略相结合 该策略基于相应的退火网络 21 用于展开每个群落 然后 利用一个借助电导的截止