首页 国际新闻正文

果子狸,图算法:概览,中央电视台体育频道

首要答应我介绍团队的新成员:Zhang Jinling & Meng Qi。我与咱们相同等待他们的共享。对他们猎奇的同学,能够经过大众号“关于我”菜单,了解他们的布景~

上一篇博文中,咱们现已对图数据库根底作了共享,介绍了图和图数据库的根本概念,今日咱们的主题是:图算法。

本篇博文的主要内容来源于 O’Reilly 系列的《Graph Algorithms》,作者 Amy E. Hodler & Mark 郭震洲自首Needham。网址:

https://www.oreilly.com/library/view/graph-algorithms/9781492047674/

你必定没有读过这本书,由于这本书的发布日期是2019年5月。本文会掩盖该书的大部分内容,读完这篇,你能够了解图算法的根本概念。关于此书,作为市面上为数不多的面向数据科学运用的图算法书本,写的比较全面体系和易懂。当然,书在细节上的进步空间还有许多。今日内容许多,坐稳~


目录


图算法 & 图剖析

图根底知识

连通图与非连通图

未加权图与加权图

有向图与无向图

非循环图和循环图

图算法

途径查找算法

        DFS & BFS

        最短途径

        最小生成树

        随机游走

中心性算法

        Degree Centrality

        Closeness Centrality

        Betweenness Centrality

        PageRank

社群发现算法

      爱爱撸;  Measuring Algorithm

        Components Algorithm

        Label Propagation Algorithm

   &nb居家眼sp;    Louvain Modularity Algorithm

定论




图算法 & 图剖析

图剖析运用依据图的办法来剖析衔接的数据。咱们能够:查询图数据,运用根本核算信息,可视化地探果子狸,图算法:概览,中央电视台体育频道索图、展现图,或许将图信息预处理后兼并到机器学习使命中。图的查询一般用于部分数据剖析,而图核算一般触及整张图和迭代剖析。

图算法是图剖析的东西之一。图算法供给了一种最有用的剖析衔接数据的办法,它们描绘了怎么处理图以发现一些定性或少年阿飞者定量的定论。图算法依据图论,运用节点之间的联络来揣度杂乱体系的结构和改变。咱们能够运用这些算法来发现躲藏的信息,验证事务假定,并对行为进行猜测。

图剖析和图算法具有广泛的运用潜力:从避免诈骗,优化呼叫路由,到猜测流感的传达。下图是 Martin Grandjean 创立的航线网络图,这幅图清楚地展现了航空运送集群高度衔接的结构,协助咱们了解航空运力怎么活动。航线网络选用典型的辐射式结构(hub-and-spoke structure),这样的结构在有限运力的前提下,增大了航线的网络的始发-抵达对(OD Pair),可是却也带来了体系级联推迟的或许。






图根底知识

咱们现已在前一篇博文中介绍了特点图的概念。咱们现已知道了节点、联络、特点(Property)、标签等概念。

子图(Subgraph)是一张图的一部分。当咱们需求对图中的特定节点,特定联络,或许特定标签或许特点进行特定剖析时,子图就会很有用。

途径(Path)是一组节点及他们的联络的调集。以上图为例,“Dan” 开过型号为 “Volvo V70” 的车,这辆车是归于 “Ann” 的。那么节点 “Dan” “Ann” “Car”和联络 “Drives” “Owns” 组成了一个简略的途径。

咱们在介绍图算法前,先整理一下图的不同特点(Attribute)。

连通图与非连通图

连通图(Connected Graphs)指图内恣意两个节点间,总能找到一条途径衔接它们,不然,为非连通图(Disconnected Graphs)。也便是说,假如图中包括岛(Island),则对错连通图。假如岛内的节点都是连通的,这些岛就被成为一个部件(Component,有时也叫 Cluster)。

有些图算法在非连通图上或许发作无法预见的过错。假如咱们发现了未预见的成果,能够首要检查图的结构是否连通。

