密度聚类

本文介绍了DBSCAN密度聚类算法的基本原理,包括核心对象、密度直达、密度可达等概念,详细阐述了算法流程及输入参数的选择,并分析了该算法的优点和缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

其实对于所有的聚类问题,都有一个核心点,那就是以什么样的规则来划分两个点是不是同一类。密度聚类,本质上就是基于一种密度的概念来进行聚类。而密度的定义本质上也是来自于两点的距离,所以其实对于聚类的算法来看,大家本质上都差不多,谁也别笑话谁。下面我们来总结介绍一种叫做DBSCAN的密度算法。

DBSCAN

DBSCAN 的全称是 Density-Based Spatial Clustering of Applications with Noise
单词里面有个noise,这就说明我们的算法是能抗噪声的,并且我们的算法是可以在空间中聚类为任意形状的聚类的,这点是一些其他的聚类算法不具备的性质,如下所示:

这里写图片描述
具有这样的性能,就是因为我们的算法引入了“邻域”(其参数为(ε,MinPts)(ε,MinPts))的概念来刻画样本的紧密程度的算法。

下面我们来介绍一下这个算法,在具体算法之前,我们先看几个定义,非常简单,但是可能比较绕,懂了这几个定义,下面的算法就是小菜一碟了。

基于密度的几个概念

εε−邻域:

xjDxj∈D,其εε−邻域是指样本集DD中与xjxj距离不大于εε的样本,即Nε(xj)={xjD|dist(xi,xj)ε}Nε(xj)={xj∈D|dist(xi,xj)≤ε}

核心对象:

对象xjxjεε−邻域中至少包含MinPtsMinPts个样本,即Nε(xj)MinPtsNε(xj)≥MinPts,则称xjxj为核心对象。

密度直达:

xjxj位于xixiεε−邻域中,且xixi是核心对象,则称xjxjxixi密度直达。

密度可达:

xjxjxixi,存在样本序列p1,p2,...,pnp1,p2,...,pnp1=xj,pn=xip1=xj,pn=xipi+1pi+1pipi密度直达,则称xjxjxixi密度可达。

其实这个概念本质上要求p2,...,pnp2,...,pn都是核心对象

密度相连:

xjxjxixi,若存在xkxk使得xjxjxixi均由xkxk密度可达,则称xjxjxixi密度相连。

下图直观的表示了这几个概念

kmeans

基于上面的概念,可以定义DBSCAN算法里面的簇的定义

簇: 由密度可达关系导出的最大的密度相连的样本集合。

因此实际上簇CDC⊆D满足下面的两个条件:

连接性:xiC,xjCxi∈C,xj∈C⇒ xixixjxj密度相连

最大性:xiCxi∈Cxjxjxixi密度可达 xjC⇒xj∈C

实际上就是核心对象以及与其密度可达的所有的点的集合

本质上相当于一些核心对象以及边界点组成了簇,簇中核心的点就是核心对象。

具体算法描述

实际上就是核心对象以及与其密度可达的所有的点的集合

输入

  • 样本集 D={x1,...,xN}D={x1,...,xN}
  • 邻域参数(ε,MinPts)(ε,MinPts)

算法流程


  • 找出所有的核心对象,放入集合中 ΩΩ
  • 初始化未访问的样本集合:Γ=DΓ=D
  • while(Ω)while(Ω≠∅)


  • Γold=DΓold=D
  • 随机选取一个核心对象oΩo∈Ω,初始化Q=<o>Q=<o>
  • Γ=Γ{o}Γ=Γ∖{o}
  • while(Q)while(Q≠∅)


  • QQ中取出样本qq
  • if(qif(q是核心对象))

  • Δ=Nε(q)ΓΔ=Nε(q)∩Γ, 即获取核心对象qq邻域内的点
  • Δ内的点加入到QQ
  • Γ=ΓΔΓ=Γ∖Δ
  • endifendif
  • endwhileendwhile
  • k=k+1k=k+1,并且生成聚类簇Ck=ΓoldΓCk=Γold∖Γ
  • Ω=ΩCkΩ=Ω∖Ck
  • endwhileendwhile

输出

簇划分C={C1,...,CK}C={C1,...,CK}

算法的优缺点

优点:

  • 算法不需要指定聚类的数目,但是算法实际上需要另外两个参数(ε,MinPts)(ε,MinPts),所以这个优点也是勉强。
  • 可以聚成任意形状的类,就像开始的图所示
  • 能够识别出噪声点

缺点:

  • 对高维数据效果不算好
  • 如果样本的密度不均, 效果会不理想
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值