DBSCAN算法
- 格式:pdf
- 大小:95.73 KB
- 文档页数:1
DBSCAN算法
1、DBSCAN简介
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类⽅法)是⼀种基于密度的空间聚类算法。该算法将具有⾜够密度的区域划分为
簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最⼤集合。
该算法利⽤基于密度的聚类的概念,即要求聚类空间中的⼀定区域内所包含对象(点或其他空间对象)的数⽬不⼩于某⼀给定阈值。DBSCAN算法的显著优点是聚类速度快且能够有
效处理噪声点和发现任意形状的空间聚类。但是由于它直接对整个数据库进⾏操作且进⾏聚类时使⽤了⼀个全局性的表征密度的参数,因此也具有两个⽐较明显的弱点:
(1)当数据量增⼤时,要求较⼤的内存⽀持I/O消耗也很⼤;
(2)当空间聚类的密度不均匀、聚类间距差相差很⼤时,聚类质量较差。
2、DBSCAN和传统聚类算法对⽐
DBSCAN算法的⽬的在于过滤低密度区域,发现稠密度样本点。跟传统的基于层次的聚类和划分聚类的凸形聚类簇不同,该算法可以发现任意形状的聚类簇,与传统的算法相⽐它有
如下优点:
(1)与K-MEANS⽐较起来,不需要输⼊要划分的聚类个数;
(2)聚类簇的形状没有偏倚;
(3)可以在需要时输⼊过滤噪声的参数;
3、算法涉及的基本定义:
(1)邻域:给定对象半径 内的区域称为该对象的邻域。
(2)核⼼对象:如果给定对象 邻域内的样本点数⼤于等于MinPts,则称该对象为核⼼对象。
(3)直接密度可达:给定⼀个对象集合D,如果p在q的邻域内,且q是⼀个核⼼对象,则我们说对象p从对象q出发是直接密度可达的(directly density-reachable)。
(4)密度可达:对于样本集合D,如果存在⼀个对象链,,对于, 是从 关于和 MinPts直接密度可达,则对象p是从对象q关于和 MinPts密度可达的(density-reachable)。
(5)密度相连:如果存在对象,使对象p和q都是从o关于和 MinPts密度可达的,那么对象p到q是关于和 MinPts密度相连的(density-connected)。
可以发现,密度可达是直接密度可达的传递闭包,并且这种关系是⾮对称的。只有核⼼对象之间相互密度可达。然⽽,密度相连是对称关系。DBSCAN⽬的是找到密度相连对象的最
⼤集合。
4、DBSCAN算法的聚类过程
DBSCAN算法基于⼀个事实:⼀个聚类可以由其中的任何核⼼对象唯⼀确定。等价可以表述为:任⼀满⾜核⼼对象条件的数据对象p,数据库D中所有从p密度可达的数据对象o所组成
的集合构成了⼀个完整的聚类C,且p属于C。
算法的具体聚类过程如下: 扫描整个数据集,找到任意⼀个核⼼点,对该核⼼点进⾏扩充。扩充的⽅法是寻找从该核⼼点出发的所有密度相连的数据点(注意是密度相连)。遍历该核⼼点的邻域内的所有核
⼼点(因为边界点是⽆法扩充的),寻找与这些数据点密度相连的点,直到没有可以扩充的数据点为⽌。最后聚类成的簇的边界节点都是⾮核⼼数据点。之后就是重新扫描数据集(不
包括之前寻找到的簇中的任何数据点),寻找没有被聚类的核⼼点,再重复上⾯的步骤,对该核⼼点进⾏扩充直到数据集中没有新的核⼼点为⽌。数据集中没有包含在任何簇中的数据
点就构成异常点。
5、算法伪代码
算法描述:
算法: DBSCAN
输⼊: E——半径MinPts——给定点在E邻域内成为核⼼对象的最⼩邻域点数。
D——集合。
输出: ⽬标类簇集合
⽅法: Repeat1) 判断输⼊点是否为核⼼对象
2) 找出核⼼对象的E邻域中的所有直接密度可达点。
Until 所有输⼊点都判断完毕
Repeat
针对所有核⼼对象的E邻域内所有直接密度可达点找到最⼤密度相连对象集合,中间涉及到⼀些密度可达对象的合并。Until 所有核⼼对象的E领域都遍历完毕