未加权图与加权图

未加权图(Unweighted Graphs)的节点和边上均没有权重。关于加权图(Weighted Graphs),所加权重能够代表:本钱、时刻、间隔、容量、乃至是指定域的优先级。下图给出了示意图。

根本的图算法能够经过处理权重来代表联络的强度。许多算法经过核算方针,用作后续算法的权重。也有些算法经过更新权重值,来查找累计总数、最小值或最优化成果。

关于加权图的一个典型用处是途径寻觅算法。这些算法支撑咱们手机上的地图运用程序,并核算方位之间最短/最廉价/最快的运送路途。例如,下图运用了两种不同的办法来核算最短路途。

假如没有权重,核算最短途径时,实则在核算联络(Relation,也称 Hop)的数量。那么在上图左面,咱们找到 A 和 E 之间的最短间隔为 2,经过 D 点。假如像上图右边所欠感情债真的遭报应了示,边被赋予了权重,用以代表节点之间的物理间隔(单位:KM)。那么咱们能够找到 A 和 E 之间的最短间隔是 50 KM,需求经过 C 和 D 两个点。而此刻,在未加权图中核算的最短途径 A-D-E 间隔为 70 KM,比咱们找到的途径 A-C-D-E 间隔远。

有向图与无向图

在无向图(Undirected Graphs)中,节点的联络被认为是双向的(bi-directional),例如朋友联络。而在有向图(Directed Graphs)中,节点的联络能够指定方向。边假如指向了一个节点,咱们称为 in-link,边假如从一个节点动身,咱们称为 out-link。

边的方向加入了更多维度的信息,相同联络的边,却包括不同的方向,则代表了不同的语义信息。如下图所示,有向图制作了一个简略的同学网络,边的方向代表着 “喜爱”。那么从图中,咱们能够知道,同学中 “最受欢迎的” 的人是 “A” 和 “C”。

咱们还能够用路途网络帮咱们了解为什么需求有向图和无向图。例如,高速公路一般都是双向的,咱们运用无向图即可。可是,在城市内部,常常会有单向车道,咱们有必要运用有向图。

非循环图和循环图

图论中,循环指一些特其他途径,它们的起点和结尾是同一个节点。在非循环图(Acyclic Graph)中,不存在循环途径,相反则为循环图(Cyclic Graphs)。如下图所示,有向图和无向图都或许包括循环,所不同的是,有向图的途径有必要遵从边的方向。图中的 Graph 1 是一个典型的 DAG(Directed Acyclic Graph,有向无循环图),而且 DAG 一般有叶子节点(leaf node,也称 dead node)。

Graph 1 和 Graph 2 是无循环的,由于咱们在不重复任何一条边的情况下,无法从任何一个点动身,再回到它。Graph 3 中有一个简略的循环 A-D-C-A。而 Graph 4 中,咱们能够发现多个循环:B-F-C-D-A-C-BC-B-F-C 等等。

循环在图中十分常见。有时,咱们为了进步处理功率,会将循环图转化为非循环图(经过剪除一些联络)。DAG 在调度、版别操控等问题中十分常见。实践上,咱们在数学或许核算机科学中常常遇见的树(Tree)便是一个典型的 DAG,仅仅关于树来说,只能具有一个 Parent,而 DAG 没有这个约束。




图算法

咱们重视三类中心的图算法:途径查找(武极神王属龙语Pathfinding and Search)、中心性核算(Centrality Computation)和社群发现(Co果子狸,图算法:概览,中央电视台体育频道mmunity Detection)。

途径查找算法

图查找算法(Pathfinding and Search Algorithms)探究一个图,用于一般发现或显式查找。这些算法经过从图中找到许多途径,但并不期望这些途径是核算最优的(例如最短的,或许具有最小的权重和)。图查找算法包括广度优先查找和深度优先查找,它们是遍历图的根底,而且一般是许多其他类型剖析的第一步。

