算法简介
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法,和K-Means,BIRCH这些一般只适用于凸样本集的聚类相比,DBSCAN既可以适用于凸样本集,也可以适用于非凸样本集。下面我们就对DBSCAN算法的原理做一个总结。
DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间的紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。
通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,则我们就得到了最终的所有聚类类别结果。
算法输入
- 待聚类的数据 D D D
- 邻域半径 ϵ ϵ ϵ
- 邻域内的点的数量阈值,表示密度
MinPts
算法输出
- 每一个点的label
基本概念
-
ϵ ϵ ϵ-邻域:对于xj∈D,其 ϵ ϵ ϵ-邻域包含样本集 D D D中与 x j x_j xj的距离不大于 ϵ ϵ ϵ的子样本集,即 N ϵ ( x j ) = x i ∈ D ∣ d i s t a n c e ( x i , x j ) ≤ ϵ Nϵ(x_j)={x_i∈D|distance(x_i,x_j)≤ϵ} Nϵ(xj)=xi∈D∣distance(xi,xj)≤ϵ, 这个子样本集的个数记为 ∣ N ϵ ( x j ) ∣ |Nϵ(xj)| ∣Nϵ(xj)∣
-
核心对象:对于任一样本 x j ∈ D x_j∈D xj∈D,如果其 ϵ ϵ ϵ-邻域对应的 N ϵ ( x j ) Nϵ(x_j) Nϵ(xj)至少包含MinPts个样本,即如果 ∣ N ϵ ( x j ) ∣ ≥ M i n P t s |Nϵ(x_j)|≥MinPts ∣Nϵ(xj