Bootstrap

聚类模型-密度聚类-DBSCAN

聚类模型

1、层次聚类
2、原型聚类-K-means
3、模型聚类-GMM
4、EM算法-LDA主题模型
5、密度聚类-DBSCAN
6、图聚类-谱聚类

五、密度聚类-DBSCAN

DBSCAN的类表示是一簇密度可达的样本,相似性度量定义为密度可达,密度可达即为一类,属于硬划分。密度聚类是一种基于密度的聚类,其根据样本的空间分布关系进行聚类。一般来讲,用带参的模型来定义样本的分布可以看作是带参的密度估计,比如高斯混合模型,高斯判别分析;用无参的模型来描述样本的分布称为无参密度估计,比如直方图,核密度估计,山峰聚类,DBSCAN,meanshift。

假设我的样本集是 (x1,x2,...,xm) ( x 1 , x 2 , . . . , x m ) ,在DBSCAN中为了描述样本分布的关系,定义了如下几个概念:

1) ϵ ϵ -邻域:对于 xjD x j ∈ D ,其 ϵ ϵ -邻域包含样本集 D D 中与xj的距离不大于 ϵ ϵ 的子样本集,即 Nϵ(xj)={xiD|distance(xi,xj)ϵ} N ϵ ( x j ) = { x i ∈ D | d i s t a n c e ( x i , x j ) ≤ ϵ } 这个子样本集的个数记为 |N(xj)| | N ∈ ( x j ) |  

2)核心对象:对于任一样本 xjD x j ∈ D ,如果其 ϵ ϵ -邻域对应的 N(xj) N ∈ ( x j ) 至少包含 MinPts M i n P t s 个样本,即如果 |N(xj)|MinPts | N ∈ ( x j ) | ≥ M i n P t s ,则 xj x j 是核心对象

3)密度直达:如果 xi x i 位于 xj x j ϵ ϵ -邻域中,且 xj x j 是核心对象,则称 xi x i xj x j 密度直达。注意反之不一定成立,即此时不能说 xj x j xi x i 密度直达, 除非且 xi x i 也是核心对象。

4)密度可达:如果 xi x i xj x j 密度直达,且 xj x j xk x k 密度直达,那么 xi x i xk x k 密度可达。密度可达满足封闭性

其中密度可达是相似性度量,由于密度可达具有封闭性,所以簇内的所有点与簇内的核心均密度可达,否则即不是一个簇,所以密度可达可以对样本进行聚类,其中密度可达涉及的参数有 ϵ ϵ MinPts M i n P t s 和距离度量 distance(xi,xj) d i s t a n c e ( x i , x j )

5)噪声点:对于非核心点和不能由核心点密度可达的点即为噪声点

DBSCAN算法流程:

输入:样本集 D=(x1,x2,...,xm) D = ( x 1 , x 2 , . . . , x m ) ,邻域参数 (ϵ,MinPts) ( ϵ , M i n P t s ) , 样本距离度量方式

输出:簇划分 C={c1,c2,..ck,...,cK} C = { c 1 , c 2 , . . c k , . . . , c K }

1)初始化核心对象为 Ω= Ω = ∅ ,簇划分 C=,k=0 C = ∅ , k = 0 ,未访问样本集合 Γ=D Γ = D

2)变量所有样本点,找出 |N(xj)|MinPts | N ∈ ( x j ) | ≥ M i n P t s 的核心对象 xj x j 并入核心对象 Ω Ω

3)如果核心对象 Ω=||Γ= Ω = ∅ | | Γ = ∅ ,算法结束,否则从核心对象集 Ω Ω 中随机选择一个核心对象 xj x j ,初始化当前簇 ck++=xj c k + + = x j ,当前核心对象集为 Ωcur=xj Ω c u r = x j ,循环:

​ a)从当前的核心对象集 Ωcur Ω c u r 中选择 xj x j ,循环:

​ aa)找出 xj x j 密度直达的未访问的点 xi x i 加入到 ck c k ,把其中未访问的核心对象加入到 Ωcur Ω c u r

​ ab)更新当前核心对象集 Ωcur=Ωcurxj Ω c u r = Ω c u r − x j

​ ac)更新核心对象集 Ω=ΩΩcur Ω = Ω − Ω c u r ,更新未访问样本集 Γ=Γck Γ = Γ − c k

​ b)如果当前核心对象集 Ωcur= Ω c u r = ∅ ,结束内部循环

4)输出簇划分 C={c1,c2,..ck,...,cK} C = { c 1 , c 2 , . . c k , . . . , c K }

可以看出,外层循环为簇的个数,内层循环是构建一个密度可达的簇。当算的执行完 Γ Γ ≠ ∅ ,对应既不是核心点,也不是密度可达的点我们称为异常点或者噪声点。

DBSCAN的特点:

1)由于密度可达的定义,DBSCAN具有发现任意形状的簇划分

2)聚类的同时可发现异常点,抗噪性强

3)不需要预先指点类数,但 ϵ ϵ MinPts M i n P t s 的直观性不强,参数选择麻烦

4)样本集较大时,聚类收敛时间较长,密度估计存在维度灾难问题

5)如果样本集的密度不均匀、聚类间距差差别很大时,聚类质量较差,这时用DBSCAN聚类一般不适合

;