SCAN:一种基于密度的社团发现算法

Update: spark版本的实现在这里
说明:该实现参照了SCAN作者的另一篇论文 :

Zhao, W., Martha, V., & Xu, X. (2013, March). PSCAN: a parallel Structural clustering algorithm for big networks in MapReduce. In Advanced Information Networking and Applications (AINA), 2013 IEEE 27th International Conference on (pp. 862-869). IEEE

可以实现在亿级别节点的图的聚类。


实现代码在这里下载。

Paper: 《SCAN: A Structural Clustering Algorithm for Networks》
Auther: Xiaowei Xu, Nurcan Yuruk, Zhidan Feng, Thomas A. J. Schweiger
Conference: SIGKDD 2007

一:SCAN算法简介

SCAN算法是由机器学习里的基于密度的聚类算法DBSCAN改进而来的一种非重叠社团发现算法,具有线性时间复杂度。其一大亮点在于能发现社团中桥节点(hub)和离群点(outlier)。

主要思想在于,在考虑两点之间的关系的时候,不仅考虑它们的直接链接,而是利用它们的邻居节点来作为聚类的标准。也就是说,节点根据它们共享邻居方式而聚类。
这里写图片描述

由图可知,节点0、5共享了4个节点,节点9、13只共享了2个节点,显然它们在聚类是应采取不同的聚类方式。

二、主要概念介绍

1. 节点相似度

节点相似度定义为两个节点共同邻居的数目两个节点邻居数目的几何平均数的比值(这里的邻居均包含节点自身)。

σ(v,w)=|Γ(v)Γ(w)||Γ(v)||Γ(w)| σ ( v , w ) = | Γ ( v ) ∩ Γ ( w ) | | Γ ( v ) | | Γ ( w ) |

其中 Γ(x) Γ ( x ) 表示节点 x x 及其相邻节点所组成的集合。

2. ϵ - 邻居

节点的 ϵ ϵ - 邻居定义为与其相似度不小于 ϵ ϵ 的节点所组成的集合。

Nϵ={ wΓ(v)|σ(v,w)ϵ} N ϵ = { w ∈ Γ ( v ) | σ ( v , w ) ≥ ϵ }

3. 核节点

核节点是指 ϵ ϵ 邻居的数目大于 μ μ 的节点。

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值