DBSCAN聚类算法简介

总结:机器学习之DBSCAN 一、基本思想 DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间的紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。 通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,则我们就得到了最终的所有聚类类别结果。 二、DBSCAN密度定义 在上一节我们定性描述了密度聚类的基本思想,本节我们就看看DBSCAN是如何描述密度聚类的。DBSCAN是基于一组邻域来描述 阅读详情
AI摘要

DBSCAN是一种基于密度的聚类算法,能发现任意形状的簇并识别噪音点。算法通过核心点、边界点和噪音点的概念,利用Eps邻域和MinPts参数进行聚类。适用于非凸数据集,能同时发现异常点,但对参数敏感。

DBSCAN(Density—Based Spatial Clustering of Application with Noise)算法是一种典型的基于密度的聚类方法。它将簇定义为密度相连的点的最大集合,能够把具有足够密度的区域划分为簇,并可以在有噪音的空间数据集中发现任意形状的簇。

1. 基本概念

DBSCAN 算法中有两个重要参数:Eps 和 MmPtS。Eps 是定义密度时的邻域半径,MmPts 为定义核心点时的阈值。

在 DBSCAN 算法中将数据点分为以下 3 类。

1)核心点

如果一个对象在其半径 Eps 内含有超过 MmPts 数目的点,则该对象为核心点。

2)边界点

如果一个对象在其半径 Eps 内含有点的数量小于 MinPts,但是该对象落在核心点的邻域内,则该对象为边界点。

3)噪音点

如果一个对象既不是核心点也不是边界点,则该对象为噪音点。

通俗地讲,核心点对应稠密区域内部的点,边界点对应稠密区域边缘的点,而噪音点对应稀疏区域中的点。

在图 1 中,假设 MinPts=5,Eps 如图中箭头线所示,则点 A 为核心点,点 B 为边界点,点 C 为噪音点。点 A 因为在其 Eps 邻域内含有 7 个点,超过了 Eps=5,所以是核心点。

点 E 和点 C 因为在其 Eps 邻域內含有点的个数均少于 5,所以不是核心点;点 B 因为落在了点 A 的 Eps 邻域内,所以点 B 是边界点;点 C 因为没有落在任何核心点的邻域内,所以是噪音点。

DBSCAN算法数据点类型示意
图 1  DBSCAN算法数据点类型示意

进一步来讲,DBSCAN 算法还涉及以下一些概念。

名称说明
Eps 邻域简单来讲就是与点的距离小于等于 Eps 的所有点的集合。
直接密度可达如果点 p 在核心点 q 的 Eps 邻域內,则称数据对象 p 从数据对象 q 出发是直接密度可达的。
密度可达如果存在数据对象链 是从 关于 Eps 和 MinPts 直接密度可达的,则数据对象 是从数据对象 关于 EpsMinPts 密度可达的。
密度相连对于对象 p 和对象 q,如果存在核心对象样本 o,使数据对象 p 和对象 q 均从 o 密度可达,则称 p 和 q 密度相连。显然,密度相连具有对称性。
密度聚类簇由一个核心点和与其密度可达的所有对象构成一个密度聚类簇。

直接密度可达和密度可达示意
图 2  直接密度可达和密度可达示意

在图 2 中,点 a 为核心点,点 b 为边界点,并且因为 a 直接密度可达 b。但是 b 不直接密度可达 a(因为 b 不是一个核心点)。因为 c 直接密度可达 a,a 直接密度可达 b,所以 c 密度可达 b。但是因为 b 不直接密度可达 a,所以 b 不密度可达 c。但是 b 和 c 密度相连。

2. 算法描述

DBSCAN 算法对簇的定义很简单,由密度可达关系导出的最大密度相连的样本集合,即为最终聚类的一个簇。

DBSCAN 算法的簇里面可以有一个或者多个核心点。如果只有一个核心点,则簇里其他的非核心点样本都在这个核心点的 Eps 邻域里。如果有多个核心点,则簇里的任意一个核心点的 Eps 邻域中一定有一个其他的核心点,否则这两个核心点无法密度可达。这些核心点的 Eps 邻域里所有的样本的集合组成一个 DBSCAN 聚类簇。

