当前位置: 首页 > news >正文

狗都能看懂的DBSCAN算法详解

文章目录

DBSCAN简介

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种典型的无监督聚类算法。和K-means相比,不需要指定簇的个数,可以应用于各种非凸形状的数据,能够有效分离异常点,因此也常用于异常检测。

DBSCAN算法流程

DBSCAN通过检查数据集中的点的邻域来形成簇。其核心思想是密度可达性,即如果一个点在某个密度阈值内有足够多的邻居,它就会与这些邻居形成一个簇。具体地,DBSCAN依赖于两个主要参数:

  1. ϵ \epsilon ϵ:定义一个点的邻域的半径。
  2. MinPts:一个点在其邻域内必须包含的最少点数(包括点本身),以便被视为一个核心点

运行机制

DBSCAN算法的运行步骤如下:

  1. 标记所有点为未访问。
  2. 随机选择一个未访问的点P,并将其标记为已访问。
  3. 检查P的ε邻域:
    • 如果P的 ϵ \epsilon ϵ邻域内的点数大于或等于MinPts,则P被视为核心点,并以P为中心创建一个新簇。然后递归地将P的所有邻居也加入该簇。
    • 如果P的 ϵ \epsilon ϵ邻域内的点数小于MinPts,则P被标记为噪声点(后续可能会被归入其他簇)。
  4. 重复步骤2和3,直到所有点都被访问过

在这里插入图片描述

举个实例

现设 ϵ = 1 \epsilon = 1 ϵ=1 M i n P t s = 3 MinPts = 3 MinPts=3,即半径为1的情况下,需要有3个点在领域内才算是核心点。

  1. 任意选择一个点A,其半径圈内有3个符合条件的点,所以A是核心点,并标记为已访问的状态
  2. 在A的半径范围内任意选择一个点,继续进行半径圈扫描,即重复1的操作
  3. 经过n轮迭代之后,到达了B点,B点为圆心的范围内只有一个符合条件的点,虽然它和其他红色的点都是分到一个类里,但它是属于边界点而非核心点
  4. 再经过m轮迭代之后,红色点和黄色点都遍历完成后,我们只剩下N点没有访问过了
  5. 此时选择N点,它的半径圈内并没有任何点,它将被我们标记为异常点/噪声点

这时候我们提出几个点的名称定义:

  • 核心点:若点P的 ϵ \epsilon ϵ半径内至少包含 M i n P t s MinPts MinPts个样本(包括样本P),那么点P称核心点
  • 边界点:若点P在某个核心点P的半径范围内,但其半径范围内没有 M i n P t s MinPts MinPts个样本(包括样本P),则称为边界点
  • 噪声点:若点P既不属于核心点,也不属于边界点,则称该点位噪声点

根据点的分布情况,我们还可以给出几个概念:

  • 密度直达:一个点P1处在点P2的领域内,且P2为核心点,则称P1由P2密度直达
  • 密度可达:一个点P1处在点P2的领域内,且P1和P2均为核心点,则称P1的领域点由P2密度可达
  • 密度相连:如果P1和P2都不是核心点,且P1和P2都在一个簇内,则称P1和P2密度相连

DBSCAN算法特点

优点

  • 可以对任意形状的数据进行聚类,不需要指定分类的数量
  • 对异常点不敏感,可以找出独立的点
  • 聚类结果稳定,即算法选择哪个点都可以,最终聚类的结果一定是一致的

缺点

  • 样本数量较多时,时间消耗会变多,此时可以对搜索最近邻时建立的KD树或者球树进行规模限制来改进
  • 如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合

DBSCAN参数选取技巧

ϵ \epsilon ϵ的选取:找突变点

给定一组点集P(P1、P2…Pn),计算P1到其他所有点的距离,从小到大排序,例如P1到其他点的距离为:

  1. 0.1
  2. 0.11
  3. 0.12
  4. 0.3
  5. 0.35

那么由此可看出,从0.12之后就是比较大的距离变动,因此可以选0.12作为距离阈值。当然实际的选取需要结合多个点集的距离结果

MinPts的选取

视业务情况而定,但一般从小的开始选取,但不要小过2,如果MinPts=1的情况,那么就找不到异常点了

相关文章:

狗都能看懂的DBSCAN算法详解

文章目录 DBSCAN简介DBSCAN算法流程运行机制举个实例 DBSCAN算法特点DBSCAN参数选取技巧 ϵ \epsilon ϵ的选取:找突变点MinPts的选取 DBSCAN简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的…...

运维岗高危操作

序号 高危操作指令 可能存在风险 维护操作要求 1 rm –rf rm –rf是删除文件夹和里面附带内容的一种最快捷的方法,可能会文件误删,导致数据丢失 使用rm –rf命令时千万要小心,可以在.bashrc里面添加: alias rm ‘rm -i’ ,…...

【ajax基础02】URL详解

目录 一:什么是URL 二:URL组成 协议 ​编辑 域名(在url中必须写) 资源路径 三:URL查询参数 定义: 语法格式: 如何利用axios实现特定数据查询: 语法格式: 案例&#xff1a…...

MySQL 7种Join的定义图解示范结果(所有join类型)

