DBSCAN算法原理分析

来源:互联网 发布:js tr ctrl 左键 监听 编辑:程序博客网 时间:2024/06/06 04:23

DBSCAN算法原理:

定义:基于密度的带有噪声的空间聚类,可用于异常值监测,通俗来说就是基于密度的聚类算法!
簇的定义:簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并且可以在噪声的空间数据库中发现任意形状的聚类
原理:该算法利用基于密度的聚类的思想,即要求聚类空间中的一定区域内所包含对象的数目不小于某一给定的阈值。
DBSCAN算法的目的:是基于密度寻找被低密度区域分离的高密度样本分为三类:
三类点图示:
这里写图片描述
稠密区域内部的点(核心点):在半径Eps内含有超过MinPts数目的点
稠密区域边缘上的点(边缘点):在半径Eps内点的数量小于MinPts(即不是核心点),但是其邻域内至少包含一个核心点
稀疏区域中的点(噪声或者背景点):任何不是核心点或者边界点的点

算法涉及的基本定义:
(1)ε邻域:给定对象半径ε内的区域称为该对象的ε邻域。
(2)核心对象:如果给定对象ε 邻域内的样本点数大于等于MinPts,则称该对象为核心对象。
(3)直接密度可达:给定一个对象集合D,如果p在q的ε邻域内,且q是一个核心对象,则我们说对象p从对象q出发是直接密度可达的(directly density-reachable)。
(4)密度可达:对于样本集合D,如果存在一个对象链P1,P2,…Pn,P1=q,Pn=p,对于Pi∈D(1≤i≤n),Pi+1是从Pi关于ε和 MinPts直接密度可达,则对象p是从对象q关于ε和 MinPts密度可达的(density-reachable)。
(5)密度相连:如果存在对象O∈D,使对象p和q都是从o关于ε和 MinPts密度可达的,那么对象p到q是关于ε和 MinPts密度相连的(density-connected)。

可以发现,密度可达是直接密度可达的传递闭包,并且这种关系是非对称的。只有核心对象之间相互密度可达。然而,密度相连是对称关系。DBSCAN目的是找到密度相连对象的最大集合。
分类效果:
这里写图片描述
DBSCAN算法的聚类过程

DBSCAN算法基于一个事实:一个聚类可以由其中的任何核心对象唯一确定。等价可以表述为:任一满足核心对象条件的数据对象p,数据库D中所有从p密度可达的数据对象o所组成的集合构成了一个完整的聚类C,且p属于C。

算法的具体聚类过程如下:
扫描整个数据集,找到任意一个核心点,对该核心点进行扩充。扩充的方法是寻找从该核心点出发的所有密度相连的数据点(注意是密度相连)。遍历该核心点的ε邻域内的所有核心点(因为边界点是无法扩充的),寻找与这些数据点密度相连的点,直到没有可以扩充的数据点为止。最后聚类成的簇的边界节点都是非核心数据点。之后就是重新扫描数据集(不包括之前寻找到的簇中的任何数据点),寻找没有被聚类的核心点,再重复上面的步骤,对该核心点进行扩充直到数据集中没有新的核心点为止。数据集中没有包含在任何簇中的数据点就构成异常点。

原创粉丝点击