DBSCAN算法的描述如下。

  • 输入:数据集,邻域半径 Eps,邻域中数据对象数目阈值 MinPts;
  • 输出:密度联通簇。

处理流程如下。

1)从数据集中任意选取一个数据对象点 p;

2)如果对于参数 Eps 和 MinPts,所选取的数据对象点 p 为核心点,则找出所有从 p 密度可达的数据对象点,形成一个簇;

3)如果选取的数据对象点 p 是边缘点,选取另一个数据对象点;

4)重复(2)、(3)步,直到所有点被处理。

DBSCAN 算法的计算复杂的度为 O(n²),n 为数据对象的数目。这种算法对于输入参数 Eps 和 MinPts 是敏感的。

3. 算法实例

下面给出一个样本数据集,如表 1 所示,并对其实施 DBSCAN 算法进行聚类,取 Eps=3,MinPts=3。

表 1 DSCAN算法样本数据集
p1p2p3p4p5p6p7p8p9p10p11p12p13
1224566791353
2143879951212123

数据集中的样本数据在二维空间内的表示如图 3 所示。

直接密度可达和密度可达示意
图 3  直接密度可达和密度可达示意

第一步,顺序扫描数据集的样本点,首先取到 p1(1,2)。

1)计算 p1 的邻域,计算出每一点到 p1 的距离,如 d(p1,p2)=sqrt(1+1)=1.414。

2)根据每个样本点到 p1 的距离,计算出 p1 的 Eps 邻域为 {p1,p2,p3,p13}。

3)因为 p1 的 Eps 邻域含有 4 个点,大于 MinPts(3),所以,p1 为核心点。

4)以 p1 为核心点建立簇 C1,即找出所有从 p1 密度可达的点。

5)p1 邻域内的点都是 p1 直接密度可达的点,所以都属于C1。

6)寻找 p1 密度可达的点,p2 的邻域为 {p1,p2,p3,p4,p13},因为 p1 密度可达 p2,p2 密度可达 p4,所以 p1 密度可达 p4,因此 p4 也属于 C1。

7)p3 的邻域为 {p1,p2,p3,p4,p13},p13的邻域为 {p1,p2,p3,p4,p13},p3 和 p13 都是核心点,但是它们邻域的点都已经在 Cl 中。

8)P4 的邻域为 {p3,p4,p13},为核心点,其邻域内的所有点都已经被处理。

9)此时,以 p1 为核心点出发的那些密度可达的对象都全部处理完毕,得到簇C1,包含点 {p1,p2,p3,p13,p4}。

第二步,继续顺序扫描数据集的样本点,取到p5(5,8)。

1)计算 p5 的邻域,计算出每一点到 p5 的距离,如 d(p1,p8)-sqrt(4+1)=2.236。

2)根据每个样本点到 p5 的距离,计算出p5的Eps邻域为{p5,p6,p7,p8}。

3)因为 p5 的 Eps 邻域含有 4 个点,大于 MinPts(3),所以,p5 为核心点。

4)以 p5 为核心点建立簇 C2,即找出所有从 p5 密度可达的点,可以获得簇 C2,包含点 {p5,p6,p7,p8}。

第三步,继续顺序扫描数据集的样本点,取到 p9(9,5)。

1)计算出 p9 的 Eps 邻域为 {p9},个数小于 MinPts(3),所以 p9 不是核心点。

2)对 p9 处理结束。

第四步,继续顺序扫描数据集的样本点,取到 p10(1,12)。

1)计算出 p10 的 Eps 邻域为 {p10,pll},个数小于 MinPts(3),所以 p10 不是核心点。

2)对 p10 处理结束。

第五步,继续顺序扫描数据集的样本点,取到 p11(3,12)。

1)计算出 p11 的 Eps 邻域为 {p11,p10,p12},个数等于 MinPts(3),所以 p11 是核心点。

2)从 p12 的邻域为 {p12,p11},不是核心点。

3)以 p11 为核心点建立簇 C3,包含点 {p11,p10,p12}。

第六步,继续扫描数据的样本点,p12、p13 都已经被处理过,算法结束。

4. 算法优缺点

和传统的 k-means 算法相比,DBSCAN 算法不需要输入簇数 k 而且可以发现任意形状的聚类簇,同时,在聚类时可以找出异常点。

