聚类方法之DBSCAN

来源:互联网 发布:淘宝旺旺名称怎么修改 编辑:程序博客网 时间:2024/06/05 05:49

算法思想

DBSCAN是一种基于密度的聚类方法,其思想是根据样本间的紧密程度来对簇进行划分。

DBSCAN的样本点一般被分为三类:
1.核心点:
在半径Eps内含有超过MinPts数目的点
2.边界点:
在半径Eps内含有的点不超过MinPts,但是落在核心点领域内的点
3.噪声点:
既不是核心点也不是噪声点的点。
这里有两个参数需要人为指定:半径长度Eps 和 点的数据MinPts

这里写图片描述
如图所示,绿色的为核心点,蓝色的为边界点,红色的为噪声点。

关于样本点构成的一些其他概念:
1.Eps邻域
假设样本点p在数据集内,Eps领域即指的是数据集中离样本p的距离小于等于Eps的样本点的集合。
2.密度直达
假设有样本点p,q。其中p是核心点,q在p的Eps邻域内,则p,q密度直达。
3.密度可达
对于对象链:p_1,p_2……p_n,p_(i+1),是从p_i关于Eps和MinPts直接密度可达的,则对象p_n是从对象p_i关于Eps和MinPts密度可达的。
4.密度相连
对于样本点p、q,若存在样本点k使得p、q均由k密度可达,则称p,q密度相连

这里写图片描述
如上图所示,虚线表示的是Eps邻域,x_1和x_2为密度直达,x_1与x_3为密度可达,x_1与x_4为密度相连。

关于DBSCAN的概念解释到这里,弄懂以上概念,DBSCAN的聚类原理也就显而易见了,即:
1.找寻数据集中的核心点,形成集合 Ω
2.while Ω != null:
a.从Ω中任意选取核心点,并以此核心点找寻最大的密度可达,形成一个簇
b.将在该簇的核心点从Ω中清除
如此,聚类完成。

DBSCAN聚类算法流程图如下:

这里写图片描述

总结

优点:

1.不用人为设定簇的个数
2.对数据集的噪音不敏感
3.能发现任意形状的空间聚类,如能识别“非球形”的簇,而k-均值这种基于距离的聚类方法只能找出球状的簇。
4.聚类结果几乎不依赖节点的遍历顺序

缺点:
1.在大数据集下的I/O开销大
2.当空间聚类不均匀、聚类间差距很大时,DBSCAN效果很差

参考

周志华:《机器学习》
id786 ———– kmean法和dbscan法的直观比较
简单易学的机器学习算法——基于密度的聚类算法DBSCAN
聚类算法初探(五)DBSCAN

原创粉丝点击