途径查找(Pathfinding)算法巴殿璞建立在图查找算法的根底上,并探究节点之间的途径。这些途径从一个节点开端,遍历联络,直到抵达目的地。途径查找算法辨认最优途径,用于物流规划,最低本钱呼叫或许叫IP路由问题,以及游戏模仿等。

下图是途径查找类算法的分类:

DFS & BFS

图算法中最根底的两个遍历算法:广度优先查找(Breadth First Search,简称 BFS)和深度优先查找(Depth First Search,简称 DFS)。BFS 从选定的节点动身,优先拜访一切一度联络的节点之后再持续拜访二度联络节点,以此类推。DFS 从选定的节点动身,挑选任一街坊之后,尽或许的沿着边遍历下去,知道不能行进之后再回溯。

下面是两张相同的图,别离选用 BFS 和 DFS 进行图的遍历,图上节点的数字标识这遍历次序。

BFS


DFS

关于咱们数据科学的人物来说,咱们很少真实需求运用 BFS 和 DFS。这两个图查找算法更多地作为底层算法支撑其他图算法。例如,最短途径问题和 Closeness Centrality (在后文会有介绍)都运用了 BFS 算法;而 DFS 能够用于模仿场景中的或许途径,由于依照 DFS 拜访节点的次序,咱们总能在两个节点之间找到相应的途径。感爱好的话,能够猜一猜,后文介绍的算法是否运用了图查找算法,而且别离运用了 DFS 仍是 BFS。

最短途径

最短途径(Shortest Paths)算法核算给定的两个节点之间最短(最小权重和)的途径。算法能够实时地交互和给出成果,能够给出联络传达的度数(degree),能够快速给出两点之间的最短间隔,能够核算两点之间本钱最低的路途等等。例如:

  • 导航:谷歌、百度、高德地图均供给了导航功用,它们就运用了最短途径算法(或许十分挨近的变种);

  • 交际网络联络:当咱们在 LinkedIn、人人(露出年纪了)等交际渠道上检查或人的简介时,渠道会展现你们之间有多少一同老友,并列出你们之间的联络。

最常见的最短途径算法来自于 1956 年的 Edsger Dijkstra。Dijkstra 的算法首要挑选与起点相连的最小权重的节点,也便是 “最接近的” 节点,然后比较 起点到第二接近的节点的权重 与 最接近节点的下一个最接近节点的累计权重和 然后决议下一步该怎么行走。能够幻想,算法记载的累计权重和 好像地舆的 “等高线” 相同,在图上以 “波” 的办法传达,直到抵达目的地节点。

最短途径算法有两个常用的变种:A (能够念作 A Star)algorithm和 Yen’s K-Shortest Paths。A algorithm 经过供给的额定信息,优化算法下一步探究的方向。Yen’s K-Shortest Paths 不光给出最短途径成果,一同给出了最好的 K 条途径。

一切节点对最短途径(All Pairs Shortest Path)也是一个常用的最短路果子狸,图算法:概览,中央电视台体育频道径算法,核算一切节点对的最短途径。相比较一个一个调用单个的最短途径算法,All Pairs Shortest Path 算法会更快。算法并行核算多个节点的信息,而且这些信息在核算中能够被重用。

本文不方案再深化了,下图是从A节点开端的核算进程,看懂这张图,你就了解了。

All Pairs Shortest Path 算法一般用于,当最短途径受限或许变成了非最优时,怎么寻觅代替线路。其实算法十分常用:

  • 优化城市设备的方位和货品的分配:例如确认运送网格中不同路段上预期的交通负荷,例如快递线路规划佰美丽,然后确保运送对突发事件的应对;

  • 作为数据中心设核算法的一部分:查找具有最大带宽和最小推迟的网络。

最小生成树

