首页 > 其他分享 >DBSCAN学习笔记

DBSCAN学习笔记

时间:2023-02-10 19:46:22浏览次数:65  
标签:DBSCAN 核心 邻域 笔记 学习 可达 minPts 密度

基本概念

  • 核心点:若某个点的密度达到算法设定的阈值,即ε-邻域内点的数量(包括自己)不小于minPts,则该点为核心点。

  • 边界点:在ε-邻域内点的数量小于minPts,但是落在核心点邻域内的点。

  • 噪声点:不属于任何一个簇的点,从任何一个核心点出发都是密度不可达的。

  • ε-邻域:设定的半径r。

  • 直接密度可达:若某点p在点q的r邻域内,且q是核心点,则称p从q出发是直接密度可达的。

  • 密度可达:若有一个点的序列q0、q1...qk,对任意q0-qi-qk是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密度可达的传播。

  • 密度相连:若从某核心点p出发,点q和点k都是密度可达的,则称点q和点k是密度相连的。

如果p是核心点,则它与所有由它可达的点(包括核心点和边界点)形成一个簇,每个簇拥有最少一个核心点,边界点也可以是簇的一部分,但它在簇的边缘位置,因为它不能到达更多的点。在DBSCAN里,簇可以理解为被低密度区域分隔开的稠密对象区域,DBSCAN将具有足够高密度的区域划分为簇,并在具有噪声的空间数据中发现任意形状的簇。

执行过程

DBSCAN通过检查空间数据中每点的邻域来搜索簇。

如果点p的邻域包含的点多于minPts,则创建一个以p为核心点的新簇,然后,DBSCAN迭代地聚集从这些核心点密度可达的对象,这个过程可能涉及一些密度可达簇的合并,当没有新的点可以添加到任何簇时,该过程结束。

具体步骤

  • 根据ϵ寻找每个点的邻域,找出核心点;
  • 对于每一个核心点,如果这个核心点未被分配到某一个簇时,创建一个新的簇;
  • 寻找这个核心点所有邻域点,并循环寻找这些邻域点相应的邻域点,将所有这些点分配到同一个簇;
  • 重复以上三步,直到左右核心点都被分配。对于不属于任何簇的点即为噪声点。

参数选择

半径r:根据k距离来设定。

首先选中一个点,计算它和所有其它点的距离,从小到大排序为d1、d2、d3...,假如d3和d4之间的差异很大,就可以认为d1到d3之间的距离是合适的,将其设为半径。

minPts:一般可通过多次尝试设置。

优缺点

优点

  • 不需要指定簇个数;

  • 可以发现任意形状的簇;

  • 擅长找到离群点(检测任务);

  • 仅需两个参数。

缺点

  • 不适用于高维数据;

  • 参数对结果影响非常大;

  • sklearn中效率很慢(可以应用数据削减策略)。

算法可视化演示

DBSCAN的可视化演示

标签:DBSCAN,核心,邻域,笔记,学习,可达,minPts,密度
From: https://www.cnblogs.com/engpj/p/17110134.html

相关文章

  • 学习打卡01- java入门
    1,基础知识点:java的三个版本javaSE(java基础版),javaEE(java企业版),javaME(小型嵌入式开发)LTS(Longterm<时期>support<支持>)长期支持版公司长期维护包括5.......
  • 函数基础学习整理-python
    1.数学函数importmathprint('-1的绝对值是{}'.format(abs(-1)))print('divmod函数返回商和余数的元祖{}'.format(divmod(9,3)))#****print('sum函数求和{}'.fo......
  • 学习Python的第一天
    一,Typora软件的使用 #1.官网下载https://www.typoraio.cn/#2.该软件支持markdown格式,是目前使用最为频繁的一种格式,该软件的后缀名是.md#3.如何书写标题(6级)......
  • 2.10学习记录
    typora掌握了typora的基础用法,包括但不限于标题的创建和子标题的设立以及更换代码环境其中标题创建是ctrl+数字数字代表几级标题子标题无序标题:星号+空格  快捷:ctr......
  • R机器学习:重复抽样在机器学习模型建立过程中的地位理解
    在做机器学习项目的时候,一开始我们会将数据集分为训练集和测试集,要记住测试集只能用一次,只能用来评估最终最好的模型。如果你反复去使用测试集,反复测试后从里面挑最好的,你......
  • numpy学习笔记
    numpy基本概念:一个很方便的进行矩阵数组相关操作的库一个数组所包含的信息是非常多的,我们也可以用这样的多的内容进行计算importnumpyasnpa_list=[1,2,2,3]a_np......
  • 软考-软件工程笔记
    1、软件开发方法2、软件开发模型3、逆向工程4、需求工程5、软件系统建模6、系统设计7、测试与评审8、系统运行与软件维护 一、软件开发方法1、结构化法传统的......
  • 学习笔记——尚好房项目(配置ssm环境、测试ssm环境)
    2023-02-10一、配置SSM环境1、添加日志文件在“shf-parent/web-admin/src/main/resources”下创建“logback.xml”<?xmlversion="1.0"encoding="UTF-8"?><configur......
  • Markdown学习
    Markdown学习标题n级标题一级标题为#+[空格]+标题或者ctrl+1二级标题则为##+[空格]+标题或者ctrl+2后续几级标题依此类推...最多支持6级标题字体粗体在文字的两端......
  • vuex相关笔记
    vuex是什么?vuex是管理应用程序状态,实现组件间通信的。为什么使用vuex?在开发大型应用的项目时,会出现多个视图组件依赖一个同一个状态,来自不同视图的行为需要变更同一个......