图算法之k-Core

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

算法原理

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

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

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

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

算法应用

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

为什么黄色的点也是core1呢,明明连接了5个点,因为它只连接了一个蓝色的点。



作者:圈圈_Master
链接:https://www.jianshu.com/p/f495f8219b56
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值