DBSCAN 算法的主要优点如下。

1)可以对任意形状的稠密数据集进行聚类,而 k-means 之类的聚类算法一般只适用于凸数据集。

2)可以在聚类的同时发现异常点,对数据集中的异常点不敏感。

3)聚类结果没有偏倚,而 k-means 之类的聚类算法的初始值对聚类结果有很大影响。

DBSCAN 算法的主要缺点如下。

1)样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用 DBSCAN 算法一般不适合。

2)样本集较大时,聚类收敛时间较长,此时可以对搜索最近邻时建立的 KD 树或者球树进行规模限制来进行改进。

3)调试参数比较复杂时,主要需要对距离阈值 Eps,邻域样本数阈值 MinPts 进行联合调参,不同的参数组合对最后的聚类效果有较大影响。

4)对于整个数据集只采用了一组参数。如果数据集中存在不同密度的簇或者嵌套簇,则 DBSCAN 算法不能处理。为了解决这个问题,有人提出了 OPTICS 算法。

5)DBSCAN 算法可过滤噪声点,这同时也是其缺点,这造成了其不适用于某些领域,如对网络安全领域中恶意攻击的判断。

推荐学习目录:58.Apriori算法和FP-Tree算法
59.基于大数据的精准营销

DBSCAN聚类——基于密度的聚类算法(常用的聚类算法) 介绍基于密度的聚类算法——DBSCAN。涉及核心概念、原理步骤、参数调优、聚类评估方法、优缺点、适用场景。 阅读详情

相关推荐

机器学习--DBSCAN聚类算法详解

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,能够将高密度区域中的数据点划分为簇,并识别低密度区域中的噪声点。与K-Means等算法不同,DBSCAN不需要预先指定簇的数量,且能够发现任意形状的簇。DBSCAN是一种强大的基于密度的聚类算法,能够自动发现簇的数量、处理噪声数据并识别任意形状的簇。尽管DBSCAN对参数选择较为敏感,但通过合理调整参数,它仍然能够在许多实际应用中取得良好的效果。

2201_75491841的博客 3156

DBSCAN详解

一、基本概念 DBSCAN的基本概念可以用1,2,3,4来总结。 1个核心思想:基于密度 直观效果上看,DBSCAN算法可以找到样本点的全部密集区域,并把这些密集区域当做一个一个的聚类簇。 2个算法参数:邻域半径R和最少点数目minpoints 这两个算法参数实际可以刻画什么叫密集——当邻域半径R内的点的个数大于最少点数目minpoints时,就是密集。 3种点的类别:核心点,边界点和噪声点 邻域半径R内样本点的数量大于等于minpoints的点叫做核心点。不属于核心点但在某个核心点的邻域内的点叫做边界

皮卡丘的情绪 8万+

[Python] [机器学习] 基础聚类算法(K-means、AHC、DBSCAN)简介及可视化代码

聚类分析 之前写的入门级介绍,有点久远有些ref找不着了 文章目录聚类分析简介目标作用类型聚类vs分类K-means[K-means] 伪代码[K-means] 过程详解[K-means] 初始点的选择[K-means] 距离的度量[K-means] 质心的选择[K-means] 参数确定[K-means] 优缺点AHC[AHC] 层次聚类类型[AHC] 伪代码[AHC] 过程详解[AHC] 邻近...

土肆的笔记本 5809

聚类分析算法——DBSCAN(密度聚类)算法详解

DBSCAN 是一种基于密度的聚类算法,特别适用于发现任意形状的簇,并且具有处理噪声点的能力。通过合理选择参数 ε 和minPts,它可以在空间数据分析、图像处理、异常检测等领域发挥重要作用。

goTsHgo的博客 1万+

DBSCAN聚类算法原理及图解

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法,和K-Means,BIRCH这些一般只适用于凸样本集的聚类相比,DBSCAN既可以适用于凸样本集,也可以适用于非凸样本集。下面我们就对DBSCAN算法的原理做一个总结。 1. 密度聚类原理     DBS...

种花家的奋斗兔的博客 1万+

聚类算法的改进——DBSCAN