最小生成树(Minimum Spanning Tree)算法从一个给定的节点开端,查找其一切可抵达的节点,以及将节点与最小或许权重衔接在一同,行成的一组联络。它以最小的权重从拜访过的节点遍历到下一个未拜访的节点,避免了循环。

最常用的最小生成树算法来自于 1957 年的 Prim 算法。Prim 算法与Dijkstra 的最短途径相似,所不同的是, Prim 算法每次寻觅最小权重拜访到下一个节点,而不是累计权重和。而且,Prim 算法答应边的权重为负。

上图是最小生成树算法的进程分化,算法终究用最小的权重将图进行了遍历,而且在遍历的进程中,不发作环。

算法能够用于优化衔接体系(如水管和电路规划)的途径。它还用于近似一些核算时刻不知道的问题,如游览商问题。虽然该算法不一定总能找到绝对最优解,但它使得杂乱度极高和核算密布度极大的剖析变得愈加或许。例如:

  • 游览方案:尽或许下降探究一个国家的游览本钱;

  • 追寻流感传达的前史:有人运用最小生成树模型对丙型肝炎病毒感染的医院爆发进行分子流行病学查询

随机游走

随机游走(Random Walk)算法从图上取得一条随机的途径。随机游走算法从一个节点开端,随机沿着一条边正向或许反向寻觅到它的街坊,以此类推,直抵到达设置的途径长度。这个进程有点像是一个醉汉在城市闲逛,他或许知道自己大致要去哪儿,可是途径或许极端“迂回”,究竟,他也无法操控自己~

随机游走算法一般用于随机生成一组相关的节点数据,作为后续数据处理或许其他算法运用。例如:

  • 作为 node2vec 和 graph2vec 算法的一部分,这些算法能够用于节点向量的生成,然后作为后续深度学习模型的输入;这一点关于了解 NLP (自然语言处理)的朋友来说并不难了解,词紧b是语句的一部分,咱们能够经过词的组合(语料)来练习词向量。那么,咱们相同能够经过节点的组合(Random Walk)来练习节点向量。这些向量能够表征词或许节点的含义,而且能够做数值核算。这一块的运用很有意思,咱们会找时机来具体介绍;

  • 作为 Walktrap 和 Infomap 算法的一部分,用于社群发现。假如随机游走总是回来同一组节点,标明这些节点或许在同一个社群;

  • 其他机器学习模型的一部分,用于随机发作相相关的节点数据。



中心性算法

中心性算法(Centrality Algorithms)用于辨认图中特定节点的人物及其对网络的影响。中心性算法能够协助咱们辨认最重要的节点,协助咱们了解组动态,例如可信度、可拜访性、事物传达的速度以及组与组之间的衔接。虽然这些算法中有许多是为社会网络剖析而创造的,但它们现已在许多职业和领域中得到了运用。

下图罗列了咱们一切需求了解的中心性算法方针。

Degree Centrality

Degree Centrality (度中心性,以度作为规范的中心性方针)或许是整篇博文最简略的 “算法” 了。Degree 核算了一个节点直接相连的边的数量,包括出度和入度。Degree 能够简略了解为一个节点的拜访时机的巨细。例如,在一个交际网络中,一个具有更多 degree 的人(节点)更简单与人发作直接触摸,也更简单取得流感。

一个网络的均匀度(average degree),是边的数量除以节点的数量。当然,均匀度很简单被一些具有极大度的节点 “带跑偏” (skewed)。所以,度的散布(degree distribution)或许是表征网络特征的更好方针。

假如你期望经过出度入度来点评节点的中心性,就能够运用 degree centrality。度中心性在重视直接连通时具有很好的作用。运用场景例如,区姚金刚分在果子狸,图算法:概览,中央电视台体育频道线拍卖的合法用户和诈骗者,诈骗者由于尝尝人为太高拍卖价格,具有更高的加权中心性(weighted centrality)。

Closeness Centrality

