DBSCAN密度聚类算法的原理及sklearn实现

本文深入解析DBSCAN密度聚类算法的工作原理,探讨其在处理非凸数据集和发现异常点方面的优势,以及算法的实现流程和参数调整技巧。

前言

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的空间聚类方法)是一种很典型的密度聚类算法,和 K-MeansBIRCH 这些一般只适用于凸样本集的聚类相比,DBSCAN 既可以适用于凸样本集,也可以适用于非凸样本集

一、基于密度的聚类思想

DBSCAN 是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间是紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。

通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,则我们就得到了最终的所有聚类类别结果。

二、DBSCAN密度定义

在上一小节我们定性描述了密度聚类的基本思想,本节我们就看看DBSCAN是如何描述密度聚类的。DBSCAN是基于一组邻域来描述样本集的紧密程度的,参数( ϵ \epsilon ϵ, MinPts)用来描述邻域的样本分布紧密程度。其中, ϵ \epsilon ϵ 描述了某一样本的邻域距离阈值,MinPts 描述了某一样本的距离为 ϵ \epsilon ϵ 的邻域中样本个数的阈值。

假设我的样本集是 D = ( x 1 , x 2 , . . . , x m ) D=(x_1, x_2, ..., x_m) D=(x1,x2,...,xm) ,则DBSCAN具体的密度描述定义如下:

  • ϵ \epsilon ϵ - 邻域:对于 x j ∈ D x_j \in D xjD ,其 ϵ \epsilon ϵ - 邻域包含样本集 D D D 中与 x j x_j xj 的距离不大于 ϵ \epsilon ϵ 的子样本集,即 N ϵ ( x j ) = { x i ∈ D ∣ d i s t a n c e ( x i , x j ) ≤ ϵ } N_{\epsilon}(x_j) = \{x_i \in D | distance(x_i, x_j) \leq \epsilon \} Nϵ(xj)={ xiDdistance(xi,xj)ϵ} ,这个子样本集的个数记为 ∣ N ϵ ( x j ) ∣ |N_{\epsilon}(x_j)| Nϵ(xj)
  • 核心对象:对于任一样本 x j ∈ D x_j \in D xjD ,如果其 ϵ \epsilon ϵ - 邻域对应的 N ϵ ( x j ) N_{\epsilon}(x_j) Nϵ(xj) 至少包含MinPts个样本,即如果 ∣ N ϵ ( x j ) ∣ ≥ M i n P t s |N_{\epsilon}(x_j)| \geq MinPts Nϵ(xj)MinPts,则 x j x_j xj 是核心对象;
  • 密度直达:如果 x i x_i xi 位于 x j x_j x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值