机器学习面试必知:DBSCAN

本文深入探讨了DBSCAN聚类算法,与Kmeans对比,DBSCAN无需预设聚类数量,擅长处理任意形状的稠密数据集,能同时识别异常点。但当数据密度不均或样本集过大时,其表现受限。

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

与传统的Kmeans相比,DBSCAN最大的不同就是不需要输入类别数k,最大的优势是可以发现任意形状的聚类簇。如果数据是稠密的,并且数据集不是凸的,那么DBSCAN就比Kmeans好用很多,如果数据不是稠密的,则不推荐用DBSCAN。

输入:样本集D=(x1,x2,...,xm)D=(x_{1},x_{2},...,x_{m})D=(x1,x2,...,xm),邻域数(ϵ,MinNum)(\epsilon,MinNum)(ϵ,MinNum),样本距离度量方式

  1. 初始化核心对象集合Ω=∅\Omega=\varnothingΩ=,初始化聚类簇数目k=0,初始化未访问样本集合Γ=D\Gamma=DΓ=D,簇划分C=∅C=\varnothingC=
  2. 对于j=1,2,...,mj=1,2,...,mj=1,2,...,m,按照下面的步骤找出所有核心对象:
    . 通过距离度量方式,找到样本xjx_{j}xjϵ\epsilonϵ-邻域子样本集Nϵ(xj)N_{\epsilon}(x_{j})Nϵ(xj)
    . 如果子样本集样本个数满足∣Nϵ(xj)∣≥MinNum|N_{\epsilon}(x_{j})|\geq MinNumNϵ(xj)MinNum,那么将样本xjx_{j}xj加入核心对象样本集合Ω=Ω∪{xj}\Omega=\Omega \cup \left\{ x_{j}\right\}Ω=Ω{xj}
  3. 如果核心对象集合Ω=∅\Omega=\varnothingΩ=则算法结束,否则转入下一步
  4. 在核心对象集合Ω\OmegaΩ中,随机选择一个核心对象ooo,初始化当前簇核心对象队列Ωcur={o}\Omega _{cur}=\left\{ o \right\}Ωcur={o},初始化类别序号k=k+1,初始化当前簇样本集合Ck={o}C _{k}=\left\{o\right\}Ck={o},更新未访问样本集合Γ=Γ−{o}\Gamma=\Gamma-\left\{o\right\}Γ=Γ{o}
  5. 如果当前簇核心队列Ωcur=∅\Omega _{cur}=\varnothingΩcur=,则当前聚类簇CkC_{k}Ck生成完毕,更新簇划分C={C1,C2,...,Ck}C=\left\{C_{1},C_{2},...,C_{k}\right\}C={C1,C2,...,Ck},更新对象集合Ω=Ω−Ck\Omega=\Omega-C_{k}Ω=ΩCk,转入步骤3
  6. 在当前簇核心队列取出一个核心对象o′o'o,通过邻域距离阈值ϵ\epsilonϵ找出所有的邻域子样本集Nϵ(o′)N_{\epsilon}(o')Nϵ(o),令Δ=Nϵ(o′)∩Γ\Delta =N_{\epsilon}(o')\cap \GammaΔ=Nϵ(o)Γ那么Ck=Ck∪Δ,Γ=Γ−Δ,Ωcur=Ωcur∪(Δ∩Ω)−o′C_{k}=C_{k}\cup \Delta,\Gamma=\Gamma-\Delta,\Omega _{cur}=\Omega _{cur}\cup (\Delta \cap \Omega)-o'Ck=CkΔ,Γ=ΓΔ,Ωcur=Ωcur(ΔΩ)o,转到步骤5

输出:簇划分C={C1,C2,...,Ck}C=\left\{C_{1},C_{2},...,C_{k}\right\}C={C1,C2,...,Ck}

优点:

  • 可以对任意形状的稠密数据集进行聚类,而Kmeans一般只适用于凸数据集
  • 可以在聚类的同时发现异常点,对数据集中的异常点不敏感
  • 聚类效果不像Kmeans那样受初始值的影响

缺点:

  • 样本集的密度不均匀,聚类间距相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合
  • 样本集较大,聚类收敛时间长,此时可以对搜索最近邻时建立的KD树或者球树进行规模限制来改进
  • 调参相对于Kmeans稍显复杂,需要对距离阈值和样本阈值进行联合调参,不同的参数组合对最后的聚类效果有很大影响
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值