Closeness Centrality(严密性中心性)是一种检测能够经过子图有用传达信息的节点的办法。严密性中心性计量一个节点到一切其他节点的严密性(间隔的倒数),一个具有高严密性中心性的节点具有着到一切其他节点的间隔最小值。

关于一个节点来说,严密性中心性是节点到一切其他节点的最小间隔和的倒数:

其间 u 是咱们要核算严密性中心性的节点,n 是网络中总的节点数,d(u,v) 代表节点 u 与节点 v 的最短途径间隔。更常用的公式是归一化之后的中心性,即核算节点到其他节点的均匀间隔的倒数,你知道怎么修正上面的公式吗?对了,将分子的 1 变成 n-1 即可。

了解公式咱们就会发现,假如图是一个非连通图,那么咱们将无法核算严密性中心果子狸,图算法:概览,中央电视台体育频道性。那么针对非连通图,谐和中心性(Harmonic Centrality)被提了出来(当然它也有归一化的版别,你猜这次n-1应该加在哪里?):

Wasserman and Faust 提出过另一种核算严密性中心性的公式,专门用于包括多个子图而且子图间不相衔接的非连通图:

其间,N&街霸gtrnbsp;是图中总的节点数量,n 是一个部件(component)中的节点数量。

当咱们期望重视网络中传达信息最快的节点,咱们就能够运用严密性中心性。

Betweenness Centrality

中介中心性(Betweenness Centrality)是一种检测节点对图中信息或资源流的影响程度的办法。它一般用于寻觅衔接图的两个部分的桥梁节点。由于许多时分,一个体系最重要的 “齿轮” 不是那些状况最好的,而是一些看似不起眼的 “前言”,它们掌握着资源或许信息的活动性。

中心中心性算法首要核算衔接图中每对节点之间的最短(最小权重和)途径。每个节点都会依据这些经过节点的最短途径的数量得到一个分数。节点地点的途径越短,其得分越高。核算公式:

其间,p 是节点 s 与 t 之间最短途径的数量,p(u) 是其间经过节点 u 的数量。下图给出了关于节点 D 的核算进程:

当然,在一张大图上核算中介中心性是十分贵重的。所以咱们需求更快的,本钱更小的,而且精度大致相同的算法来核算,例如 Randomized-Approximate Brandes。咱们不会对这个算法持续深化,感爱好的话,能够去了解一下,算法怎么经过随机(Random)和度的挑选(Degree)到达近似的作用。

中介中心性在实践的网络中有广泛的运用,咱们运用它来发现瓶颈、操控点和缝隙。例如,辨认不同安排的影响者,他们往往是各个安排的前言,例如寻觅电网的要害点,进步全体鲁棒性。

PageRank

在一切的中心性算法中,PageRank 是最著名的一个。它丈量节点传递影响的才能。PageRank 不光节点的直接影响,也考虑 “街坊” 的影响力。例如,一个节点具有一个有影响力的 “街坊”,或许比具有许多不太有影响力的 “街坊” 更有影响力。PageRank 核算到节点的传入联络的数量和质量,然后决议该节点的重要性。

PageRank 算法以谷歌联合创始人拉里佩奇的姓名命名,他创立了这个算法来对谷歌查找成果中的网站进行排名。不同的网页之间彼此引证,网页作为节点,引证联络作为边,就能够组成一个网络。被更多网页引证的网页,应该具有更高的权重;被更高权重引证的网页,也应该具有更高权重。原始公式:

其间,u 是咱们想要核算 PageRank 的网页,T1 到 Tn 是引证的网页。d 被称为阻尼系数(damping factor),代表一个用户持续点击网页的概率,一般被设置为 0.85,规划 0~1。C(T) 是节点 T 的出度。

