DBSCAN是用来做什么的?
DBSCAN,全称Density-Based Spatial Clustering of Applications with Noise,中文翻译:针对有噪声数据的基于密度的空间聚类。顾名思义,DBSCAN是一种聚类算法,处理的对象是有噪声的数据,聚类的依据是密度。至此,为了理解DBSCAN算法,我们需要关注如下3个问题:
(1)什么样的数据是有噪声的数据?
(2)密度如何定义?
(3)如何根据密度完成聚类?
有噪声的数据?
在采集数据时,噪声通常难以避免。图1展现了三类数据,分别由红绿黄三色圆点表示。黑色圆点表示在数据采集过程中的噪点。K均值聚类算法对噪声十分敏感,因而聚类效果难以令人满意。这正是DBSCAN聚类算法被提出的原因之一。
图1. 二维空间中有噪声数据。其中黑色圆点表示噪声数据,红绿黄三色圆点分别表示三类数据。密度如何定义?
为了更好地理解密度,首先定义以下概念:
点的-邻域:;
点的-邻域的密度:的点数;
容易知道,数据集的每一个点的-邻域都有相应密度值。
如何根据密度进行聚类?
计算完毕密度后,根据密度可以定义核心点(core point)、边界点(border point)、噪声点(noise point):
核心点(core point): -邻域密度大于等于;
边界点(border point): -邻域密度小于、并且-邻域内存在核心点;
噪声点(noise point): 既不是核心点也不是边界点;
图2. 核心点、边界点、噪声点示意图直接密度可达(directly density-reachable):如果是核心点,那么的-邻域内的点与是直接密度可达的。
密度可达(density-reachable):如果是核心点,并且与直接密度可达,与直接密度可达,以此类推,与直接密度可达,与直接密度可达,那么与是密度可达的。
图3. 密度可达示意图密度相连(density-connected):如果存在点,点和点均分别与点密度可达,那么点和点是密度相连的。
图4. 密度相连示意图聚类:密度可达的点形成一个聚类。
图5. 原始数据 图6. 根据密度鉴别核心点、边界点与噪声点 图1. DBSCAN聚类结果。不同颜色表示不同聚类,深蓝色表示噪声点。进行实验
观察不同和参数下的聚类效果:https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/
Python sklearn.cluster.DBSCAN 实例: https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
参考文献
http://csc.csudh.edu/btang/seminar/slides/DBSCAN.pdf
联系方式
邮箱:m18510327489@163.com
您的支持是我创作的动力~
谢谢您的支持(* ̄︶ ̄)
网友评论