DBSCAN算法简介

Posted 好奇小圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBSCAN算法简介相关的知识,希望对你有一定的参考价值。


前言

DBSCAN(Density-based spatial clustering of applicationswith noise)是Martin Ester, Hans-PeterKriegel等人于1996年提出的一种基于密度的聚类方法,聚类前不需要预先指定聚类的个数,生成的簇的个数不定(和数据有关)。该算法利用基于密度的聚类的概念,即要求聚类空间中的一定区域内所包含对象(点或其他空间对象)的数目不小于某一给定阈值。该方法能在具有噪声的空间数据库中发现任意形状的簇,可将密度足够大的相邻区域连接,能有效处理异常数据。


一、示例网站

DBSCAN可视化
以“smile face”为例,K均值算法所示分类结果(四类,我随便确定的初始点):

DBSCAN算法所示的分类结果:

显然后者的分类更加合理

二、DBSCAN数据点分类

DBSCAN算法将数据点分为三类:
·核心点:在半径Eps内含有不少于MinPts数目的点
·边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内
·噪音点:既不是核心点也不是边界点的点


在这幅图里,MinPts = 4,点A和其他红色点是核心点,因为它们的ε-邻域(图中红色圆圈)里包含最少4个点(包括自己),由于它们之间相互相可达,它们形成了一个聚类。点B和点C不是核心点,但它们可由A经其他核心点可达,所以也和A属于同一个聚类。点N是局外点,它既不是核心点,又不由其他点可达。

三、伪代码

(来自维基百科)

四、DBSCAN的优缺点

优点:
1.基于密度定义,能处理任意形状和大小的簇;
2.可在聚类的同时发现异常点;
3.与K-means比较起来,不需要输入要划分的聚类个数。
缺点:
1.对输入参数é和Minpts敏感,确定参数困难;
2. 由于DBSCAN算法中,变量ε和Minpts是全局唯一的,当聚类的密度不均匀时,聚类距离相差很大时,聚类质量差;
3.当数据量大时,计算密度单元的计算复杂度大。


以上是关于DBSCAN算法简介的主要内容,如果未能解决你的问题,请参考以下文章

常用聚类算法 DBSCAN算法

5.无监督学习-DBSCAN聚类算法及应用

DBSCAN方法及应用

具有噪声的基于密度的空间聚类算法--DBSCAN

聚类算法DBSCAN算法及其Python实现

深度解读 python 实现 dbscan算法