从了解上来说,PageRank 算法假定一个用户在拜访网页时,用户或许随机输入一个网址,也或许经过一些网页的链接拜访到其他网页。那么阻尼系数代表用户对当时网页感到无聊,随机挑选一个链接拜访到新的网页的概率。那么 PageRank 的数值代表这个网页经过其他网页链接过来(入度,in-degree)的或许性。那你能怎么解说 PageRank 方程中的 1-d 呢?实践,1-d 代表不经过链接拜访,而是随机输入网址拜访到网页的概率杨三十二郎。

PageRank 算法选用迭代办法核算,直到成果收敛或许到达迭代上限。每次迭代都会分两步更新节点权重和边的权重,具体如下图:

当然,上图的核算并没有考虑阻尼系数,那为什么一定要阻尼系数呢?除了咱们界说的链接拜访概率,有没有其他含义呢?从上图的进程中,咱们或许会发现一个问题,假如一个节点(或许一组节点),只有边进入,却没有边出去,会怎么样呢?依照上图的迭代,节点会不断抢占 PageRank 分数。这个现象被称为 Rank Sink,如下图:

处理 Rank Sink 的办法有两个。第一个,假定这些节点有隐形的边连向了一切的节点,遍历这些隐形的边的进程称为 teleportation。第二个,运用阻尼系数,假如咱们设置 d 等于 0.85,咱们依然有 0.15 的概率从这些节点再跳动出去。

虽然阻尼系数的主张值为 0.85,咱们依然能够依据实践需求进行修正。调低阻尼系数,意味着拜访网页时,更不或许不断点击链接拜访黄星澄下去,而是更多地随机拜访其他网页。那么一个网页的 PageRank 分数会更多地分给他的直接下流网页,而不是下流的下流网页。

PageRank 算法现已不只限于网页排名。例如:

  • 寻觅最重要的基因:咱们要寻觅的基因或许不是与生物功用联络最多的基因,而是与最重要功用有严密联络的基因;

  • who to follow带码菌 service at twitter:Twitter运用个性化的 PageRank 算法(Personalized PageRank,简称 PPR)向用户引荐他们或许期望重视的其他帐户。该算法经过爱好和其他的联络衔接,为用户展现感爱好的其他用户;

  • 交通流量猜测:运用 PageRank 漏乳算法核算人们在每条街道上泊车或完毕行程的或许性;

  • 反诈骗:医疗或许保险职业存在反常或许诈骗行为,PageRank 能够作为后续机器学习算法的输入。



社群发现算法

社群的构成在各种类型的网络中都很常见。辨认社群关于评价群体行为或突发事件至关重要。关于一个社群来说,内部节点与内部节点的联络(边)比社群外部节点的联络更多。辨认这些社群能够提醒节点的分群,找到孤立的社群,发现全体网络结构联络。社群发现算法(Community Detection Algorithms)有助于发现社群中群体行为或许偏好,寻觅嵌套联络,或许成为其他剖析的前序进程。社群发现算法也常用于网络可视化。

下图是社群发现算法的分类。

Measuring Algorithm

三角计数(Triangle Count)和聚类系数(Cl胡耀威ustering Coefficient)常常被一同运用。三角计数核算图中由节点组成的三角形的数量,要求恣意两个节点间有边(联络)衔接。聚类系数算法的方针是丈量一个组的聚类严密程度。该算法核算网络中三角形的数量,与或许的联络的比率。聚类系数为 1 表明这个组内恣意两个节点之间有边相连。

有两种聚类系数:部分聚类系数(Local Clustering Coefficient)和大局聚类系数(Global Clustering Coeff果子狸,图算法:概览,中央电视台体育频道icient)。

部分聚类系数核算一个节点的街坊之间的严密程度,核算时需求三角计数。核算公式:

其间,u 代表咱们需求核算聚类系数的节点,R(u) 代表经过节点 u 和它的街坊的三角形个数,k(u) 代表节点 u的度。下图是三三角计数聚类系数核算示意图:

大局聚类系数是部分聚类系数的归一化求和。