文章目录 MySQL 7种Join的定义&图解&示范&结果(所有join类型)基本知识笛卡尔积 建表&填充数据1-Join不带条件account筛选 1-Inner Join 内连接不带条件account相同where筛选玩点特殊的 2-Left Join 左连接不带条件account筛选 3-Right J…...

在 Oracle Linux 8.9 上安装 FFmpeg 的完整指南

在 Oracle Linux 8.9 上安装 FFmpeg 的完整指南 在 Oracle Linux 8.9 上安装 FFmpeg 的完整指南准备工作安装步骤1. 更新系统2. 启用 EPEL 仓库3. 启用 RPM Fusion 仓库4. 安装 DNF 插件核心包5. 启用 CodeReady Builder 仓库6. 安装 FFmpeg7. 验证安装 可能遇到的问题注意事项…...

python爬虫之实现edge无头浏览器和规避检测

python爬虫之实现edge无头浏览器和规避检测 爬取百度网页源码但不打开浏览器 实现代码如下: #需求:实现edge无头浏览器和规避检测 from selenium import webdriver from time import sleep from selenium.webdriver.edge.options import Options# 实现…...

每天一个数据分析题(三百八十七)- 线性回归分析

下列关于线性回归分析中的残差(Residuals)的假设说法正确的是? A. 残差均值总是为零 B. 残差均值总是小于零 C. 残差均值总是大于零 D. 以上说法都不对 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取…...

Perl中的eval块:深入解析与应用

引言 Perl是一种功能强大的脚本语言,以其灵活性和强大的文本处理能力而闻名。在Perl编程中,eval块是一个非常重要的特性,它允许开发者捕获和处理异常,同时也提供了一种执行动态代码的方法。本文将详细探讨eval块的作用、用法以及…...

分享AI学习笔记之Python

当你说"抓取网站数据"时,通常指的是网络爬虫(web scraping)或网络抓取(web crawling)。Python提供了很多库可以帮助你实现这个功能,其中最常见的有requests(用于发送HTTP请求&#xf…...

多版本GCC安装及切换

目录 1 背景2 安装2.1 Ubuntu 20.042.2 Ubuntu 18.04 3 配置4 切换4.1 切换到版本94.2 切换到版本10 1 背景 最近在研究C20中的协程需要安装GCC版本10。用到GCC多版本切换,记录步骤。 2 安装 2.1 Ubuntu 20.04 运行如下命令安装两个版本编译器: sudo apt insta…...

Redis进阶 - 朝生暮死之Redis过期策略

概述 Redis 是一种常用的内存数据库,其所有的数据结构都可以设置过期时间,时间一到,就会自动删除。你可以想象 Redis 内部有一个死神,时刻盯着所有设置了过期时间的 key,寿命一到就会立即收割。 你还可以进一步站在死神…...

MySQL实训--原神数据库

原神数据库 er图DDL/DML语句查询语句存储过程/触发器 er图 DDL/DML语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;DROP TABLE IF EXISTS artifacts; CREATE TABLE artifacts (id int NOT NULL AUTO_INCREMENT,artifacts_name varchar(255) CHARACTER SET utf8 COLLATE …...

Retrieval-Augmented Generation for Large Language Models A Survey

Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 文章目录 Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 Abstract背景介绍 RAG概述原始RAG先进RAG预检索过程后检索过程 模块化RAGModules部分Patterns部分 RAG…...

【曦灵平台】深度体验百度智能云曦灵平台之数字人3.0、声音克隆、直播等功能,AI加持就是不一样,快来一起体验

目录 资产数字人 2D数字人克隆声音克隆 AI卡片更多功能总结推荐文章 资产 可进行人像与声音的定制,让数字人形象和声音成为我们的专属资产,用于后续的内容生产工作 数字人 这里拍摄的视频分辨率和帧率必须要确保是官方要求,这里博主通过第…...

如何使用GPT?初学者的指南

ChatGPT是一个非常先进的AI工具,它使用GPT-4架构,能够生成自然的语言回应。它的多功能性和理解复杂指令的能力,使得很多人用它来回答各种问题,就像用Google一样输入关键词。不过,ChatGPT还能做更多事情,下面…...

24年了 直播带货的未来如何?

32 个国家在取消电商, 那我国的电商呢,首先电商是不会被取缔的。直播电商会被严格的控制,比如有一家饼店,它线下的销售是 3000 万,线上抖音的销售是 5, 000 万。 这一类型小而精又专业的品牌企业,未来在抖…...

【神经网络】深入理解多层神经网络(深度神经网络

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 深入理解多层神经网络&#x…...

CAS原理与JUC原子类

一、CAS基本原理 1、Unsafe类 (1)概念及作用:增强Java语言操作底层资源的能力,里面的方法多为native修饰的方法(基于C实现),不建议在代码中使用,不安全。 (2&#xff…...

【杂记-浅谈OSPF协议之RouterDeadInterval死区间隔】

OSPF协议之RouterDeadInterval死区间隔 一、RouterDeadInterval概述二、设置RouterDeadInterval三、RouterDeadInterval的重要性 一、RouterDeadInterval概述 RouterDeadInterval,即路由器死区间隔,它涉及到路由器如何在广播网络上发现和维护邻居关系。…...

【每日刷题】Day75

【每日刷题】Day75 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1833. 雪糕的最大数量 - 力扣(LeetCode) 2. 面试题 17.14. 最小K个数 - 力扣…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...