聚类算法的改进——DBSCAN K-means算法有几个明显的缺点,例如需要用户指定聚类数目,而且聚类的形状比较有局限性。 这里考虑采用DBSCAN(Density - Based Spatial Clustering of Applications with Noise) 该算法将具有足够高密度的区域划分为簇,并可以发现任何形状的聚类 DBSCAN和K-Means的比较: 1、 DBSCAN和K...

江南小帅瓜的博客 6594

dbscan聚类算法实例_DBSCAN聚类算法简介

DBSCAN(Density—Based Spatial Clustering of Application with Noise)算法是一种典型的基于密度的聚类方法。它将簇定义为密度相连的点的最大集合,能够把具有足够密度的区域划分为簇,并可以在有噪音的空间数据集中发现任意形状的簇。1. 基本概念DBSCAN 算法中有两个重要参数:Eps 和 MmPtS。Eps 是定义密度时的邻域半径,MmPts...

weixin_29793587的博客 2505

DBSCAN聚类算法

DBSCAN是一种基于密度的聚类算法,由Martin Ester等人在1996年提出(论文标题:《A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise》)。与K-Means等基于质心的聚类算法不同,DBSCAN通过识别数据点的“密度连接”区域来形成簇,能够发现任意形状的簇,并且对噪声点(异常点)具有鲁棒性。DBSCAN是一种强大的基于密度的聚类算法,适合处理任意形状的簇和噪声数据。

Rhett_Butler0922的博客 1561

dbscan算法_DBSCAN聚类算法简介

DBSCAN(Density—Based Spatial Clustering of Application with Noise)算法是一种典型的基于密度的聚类方法。它将簇定义为密度相连的点的最大集合,能够把具有足够密度的区域划分为簇,并可以在有噪音的空间数据集中发现任意形状的簇。1. 基本概念DBSCAN 算法中有两个重要参数:Eps 和 MmPtS。Eps 是定义密度时的邻域半径,MmPts...

weixin_39970994的博客 1801

DBSCAN聚类算法及其应用

DBSCAN聚类算法及其应用 作者:禅与计算机程序设计艺术 1. 背景介绍 数据聚类是机器学习和数据挖掘领域的一个重要问题,它旨在将相似的数据对象划分到同一个簇(cluster)中,而不同簇之间的数据对象具有较大的差异。作为一种无监督学习方法,聚类算法广泛应用于客户细分、异常检测

AI天才研究院 1148

聚类算法:DBSCAN密度聚类算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,由Martin Ester、Hans-Peter Kriegel、Jörg Sander和Xiaowei Xu在1996年的KDD会议上首次提出。与传统的聚类算法如K-means相比,DBSCAN不需要预先指定聚类的数量,且能够识别出任意形状的聚类,同时还能处理噪声数据。这一特性使得DBSCAN在处理具有复杂结构和噪声的真实世界数据时表现出色。

kkchenjj的博客 3154

机器学习:密度聚类-DBSCAN算法简介(附代码实现)

密度聚类假设聚类结构能通过样本分布的紧密程度确定。 DBSCAN(Density-Based Spacial Clustering of Application with Noise)就是一种著名的密度聚类算法,它用一组参数(,MinPts)来刻画样本分布的紧密程度。先定义下面的一些概念: -邻域:对,其-邻域包含样本集D中与的距离不大于的样本,即; 核心对象:若的-邻域至少包含MinPts...

do it 1059

RKDevTool解包和打包(Windows)

我们将修改后的打包工具存放在了RKDevTool_Release_v2.92软件压缩包的rockdev目录下,可以搭配RKDevTool的解包功能使用。双击板卡主芯片对应的bat文件,开始进行打包。红框中的内容是我们的打包工具及辅助打包的可执行文件,Image目录下存放了我们的分区镜像, package-file是分区与分区镜像文件的对应关系。将从网盘获取的Update.zip镜像解压成.img格式并重命名为update.img,也可以直接使用SDK生成的update.img镜像。

tianpu2320959696的博客 3352

一文搞懂聚类算法

【代码】一文搞懂聚类算法。

码龙社的博客 545

【MFRC522】STM32与MFRC522的SPI通信优化及常见问题解析

本文深入解析了STM32与MFRC522进行SPI通信的优化方法与常见问题。从基础的硬件连接到SPI时序优化,再到关键的寄存器配置(如RFCfgReg设为0x4F以提升读卡稳定性),文章提供了详细的调试技巧和实战排坑指南,帮助开发者实现稳定高效的IC读卡应用。

