聚类算法 - DBSCAN

一、定义

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。


image.png

二、算法过程

算法的过程要提到几个概念:
核心点:指的是在数据指定半径内周围存在>=n个数据,那么这个数据就是核心点
边缘点:指的是在数据指定半径内周围存在 离群点:指的是在数据指定半径内周围没有数据,那么这个数据就是离群点
即设定的半径和最小包含点数(minpoints)是这个算法的2个参数

第一步,先按照上述的概念将所有的数据标记为核心点、边缘点和离群点
第二步,删除离群点
第三步,为距离在半径之内的所有核心点之间赋予一条边
第四步,每组连通的核心点形成一个簇
第五步,将每个边界点指派到一个与之关联的核心点的簇中(哪一个核心点的半径范围之内)
大功告成!
以下是DBSCAN的动画展示,--->传送门

三、优点与缺点

1、优点

1)与K-means方法相比,DBSCAN不需要事先知道要形成的簇类的数量
2) 与K-means方法相比,DBSCAN可以发现任意形状的簇类
3)DBSCAN能够识别出噪声点
4)DBSCAN对于数据库中样本的顺序不敏感,即Pattern的输入顺序对结果的影响不大。但是,对于处于簇类之间边界样本,可能会根据哪个簇类优先被探测到而其归属有所摆动

2、缺点

1)DBScan不能很好反映高维数据
2)DBScan不能很好反映数据集以变化的密度
3)如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差

你可能感兴趣的:(聚类算法 - DBSCAN)