模块度与Louvain社区发现算法】的更多相关文章

Louvain算法是基于模块度的社区发现算法,该算法在效率和效果上都表现较好,并且能够发现层次性的社区结构,其优化目标是最大化整个社区网络的模块度. 模块度(Modularity) 模块度是评估一个社区网络划分好坏的度量方法,它的物理含义是社区内节点的连边数与随机情况下的边数只差,它的取值范围是 [−1/2,1),其定义如下: $$Q = \frac{1}{2m}\sum_{i,j}[A_{ij} - \frac{k_ik_j}{2m}]\delta(c_i,c_j)$$ $$\delta(u,…
1. 社团划分 0x1:社区是什么 在社交网络中,用户相当于每一个点,用户之间通过互相的关注关系构成了整个网络的结构. 在这样的网络中,有的用户之间的连接较为紧密,有的用户之间的连接关系较为稀疏.其中连接较为紧密的部分可以被看成一个社区,其内部的节点之间有较为紧密的连接,而在两个社区间则相对连接较为稀疏. 整个整体的结构被称为社团结构.如下图,红色的黑色的点集呈现出社区的结构, 用红色的点和黑色的点对其进行标注,整个网络被划分成了两个部分,其中,这两个部分的内部连接较为紧密,而这两个社区之间的连…
最近做了一些和gnn相关的工作,经常听到GCN 和 embedding 相关技术,感觉很是困惑,所以写下此博客,对相关知识进行索引和记录: 参考链接: https://www.toutiao.com/a6690680620642730510/ graph embedding 技术学习 如何理解 Graph Convolutional Network(GCN): https://www.zhihu.com/question/54504471/answer/332657604 卷积神经网络的卷积核:…
在做东西的时候用到了社区发现,因此了解了一下有关社区发现的一些问题 1,社区发现算法 (1)SCAN:一种基于密度的社团发现算法 Paper: <SCAN: A Structural Clustering Algorithm for Networks>  Auther: Xiaowei Xu, Nurcan Yuruk, Zhidan Feng, Thomas A. J. Schweiger  Conference: SIGKDD 2007 主要概念: 节点相似度定义为两个节点共同邻居的数目与…
其中部分转载的社区发现SLPA算法文章 一.概念 社区(community)定义:同一社区内的节点与节点之间关系紧密,而社区与社区之间的关系稀疏. 设图G=G(V,E),所谓社区发现是指在图G中确定nc(>=1)个社区C={C1,C2,...,Cnv},使得各社区的顶点集合构成V的一个覆盖. 若任意两个社区的顶点集合的交际均为空,则称C为非重叠社区(disjoint communities);否则称为重叠社区(overlapping communities). 二.SLPA算法思想与流程 SLP…
一.概念 复杂网络:现实生活中各种系统都可以看做成复杂网络,复杂网络构成包括节点和边,节点是网络中的基本组成单元,节点之间的联系或者关系是网络中的边.例如 电力网络:基站代表节点,基站之间是否互通表示边: 社交网络:用户代表节点,用户的关注关系表示边: 万维网络:网页代表节点,网页的链接关系代表边: 交通运输网络,神经网络,经济贸易网络,科学家合作网络等等 社区发现:社区发现在数据挖掘领域有重要的作用,在一个网络中,如果一个团体有共同的爱好或者特征,并紧密联系在一起,那么我们称网络中这个小集体为…
因为在我最近的科研中需要用到分布式的社区检测(也称为图聚类(graph clustering))算法,专门去查找了相关文献对其进行了学习.下面我们就以这篇论文IPDPS2018的文章[1]为例介绍并行社区检测算法. 关于基本的单机/串行社区检测算法,大家可以参考我的另一篇博客<图数据挖掘:社区检测算法(一)>(链接:https://www.cnblogs.com/orion-orion/p/15662253.html).总而言之,目前对于图的簇/社团划分,目前最广泛的测量方法是使用模块性(mo…
最近在研究基于标签传播的社区分类,LabelRank算法基于标签传播和马尔科夫随机游走思路上改装的算法,引用率较高,打算将代码实现,便于加深理解. 这个算法和Label Propagation 算法不同的是计算复杂度较高,对每个标签都确定了概率,但是准确性比Label Propagation算法好. 一.概念 相关概念不再累述,详情见前两篇文章 二.算法思路 首先建立一个标签集合,C={1,2,……n},n是节点的数量.标签概率向量Pi(1*n),Pi(c)=节点i对标签c的概率估计,迭代过程中…
转载请注明出处:http://www.cnblogs.com/bethansy/p/6890972.html 一.已知真实社区划分结果 1.NMI指数,互信息和标准化互信息 具体公式和matlab代码参见博客,Python代码参加,C++代码参见 function MIhat = nmi( A, B ) %NMI Normalized mutual information % http://en.wikipedia.org/wiki/Mutual_information % http://nlp…
作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现网络中的社区结构,也可以看做是一种聚类算法. 博客上看到一篇优秀的介绍社区发现的PPT,转载过来分享:   从上述定义可以看出:社区是一个比较含糊的概念,只给出了一个定性的刻画. 另外需要注意的是,社区是一个子图,包含顶点和边.   下面我们以新浪微博用户对应的网络图为例,来介绍相应的社区发现算法.…
作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现网络中的社区结构,也可以看做是一种聚类算法. 以下是我的一个 PPT 报告,分享给大家. 从上述定义可以看出:社区是一个比较含糊的概念,只给出了一个定性的刻画. 另外需要注意的是,社区是一个子图,包含顶点和边. 下面我们以新浪微博用户对应的网络图为例,来介绍相应的社区发现算法. 这里在相互关注的用户…
社区(community)定义:同一社区内的节点与节点之间关系紧密,而社区与社区之间的关系稀疏. 设图G=G(V,E),所谓社区发现是指在图G中确定nc(>=1)个社区C={C1,C2,...,Cnv},使得各社区的顶点集合构成V的一个覆盖. 若任意两个社区的顶点集合的交际均为空,则称C为非重叠社区(disjoint communities);否则称为重叠社区(overlapping communities). SLPA(Speaker-listener Label Propagation Al…
作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现网络中的社区结构,也可以看做是一种聚类算法. 以下是我的一个 PPT 报告,分享给大家. 从上述定义可以看出:社区是一个比较含糊的概念,只给出了一个定性的刻画. 另外需要注意的是,社区是一个子图,包含顶点和边. 下面我们以新浪微博用户对应的网络图为例,来介绍相应的社区发现算法. 这里在相互关注的用户…
首先什么是社区(Community structure)呢?其实并不是指一个网络相互连接的部分,而是一个网络中链接“紧密的部分”,至于怎么定义紧密就有很多方法了. 社区发现算法可以参考下面的博客:博客1,博客2 那么又该如何动手实现呢?? 由于小组主要使用python和R语言编程,所以首先想到networkX这个python包,但是我找了一下里面并没有相应的算法实现.其次是igraph,它提供了python和R语言的接口,然而通过调查,只在R的接口文档里找到了一些社区发现算法,比如几个fast_…
模块度:也称模块化度量值,是目前常用的一种衡量网络社区结构强度的方法. 常用语衡量一个社区划分结果的优劣:一个理想化的社区划分应该对应着社区内部节点间相似度尽可能的高,同时社区外部节点间的相异度尽可能高,此时模块度的值近似等于1.也就是说,社区划分的质量越高对应的模块度Q越大. 令Avw为网络对应邻接矩阵的一个元素,即边(可能存在也能不存在),v和w表示两个节点. 令cv和cw分别是节点v和节点w所在的两个社区,社区内部的边数和网络中总边数的比例可以表示为: 函数δ(cv, cw)的取值定义为:…
一.三层(网络层)发现 算法来源:王娟娟.基于SNMP的网络拓扑发现算法研究.武汉科技大学硕士学位论文,2008 数据结构: 待检路由设备网关链表:存放指定深度内待检路由设备的网关信息,处理后删除. 拓扑信息链表:存放从已检测路由设备的网关信息. 子网信息链表:存放网关信息对应的子网信息. 基本思想: 类似于广度优先,在指定深度内运行算法,最后根据拓扑信息链表获得所有路由及其互联关系,根据子网信息链表各路由设备连接的子网及子网内所有活动主机的信息. 需要获得的信息: 路由信息如下图所示. 点击可…
最近需要对商品中的特有的词识别,因此需新词发现算法,matrix的这篇算法很好. 对中文资料进行自然语言处理时,我们会遇到很多其他语言不会有的困难,例如分词——汉语的词与词之间没有空格,那计算机怎么才知道“已结婚的和尚未结婚的”究竟是“已/结婚/的/和/尚未/结婚/的”,还是“已/结婚/的/和尚/未/结婚/的”呢? 这就是所谓的分词歧义难题.不过,现在很多语言模型都已能比较漂亮地解决这一问题了.但在中文分词领域里,还有一个比分词歧义更令人头疼的东西—— 未登录词.中文没有首字母大写,专名号也被取…
Louvain Introduce Louvain算法是社区发现领域中经典的基于模块度最优化的方法,且是目前市场上最常用的社区发现算法.社区发现旨在发现图结构中存在的类簇(而非传统的向量空间). Algorithm Theory 模块度(modularity) 要想理解Louvain算法需先理解模块度,模块度是衡量一个网络社区划分好坏的度量指标,可以简单理解为"给定算法得到的图中的社区划分D,社区内节点的连边权重和与对应随机图中的连边权重和的差,可以理解为社区内边权重之于社区间边权重的比例,当然…
Louvain算法是一种基于图数据的社区发现算法,算法的优化目标为最大化整个数据的模块度,模块度的计算如下: 其中m为图中边的总数量,k_i表示所有指向节点i的连边权重之和,k_j同理.A_{i,j} 表示节点i,j之间的连边权重.有一点要搞清楚,模块度的概念不是Louvain算法发明的,而Louvain算法只是一种优化关系图模块度目标的一种实现而已. Louvain算法的两步迭代设计:最开始,每个原始节点都看成一个独立的社区,社区内的连边权重为0.       算法扫描数据中的所有节点,针对每…
社交网络需要用到igraph库,所以需要安装.可以在lfd的网站 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 上下载python_igraph,具体的python对应版本和是32位还是64位的,比如我下载了 python_igraph‑0.7.1.post6‑cp35‑none‑win_amd64.whl  利用pip 安装whl文件:pip install 文件名.whl  为了避免出错,打开cmd以后,要cd进入你存放的该whl文件的解压后的目录下在…
上一篇文章知识图谱在大数据中的应用我们介绍了知识图谱的一些概念和应用场景,今天我们就来看一个具体的应用案例了解下知识图谱的应用.用户增长对于一个APP的生存起到了至关重要的作用,没有持续的用户增长,再好的APP也不会走的长远,为了获得更多的用户,APP运营商往往会鼓励老用户拉新并给与奖励,比如趣头条的收徒模式,用户每收一个徒弟就会得到几块到十几块的现金返现,但是这种模式同时也会引起广大黑产团伙的注意,黑产会利用各种手段来薅这些APP运营商的羊毛. 中国有句老话,叫物以类聚,人以群分,在反作弊和市…
目录 R语言构建蛋白质网络并实现GN算法 1.蛋白质网络的构建 2.生物网络的模块发现方法 3.模块发现方法实现和图形展示 4.附录:igraph中常用函数 参考链接 R语言构建蛋白质网络并实现GN算法 1.蛋白质网络的构建 我们使用与人类HIV相关的蛋白质互作数据hunam-HIV PPI.csv来构建这个蛋白质互作网络. 在R中,我们可以从存储在R环境外部的文件读取数据.还可以将数据写入由操作系统存储和访问的文件. R可以读取和写入各种文件格式,如:csv,excel,xml等. 想要读取c…
本次主要学习图数据库中常用到的一些算法,以及如何在Neo4j中调用,所以这一篇偏实战,每个算法的原理就简单的提一下. 1. 图数据库中常用的算法 PathFinding & Search 一般用来发现Nodes之间的最短路径,常用算法有如下几种 Google Search Results Dijkstra - 边不能为负值 Folyd - 边可以为负值,有向图.无向图 Bellman-Ford SPFA Centrality 一般用来计算这个图中节点的中心性,用来发现比较重要的那些Nodes.这…
neo4j为图数据库,其中涉及的也就为图算法,图算法被用来度量图形,节点及关系. 在neo4j中,通过call algo.list() 可查看neo4j中的算法列表. 在neo4j官方文档中,主要记录如下各种方法: 一. 中心性算法(Centrality algorithms) 中心度算法主要用来判断一个图中不同节点的重要性: (1)PageRank(页面排名算法,algo.pageRank) (2)ArticleRank(文档排名算法,algo.articleRank) (3)Betweenn…
http://blog.csdn.net/pipisorry/article/details/49052255 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Leskovec courses学习笔记之社交网络之社区检测:高级技巧-线性代数方法 Communities in Social Networks:  Intuitively, "communities" are sets of individuals in a network like Fa…
Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦 近期活动: 2014年9月3日,第8次西安面试&算法讲座视频 + PPT 的下载地址:http://blog.csdn.net/v_july_v/article/details/7237351#t40: 2014年10月18日,北京10月机器学习班开班,全部PPT 的下载地址见:http://blog.csdn.net/v_july_v/article/details/7237351#t63: 201…
不同来源的异构数据间存在着千丝万缕的关联,这种数据之间隐藏的关联关系和网络结构特性对于数据分析至关重要,图计算就是以图作为数据模型来表达问题并予以解决的过程. 一.背景 随着网络信息技术的飞速发展,数据逐渐向多源异构化方向发展,且不同来源的异构数据之间也存在的千丝万缕的关联,这种数据之间隐藏的关联关系和网络结构特性对于数据分析至关重要.但传统关系型数据库在分析大规模数据关联特性时存在性能缺陷.表达有限等问题,因此有着更强大表达能力的图数据受到业界极大重视,图计算就是以图作为数据模型来表达问题并予…
关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph L)https://aistudio.baidu.com/aistudio/projectdetail/4982973?contributionType=1 因为篇幅关系就只放了部分程序在第三章,如有需求可自行fork项目原始链接. 0.1图计算基本概念 首先看到百度百科定义: 图…
快刀初试:Spark GraphX在淘宝的实践 作者:明风 (本文由团队中梧苇和我一起撰写,并由团队中的林岳,岩岫,世仪等多人Review,发表于程序员的8月刊,由于篇幅原因,略作删减,本文为完整版) 对于网络科学而言,世间万物都可以抽象成点,而事物之间的关系都可以抽象成边,并根据不同的应用场景,生成不同的网络,因此整个世界都可以用一个巨大的复杂网络来代表.有关复杂网络和图算法的研究,在最近的十几年取得了巨大的进展,并在多个领域有重要的应用. 作为最大的电商平台,淘宝上数亿买家和卖家,每天产生数…
1. 线性模型简介 0x1:线性模型的现实意义 在一个理想的连续世界中,任何非线性的东西都可以被线性的东西来拟合(参考Taylor Expansion公式),所以理论上线性模型可以模拟物理世界中的绝大多数现象.而且因为线性模型本质上是均值预测,而大部分事物的变化都只是围绕着均值而波动,即大数定理. 事物发展的混沌的线性过程中中存在着某种必然的联结.事物的起点,过程,高潮,衰退是一个能被推演的过程.但是其中也包含了大量的偶然性因素,很难被准确的预策,只有一个大概的近似范围.但是从另一方面来说,偶然…