dbscan算法_数据挖掘入门笔记——DBSCAN聚类(随方逐圆)

本文介绍了DBSCAN聚类算法,一种适用于非凸数据集的密度型聚类方法,重点讲解了核心对象、边界点和噪音点的概念,以及算法的工作原理、优缺点和参数调整。通过实例说明,DBSCAN能有效处理复杂形状的聚类问题,但对密度不均和大规模数据集挑战较大。
摘要由CSDN通过智能技术生成

55ef64ce7f2c4fdf976534167290f55d.png

写在前面:健忘星人自学笔记,仅供参考。

通俗易懂的参考资料

5.无监督学习-DBSCAN聚类算法及应用 - python-data-machine - 博客园​www.cnblogs.com
c938960bb2b149f06e0654acaee0ea70.png

正文:

在上一章我们简单介绍了一下 K-Means算法,其主要针对类圆形区域数据的聚类,对非凸数据集无计可施。而今天要介绍的 密度聚类 DBSCAN 算法可以弥补这个缺点,它可用于任何形状的聚类,既适用于凸样本集,也适用于非凸样本集。

1、DBSCAN 基础概念

DBSCAN,Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法。全称中透露出两个重要信息,即 DBSCAN 聚类算法是抗噪的,稍后我们会介绍详细的机制。

另外就是,DBSCAN 聚类是密度聚类的代表性算法。

密度聚类的思想,其实和人类的思维十分相似,通过判断“是否紧密相连“来确定样本点是否属于一个簇。

如果一个点周围环绕很多其他点,并且比他密度大的点离他距离还很远,则认为这个点是一个聚类中心。在DBSCAN中,我们将其称之为 “核心对象”

为了清楚得定义核心对象,我们需要明确两个判断条件:

(1)核心对象“周围”的距离如何度量?

(2)围绕了“很多”点,“很多”该如何界定?

上面两个问题,正好对应了 DBSCAN 算法中两个重要的参数 (ε,MinPts)

邻域ε,指定的每个核心对象搜索的半径值。

MinPts,每个核心对象周围最少应该包含的点的数量。

由此我们引申出核心点的定义:

若以某个点为中心,指定半径ε范围内包含点的个数超过MinPts,则这个点是一个核心点。

举例,

978b3bfd6b15805a56544e5827a4dbf0.png

如上所示,指定MinPts=5,考察蓝点q 和绿点p

若假设半径为5,分别以p和q为中心画圆,圈定“周围“的搜索半径

以 q 为中心的圆内有7个点(包含自己),超过MinPts(=5),满足核心点定义

所以 q 是一个核心点;

以 p 为中心的圆内有3个点,少于MinPts 的要求,不满足核心点的定义

但同时 p 还有一个特性,它落在了核心点q 的圆内,

虽然 p 很遗憾没达到核心点的资格,但是 p 是一个“边界点”

下面给出边界点的定义,

若以某个点为中心,指定半径 ε 范围内包含点的个数不足MinPts,但是其落在了某个或者多个核心点的邻域内,则该点是一个“边界点”。

最后,对于既不是核心点,也不是边界点的点,我们也给它一个称呼——“噪音点”

2、DBSCAN 原理

理解了“核心点”“边界点”“噪音点”的基本概念,我们来看DBSCAN是如何工作的。

1.将所有点按照“核心点、边界点或噪声点“分类标记;
2.删除噪声点;
3.如果两个核心点之间的距离小于 ε ,为其赋予一条边,互相连通;检查所有核心点
4.每组连通的核心点形成一个簇;
5.将每个边界点指派到一个与之关联的核心点的簇中(哪一个核心点的半径范围之内)。

上面的步骤看起来是不是很简单呢~

官方给出的步骤专业性更强,比较难以读懂,但是我们还是试着理解一下

密度直达:p点与核心对象q的距离小于 ε,p密度直达q

(如之前的举例)

密度可达: p、q之间距离大于 ε,但是两者ε半径范围内,有共同一点m

(显然 m 密度直达p,且 m密度直达q)

核心点 p,q 通过点 m 连接了起来,因此 p、q 密度可达

e47d3fca42172b81fbc2dd41b2b09b51.png

密度相连: p、o 密度可达,q,o 密度可达,则 p,q 密度相连

5245d9b8abd93e3cbf04dfb87215f2e3.png
DBSCAN的算法就是,
(1)先找到一个核心对象,从它出发,确定若干个 直接密度可达的对象
(2)再从这若干个对象出发,寻找它们 直接密度可达的点,
(3)直至最后没有可添加的对象了,那么一个簇的更新就完成了。
我们也可以说,簇其实就是所有密度可达的点的集合。

备注:

我们可能会遇到一些特殊的情况,某些样本可能到两个核心对象的距离都小于ε,但是这两个核心对象由于不是密度直达,又不属于同一个聚类簇,那么如果界定这个样本的类别呢?
一般来说,此时DBSCAN采用先来后到,先进行聚类的类别簇会标记这个样本为它的类别。也就是说DBSCAN的算法不是完全稳定的算法。

3、优缺点

优点:

1、不需要指定簇的个数

2、对噪音不敏感,可以在聚类的同时发现异常点

3、初始值对算法无影响

缺点:

1)如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合。
2) 如果样本集较大时,聚类收敛时间较长,此时可以对搜索最近邻时建立的KD树或者球树进行规模限制来改进。
3) 调参相对于传统的K-Means之类的聚类算法稍复杂,主要需要对 (ε,MinPts) 联合调参,不同的参数组合对最后的聚类效果有较大影响。

今天就到这里,感谢观看~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值