yhn45678901的博客 841

用python将dycom .dcm格式图像转换为nifti .nii

因为发现目前搜索到的多数中文教程并不能正确将FMRI图像正确转换,例如很多用simpleITk的seriesreader的,所以写了一下自己正确转换的方法。因为FMRI是一个4D数据,有时间轴,所以用seriesreader读写出来的图像把时间轴维度给降维了。当然你用SPM12工具的dycom import也是能正确转换的,但是我还是喜欢python这样的,代码直接简单。

qq_41103479的博客 3609

一文弄懂DBSCAN聚类算法

今天就到这里了,本文重点介绍了机器学习中利用DBSCAN算法进行聚类的讲解,并给出了详细的图例说明。您学废了吗?

sgzqc的专栏 1万+

脑机接口最新发展动态报告 (2024-2025)

脑机接口动态

高山 4106

DBSCAN聚类算法的实现

DBSCAN聚类算法的实现1. 作者介绍2.关于理论方面的知识介绍2.1 DBSCAN算法介绍2.2 鸢尾花数据集介绍3.实验过程3.1 实验代码3.2 实现过程3.3 实验结果4.参考文献 1. 作者介绍 刘鹏程,男,西安工程大学电子信息学院,2021级硕士研究生 研究方向:机器视觉与人工智能 电子邮件:1084823951@QQ.com 孟莉苹,女,西安工程大学电子信息学院,2021级硕士研究生,张宏伟人工智能课题组 研究方向:机器视觉与人工智能 电子邮件:2425613875@qq.com 2.关于理

ZHW-鲜橙大AI课题组的博客 7885

某手sig3-ios算法 Chomper黑盒调用

本文主要是介绍Chomper的算法模拟执行,Chomper目前已经已经是能比较完整的模拟ios可执行文件执行的模拟器,在这块有非常大的优势。以前安卓端有强势的unidbg,现在iOS也有Chomper了,后续等待作者持续更新,完善Chomper。强势推荐一波-> Chomper地址: https://github.com/sledgeh4w/chomper。我这块也已经使用Chomper完成雅迪系列、某手的算法调用。后续也会有更多扩展。

成小新的博客 2156

强化学习在视觉导航中的应用

强化学习在视觉导航中的应用​ ,人工智能,计算机视觉,大模型,AI,强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境进行交互,以最大化累积奖励为目标的机器学习范式。它不依赖于预定义的规则或大量标注数据,而是让智能体在试错过程中学习最优策略。计算机视觉(Computer Vision)则赋予智能体 “观察” 环境的能力,使其能够从图像或视频中提取有用信息。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 22万+

聚类算法之DBSCAN算法之一:经典DBSCAN

DBSCAN是基于密度空间的聚类算法,与KMeans算法不同,它不需要确定聚类的数量,而是基于数据推测聚类的数目,它能够针对任意形状产生聚类。 1.epsilon-neighborhood epsoiln-neighborhood(简称e-nbhd)可理解为密度空间,表示半径为e且含有若干个点的nbhd,密度等于包含点的个数/空间大小。图中中心点是(3,2),半径epsilon是0.5 根据式子...

vainfanfan的博客 4万+

RK3568 OpenHarmony3.2 蓝牙模块AP6275S适配(已更新)

OpenHarmony3.2 Release版默认是适配AP6275s这款蓝牙芯片的,但是打开蓝牙,发现无法扫描到设备、连接设备。目前平台soc为RK3568,根据项目要求,自定义外设。接下来将以解决bug为目的,学习和记录OpenHarmony平台下蓝牙模块的适配流程。RK809 CLK:32.768KHzUART1M1:与蓝牙模块通讯的串口:GPIO4_B6:GPIO4_A5WAKE_GPIO:未定义,硬件拉高1.8V: 未定义,悬空主要是打开串口,/dev/ttyS1,得到文件描述符fd。

Martian_Jonas的博客 2248
上一篇: k-means聚类算法简介
下一篇: 数据挖掘之关联规则分析简介
QYUooYUQ
博客等级 码龄7年 213粉丝 69原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值