美文网首页
图算法之k-Core

图算法之k-Core

作者: 老羊_肖恩 | 来源:发表于2020-07-24 11:37 被阅读0次

  k-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在k-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。k-Core通常用来对一个图进行子图划分,通过去除不重要的顶点,将符合逾期的子图暴露出来进行进一步分析。k-Core由于其线性的时间复杂度和符合直观认识的可解释性,在风控金融,社交网络和生物学上都具有较多的应用场景。

算法原理

  k-Core算法是一种子图挖掘算法,用于寻找一个图中符合指定核心度的顶点的集合,即要求每个顶点至少与该子图中的其他k个顶点相关联。如图1所示,分别对应1-Core,2-Core和3-Core,任何一个图,在不包含孤立顶点的情况下,都是1-Core的。 图 1

  k-Core算法的过程也是非常简单的,一共分为两步,其实两步所做的内容是一样的,至于为什么要分两步执行同一个过程,可以自行思考一下。

Input:图G,核心度k
Step 1:将图G中度数小于k的顶点全部移除,得到子图G'。
Step 2:将图G'中度数小于k的顶点全部移除,得到新子图G''。该子图G''就是最终k-Core划分的结果子图。

  图2中我们给出了一个简单的3-Core子图划分的过程。

图2. 求解3-Core的过程

算法应用

  k-core算法通常用来找出一个图中符合指定k核心度的子图,该子图在图中承担着核心的地位,核心度越高,子图越小,该子图对应的核心度也越大。从某种意义上来说核心度划分的子图在原图中承担着比较重要的角色,如图的起源和演化趋势追溯,图中介识别等。具体的应用场景有很多,大家可以参考一篇论文:k-core: Theories and applications

相关文章

  • 图算法之k-Core

      k-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在k-Core的结果子图中,每个顶点至...

  • Networkx入门指南——图分析之k-core

    k-core   k-core主要用于找出图中具有指定core数的子结构,一般k越大,该结构的范围会越小,知道没有...

  • 经典图割算法中图的构建及实现之graph-cut

    经典图割算法中图的构建及实现之graph-cut 本文目的: 讲解目前典型的3种图割算法:graph-cut、gr...

  • 图算法之Floyd算法

    最近在翻看以前写的文章的时候,发现图这一块还漏了一两个经典的算法。接下来,小编将先把这些相关的算法做一个分享,再继...

  • 图算法之HITS算法

    算法起源   HITS算法的全称是“基于超链接的主题搜索”(Hyperlink-Induced Topic Sea...

  • 图算法之PageRank

      PageRank是以谷歌联合创始人拉里•佩奇(Larry Page)的名字命名的,用于在谷歌的搜索结果中对网站...

  • 图算法之Centrality

      中心性(Centrality)是图(网络)分析(graph/network analysis)中常用的一个概念...

  • 数据结构与算法--最小生成树之Prim算法

    数据结构与算法--最小生成树之Prim算法 加权图是一种为每条边关联一个权值或称为成本的图模型。所谓生成树,是某图...

  • 2018-07-22

    最短路径算法之Dijkstra算法 基本思想 通过Dijstra计算图G中的最短路径时,需要指定起点s(即从顶点s...

  • 头条-手撕代码

    [toc] 图算法 以及最短路径算法 树算法 手写LRU 排序算法 链表算法

网友评论

      本文标题:图算法之k-Core

      本文链接:https://www.haomeiwen.com/subject/rfiwkktx.html