当需求核算一个组的稳定性或许聚类系数时,咱们能够运用三角计数。三角计数在交际网络剖析中有广泛的运用,通航被用来检测社区。聚类系数能够快速评价特定组或整个网络的内聚性。这些算法能够一同用于特定网络结构的寻觅。例如,探究网页的主题结构,依据网扎帐是什么意思页之间的彼此联络,检测具有一同主题的 “网页社群”。

Components Algorithm

强相关部件(Strongly Connected Components,简称 SCC)算法寻觅有向图内的一组一组节点,每组节点能够经过联络怀 相互 拜访。在 “Community Detection Algorithms” 的图中,果子狸,图算法:概览,中央电视台体育频道咱们能够发现,每组节点内部不需求直接相连,只需经过途径拜访即可。

相关部件(Connected Components)算法,不同于 SCC,组内的节点对只需经过一个方向拜访即可。

相关类算法作为王一碗小笨笨图剖析的前期算法,用以了解图的结构,或确认或许需求独立查询的严密布群十分有用。关于引荐引擎等运用程序,也能够用来描绘组中的相似行为等等。许多时分,算法被用于查找集群并将其折叠成单个节点,以便进一步进行集群间剖析。关于咱们来说,先运转以下相关类算法检查图是否连通,是一个很好的习气。

Label Propagation Algorithm

标签传达算法(Label Propagation Algorithm,简称 LPA)是一个在图中快速发现社群的算法。在 LPA 算法中,节点的标签完全由它的直接街坊决议。算法十分合适于半监督学习,你能够运用已有标签的节点来种子化传达进程。

LPA 是一个较新的算法,由 Raghavan 等人于 2007 年提出。咱们能够很形象地了解算法的传达进程,当标签在严密联络的区域,传达十分快,但到了稀少衔接的区域,传达速度就会下降。当呈现一个节点归于多个社群时,算法会运用该节点街坊的标签与权重,决议终究的标签。传达完毕后,具有相同标签的节点被视为在同一群组中。

下图展现了算法的两个变种:Push 和 Pull。其间 Pull 算法更为典型,而且能够很好地并行核算:

咱们不再持续深化,看完上图,你应该现已了解了算法的大约进程。其实,做过图画处理的人很简单了解,所谓的标签传达算法,不过是图画切割算法的变种,Push 算法是区域生长法(Region Growing)的简化版,而 Pull 更像是切割和兼并(divide-and-merge,也有人称 split-merge)算法。的确,图画(image)的像素和图(graph)的节点是十分相似的。

Louvain Modularity Algorithm

Louvain Modularity 算法在给节点分配社群是,会比较社群的密度,而不只仅是比较节点与社群的严密程度。算法经过检查节点与社群内联络的密度与均匀联络密度的比较,来量化地决议一个节点是否归于社群。算法不光能够发现社群,更能够给出不同标准不同规划的社群层次,关于了解不同粒度界其他网络结构有极大的协助。

算法在 2008 年被提出今后,敏捷成为了最快的模块化算法之一。算法的细节许多,咱们无法逐个掩盖,下图给出了一个大略的进程,协助咱们了解算法怎么能够多标准地构建社熊猫哥哥和功夫美少女群:

Louvain Modularity 算法十分合适巨大网络的社群发现,算法选用启发式办法然后能够战胜传统 Modularity 类算法的限制。算法运用:

  • 检测网络进犯:该算能够运用于大规划网络安全领域中的快速社群发现。一旦这些社群被发现,就能够用来防备网络进犯;

  • 主题建模:从 Twitter 和 YouTube 等在线交际渠道中提取主题,依据文档中一同呈现的术语,作为主题建模进程的一部分。






定论

本文更像是一篇总述,算法很干,咱们会在后续持续共享图剖析相关内容,敬请等待。










点击阅览原文,重视主编 GitHub,了解更多。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。