编辑导语:DBSCAN算法是一种典型的基于密度的聚类方法,能够将具有足够高密度的区域划分为簇,并在具有噪声的数据中发现任意形状的簇;本文作者分享了关于如何用DBSCAN聚类模型做数据分析,我们一起来看一下。

DBSCAN属于无监督学习算法,无监督算法的内涵是观察无标签数据集自动发现隐藏结构和层次,在无标签数据中寻找隐藏规律。
聚类模型在数据分析当中的应用:既可以作为一个单独过程,用于寻找数据内在规律,也可以作为分类等其他分析任务的前置探索。
上篇我们讲了基于原型的k-means聚类算法,这篇我们来讲通常情况下聚类效果表现更优异的密度聚类DBSCAN。
一、什么是DBSCAN
DBSCAN是一种基于密度的考虑到噪音的空间聚类算法;简单来讲,给定一组点,DBSCAN将彼此距离(欧几里得距离)很近的点聚成一类,同时它还将低密度区域中的点标记为异常值(outlier)。
要了解DBSCAN算法,我们先来熟悉一些关键概念:数据点密度:某数据点指定的半径中点的数量即称为密度;核心对象/核心点:如果指定半径(ε)内的数据点数量超过了规定的点数量(Minpts),那么该点即称为核心点;边界点:如果某点的半径(ε)内的点数量少于规定的点数量(Minpts),不能发展下线,但是却在核心点的邻域内,那么该点称为边界点;密度可达:若某点a在点b的邻域内,则b是核心点a的直接密度可达,若点c又在点b的邻域内,则点c是点a的间接密度可达,a和c密度相连(传播过程);异常值/离群值:未在核心点邻域内,从任何一个核心点出发都密度不可达,既不是核心点也不是边界点的点称为异常值点;
以下图为例,将所有点基于半径(ε)画圈,指定数据点密度为3,我们发现下图红色点在指定半径内的密度均>3,故红色点为核心点。
而B、C点在核心点邻域内,但是其半径内的点只有2个,小于指定密度,故B、C为边界点。
N点未在核心点邻域内,且从任何一个核心点出发都密度不可达,故N为异常值点;以上点A与B、A与C均密度相连。

二、DBSCAN算法实现原理算法根据指定的邻域密度参数 (ε , Minpts ) 找出所有点中的核心点,确定核心点集合为Ω;从Ω中,随机选取一个核心点作为对象,找出所有由其密度可达的样本生成聚类簇;重复过程2,在Ω中随机选取未被聚簇过的剩余核心点,持续进行直到所有核心点密度可达的聚类完全被发现;

三、算法优缺点