DBSCAN 是一种非常著名的基于密度的聚类算法。其英文全称是 Density-Based Spatial Clustering of Applications with Noise,意即:一种基于密度,对噪声鲁棒的空间聚类算法。直观效果上看,DBSCAN 算法可以找到样本点的全部密集区域,并把这些密集区域当做一个一个的聚类簇。
DBSCAN 算法具有以下特点:基于密度,对远离密度核心的噪声点鲁棒
无需知道聚类簇的数量
可以发现任意形状的聚类簇
DBSCAN 通常适合于对较低维度数据进行聚类分析。
基本概念
DBSCAN 的基本概念可以用 1、2、3、4 来总结。
1 个核心思想
这个核心思想是基于密度。直观效果上看,DBSCAN 算法可以找到样本点的全部密集区域,并把这些密集区域当做一个一个的聚类簇。
2 个算法参数
2 个算法参数:邻域半径 R 和最少点数目 MinPoints。
这 2 个算法参数实际可以刻画什么叫密集:当邻域半径 R 内点的个数大于最少点数目 R 时,就是密集。
3 种点的类别
3 种点的类别:核心点、边界点和噪声点。邻域半径 R 内样本点的数量大于等于 MinPoints 的点叫做核心点,不属于核心点但在某个核心点的邻域内的点叫做边界点,既不是核心点也不是边界点的是噪声点。
4 种点的关系
4 种点的关系:密度直达,密度可达,密度相连,非密度相连。
如果 P 为核心点,Q 在 P 的 R 邻域内,那么称 P 到 Q 密度直达。任何核心点到其自身密度直达,密度直达不具有对称性,如果 P 到 Q 密度可达,那么 Q 到 P 不一定密度可达。
如果存在核心点 P2,P3……Pn,且 P1 到 P2 密度直达,P2 到 P3 密度直达……P(n-1) 到 Pn 密度直达,Pn 到 Q 密度直达,则 P1 到 Q 密度可达。密度可达也不具有对称性。
如果存在核心点 S,使得 S 到 P 和 Q 都密度可达,则 P 和 Q 密度相连。密度相连具有对称性,如果 P 和 Q 密度相连,那么 Q 和 P 也一定密度相连。密度相连的两个点属于同一个聚类簇。
如果两个点不属于密度相连关系,则两个点非密度相连。非密度相连的两个点属于不同的聚类簇,或者其中存在噪声点。
算法步骤
DBSCAN 的算法步骤分成两步。
寻找核心点形成临时聚类簇
Step1:寻找核心点形成临时聚类簇。扫描全部样本点,如果某个样本点 R 半径范围内点数目大于等于 MinPoints,则将其纳入核心点列表,并将其密度直达的点形成对应的临时聚类簇。
合并临时聚类簇得到聚类簇
对于每一个临时聚类簇,检查其中的点是否为核心点,如果是,将该点对应的临时聚类簇和当前临时聚类簇合并,得到新的临时聚类簇。
重复此操作,直到当前临时聚类簇中的每一个点要么不在核心点列表