DBSCAN算法原理

2023-05-16

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的噪声空间聚类)。大概思想:给定一组空间中的点,它会将紧密挨在一起的点(或者说有很多邻居的点)划分为同一个簇,这些点聚集在一起形成一个高密度的区域;将低密度区域的点标记为异常点,这些点邻居很少。

定义:

  • 样本集为 D = ( X 1 , … , X N ) D=(X_1,…,X_N) D=(X1,,XN)
  • ϵ ϵ ϵ:邻域距离阈值(为其中一个输入参数),当样本 X i X_i Xi X j X_j Xj的距离小于 ϵ ϵ ϵ时,则 X i X_i Xi X j X_j Xj的邻居, X j X_j Xj也是 X i X_i Xi的邻居
  • ϵ − ϵ- ϵ邻域 N ϵ ( i ) N_ϵ (i) Nϵ(i),对于 D D D中的一个样本 X i X_i Xi,其 ϵ − ϵ- ϵ邻域为 N ϵ ( i ) = { X j ∈ D ∣ d ( i , j ) ≤ ϵ } N_ϵ (i)=\{X_j∈D|d(i,j)≤ϵ\} Nϵ(i)={XjDd(i,j)ϵ},基数为 ∣ N ϵ ( i ) ∣ |N_ϵ (i)| Nϵ(i) d ( i , j ) d(i,j) d(i,j)为样本 i i i, j j j间的距离函数,如欧式距离
  • 核心点:如果样本 X i X_i Xi ϵ − ϵ- ϵ邻域个数 ∣ N ϵ ( i ) ∣ ≥ m i n p t s |N_ϵ (i)|≥minpts Nϵ(i)minpts(为另一个输入参数),即 X i X_i Xi至少有 m i n p t s minpts minpts个邻居,则样本 X i X_i Xi称为一个核心点
  • 密度直达:如果 X j X_j Xj X i X_i Xi的邻居且 X i X_i Xi是核心点,则称 X j X_j Xj X i X_i Xi密度直达,这种关系不是对称的, X i X_i Xi X j X_j Xj不一定是密度直达的,除非 X j X_j Xj也是核心点
  • 密度可达:如果存在样本序列 p 1 p 2 … p ( T − 1 ) p T p_1 p_2…p_{(T-1)} p_T p1p2p(T1)pT,且 p ( t + 1 ) p_(t+1) p(t+1) p t p_t pt密度直达(也就是说 p 1 … p ( T − 1 ) p_1…p_{(T-1)} p1p(T1)都是核心点),则称 p T p_T pT p 1 p_1 p1密度可达
  • 密度相连: 对于样本 X i X_i Xi X j X_j Xj,如果存在核心点 X k X_k Xk使得 X i X_i Xi X j X_j Xj X k X_k Xk都是密度可达的,则 X i X_i Xi X j X_j Xj是密度相连的, X k X_k Xk相当于一座桥梁,这种关系是对称的。
  • 异常点:所有不能从其他点可达的点都是异常点

DBSCAN将所有点标记为核心点、边界点或异常点。需要确定的两个参数为 ϵ , m i n p t s ϵ,minpts ϵ,minpts。如下图(来自维基百科), m i n p t s = 4 minpts=4 minpts=4,红色点是核心点(其邻居个数都大于4),黄色点B、C不是核心点,因为它们的邻居个数小于4,但它们到至少一个核心点密度直达,且点B和C是密度相连的,因为点B和C到核心点A是密度可达的。蓝色点N不到任一点可达所以是异常点。

通过以上分析可知:DBSCAN将任意两个距离小于 ϵ ϵ ϵ的核心点归为同一个簇(上图中所有红色点),任何与核心点足够近的边界点也放到与之相同的簇中。所以上图所有红色和黄色点为一个簇。
DBSCAN是基于密度聚类的,本身就有发现异常点的功能,算法发现的异常点恰好是我们所需要的。
DBSCAN参数设置:如果 ϵ ϵ ϵ设置过大,则所有的点都会归为一个簇,如果设置过小,那么簇的数目会过多。如果 m i n p t s minpts minpts设置过大的话,很多点将被视为噪声点,但也会找到更多异常点。

ϵ ϵ ϵ的选取方法可参考这篇论文:Determination of Optimal Epsilon (Eps) Value on DBSCAN Algorithm to Clustering Data on Peatland Hotspots in Sumatra,或是博客,思想很简单,就是对距离排序然后画图找到拐点位置对应的距离就是最优 ϵ ϵ ϵ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DBSCAN算法原理 的相关文章

  • 麒麟安装问题

    对于本系统 需要打开 firewall cmd zone 61 public add port 61 8001 tcp permanent firewall cmd zone 61 public add port 61 8011 tcp p
  • 单实例11g升级到19c

    11g的服务器上安装19c的软件 安装完成后 xff0c 不需要关库 xff0c 修改环境变量为19c的 xff0c 执行dbua开始下述升级 11g升级到19c 执行预检查
  • 编译方式安装mysql

    转载于 xff1a 编译编译方式安装mysql编译 环境准备 环境 xff1a 硬件为4C 4G 50G 系统版本为redhat7 9 创建用户和组 创建MySQL用户和组 并且用户不能登陆 系统自带mysql软件 xff0c 安装时会自动
  • mysql 5.7登陆简单密码问题

    lucifer mysql gt update user set authentication string 61 password 39 mysql 39 where user 61 39 root 39 Query OK 1 row a
  • 5.7及以下版本mysql不能插入中文

    转载于 xff1a https blog csdn net qq 59500621 article details 122390644 5 7及以下版本mysql默认数据库使用的字符集是Latin1 我们需要为其修改字符集为 xff1a u
  • 备库failover升级

    1 centos 6 9 single06 gt centos7 9 single06std 11 2 0 4 搭建上面的dg 2 adg上打补丁psu xff1a 31537677 3 centos 7 9 上安装19c软件 xff0c
  • Data Guard高级玩法:通过闪回恢复failover备库

    转载于 xff1a Data Guard高级玩法 xff1a 通过闪回恢复failover备库 ITPUB博客 今天看到有一个网友提了一个问题 xff0c 描述很简短 测试DG时 xff0c 主库不能宕机 xff0c 如何测试failove
  • Oracle性能调查之ASH

    转载于 xff1a Oracle性能调查之ASH xff08 一 xff09 腾讯云开发者社区 腾讯云 在ORACLE性能问题调查时 xff0c 有价值的诊断情报多 xff1a STATSPACK xff0c AWR xff0c ASH x
  • 记录一次网卡问题

    问题 xff1a root 64 rac19c01 ip a 1 lo lt LOOPBACK UP LOWER UP gt mtu 65536 qdisc noqueue state UNKNOWN group default qlen
  • CRS-1705: Found 1 configured voting files but 2 voting files are required

    背景 xff1a vmware虚拟机安装两节点19c rac xff0c 执行node1 root脚本时正常 xff0c 执行node2的root脚本时报错 报错如下 xff1a CRS 2672 Attempting to start 3
  • wwid和uuid的区别

    转载于 xff1a https blog csdn net zwjzqqb article details 80321348 1 wwid 每个SCSI磁盘都有一个WWID xff0c 类似于网卡的MAC地址 xff0c 是独一无二的 可以
  • Sm2记录介绍

    SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法 xff0c SM2采用的就是ECC 256位的一种 1 签名验签 SSWINAPI SGD UINT32 DEVAPI SKF ECCSignData SGD HDL
  • xshell之for循环

    转载于 xff1a shell while read line 与for循环的区别 冥想心灵 博客园 cnblogs com 例子 xff1a while read line 是一次性将文件信息读入并赋值给变量line xff0c whil
  • virtualbox安装虚拟增强功能

    1 分配光驱 xff0c 选择windows的光驱 2 会发现出现了CD驱动器VBoxGuestAdditions 双击进去 xff0c 发现目录如下 xff1a 3 双击执行VBoxGuestAdditions exe
  • #蓝桥杯嵌入式组#历年客观题解析

    文章目录 第八届初赛第八届决赛第九届初赛第九届决赛第十届初赛第十届决赛 第八届初赛 C D 线与功能 xff1a 两个或多个输出信号连接在一起可以实现逻辑 与 的功能 OC门 xff0c 即 集电极开路 xff0c 实际上只是一个NPN型三
  • Git在vscode中简单使用

    Git在vscode中简单使用 一 Git安装与配置 1 Git安装 xff08 官网地址 xff1a https git scm com xff09 2 Git配置 xff08 1 xff09 安装好后 xff0c 桌面右键 Git Ba
  • 小程序云开发入门

    文章目录 前言一 开通云开发二 使用云开发1 直接创建云开发项目2 修改配置文件引入云开发 三 云数据库1 介绍2 使用 四 云函数1 介绍2 使用 五 云存储1 介绍2 使用 总结 前言 一个小程序在开发时 xff0c 除了考虑界面功能逻
  • 小程序Mpx框架入门

    文章目录 简介一 Mpx的特点1 使用原因2 设计思路3 与其他框架的区别 二 安装使用1 相关命令2 项目创建演示 三 Mpx在vscode中的相关插件四 学习Mpx框架开发1 Mpx具有的功能特性2 学习的资源 总结 简介 Mpx是一款
  • 小程序云函数调用云函数

    文章目录 前言一 案例说明二 功能实现1 云函数1 xff1a getdata2 云函数2 xff1a deldata 总结 前言 小程序云开发提供了云函数 xff0c 云函数是运行在服务端的代码 xff0c 执行速度快 通常一些复杂的功能
  • Vue项目打包后不能正常显示页面

    项目场景 xff1a 通过 Vue CLI 创建的 vue 项目 xff0c 编写完项目后 xff0c 通过 npm run bulid 对项目进行打包 xff0c 再把打包得到的内容 xff08 dist文件夹 xff09 交给后端部署到

随机推荐

  • element-ui二次封装实现全局回到顶部组件

    文章目录 前言一 实现方法1 创建 BackTop 组件2 全局注册组件3 使用组件 二 组件效果总结 前言 在开发 vue 项目时 xff0c 我们都可能用到 element ui xff0c 但是有时 element ui 提供的组件太
  • element-ui二次封装实现普通登录组件

    文章目录 前言一 实现方法1 创建 AccountLogin 组件2 全局注册组件3 使用组件 二 组件效果总结 前言 在开发 vue 项目时 xff0c 我们都可能用到 element ui xff0c 但是有时 element ui 提
  • CFCA预置证书

    1 单一证书 2 导入数字证书流程 3 加密证书私钥结构
  • element-ui二次封装实现短信验证码登录组件

    文章目录 前言一 实现方法1 创建 PhoneLogin 组件2 全局注册组件3 使用组件 二 组件效果总结 前言 在开发 vue 项目时 xff0c 我们都可能用到 element ui xff0c 但是有时 element ui 提供的
  • C++之make、cmake和makefile的区别

    make cmake和makefile的区别 make 此工具类似于批处理工具 xff0c 可以对多个源文件进行批量地编译和链接makefile 是一个文本文件 xff0c 其中包含了make工具在执行时所要遵循的一系列规则Cmake xf
  • Ubuntu系统下搭建PX4环境

    Ubuntu系统下搭建PX4环境 首先我是从一个小白开始的 xff0c 完全不懂linux系统 xff0c 完全不懂PX4 xff0c PX4固件是Pixhawk飞行控制器的官方固件 xff0c Pixhawk官网也给出了Linux win
  • mavlink_generator生成器安装过程

    mavlink generator生成器安装过程 从官网下载mavlink xff08 git clonhttps github com mavlink mavlink git 然后进入mavlink 目录执行 git submodule
  • linux系统下QGC地面站和串口助手cutecom 安装教程

    linux系统下QGC地面站和串口助手cutecom 安装教程 解除权限 xff1a sudo usermod a G dialout USER sudo apt get remove modemmanager y sudo apt ins
  • PX4中通过串口读取STM32F4串口发送过来消息并发布UORB主题

    PX4中通过串口读取STM32F4串口发送过来消息并发布UORB主题 本次小项目是通过PX4读取STM32F4发过来的数据 xff0c 之前博客介绍了我做的STM32端项目 xff0c 再稍微啰嗦一下 xff1a 解析AIRMAR和测深仪数
  • PX4自定义mavlink消息

    PX4自定义mavlink消息 承接前面UORB发布消息 xff0c 然后现在要使用mavlink发布消息 xff0c 然后通过433MHz进行无线传输 这个阶段对我来说异常艰难 xff0c 我个人傻傻看了2天mavlink配置文件 xff
  • GraphSAGE论文总结及源码解读

    论文总结 论文地址 xff0c 源码 本文只对论文做简单的总结分析 xff0c 不详细介绍 xff0c GraphSAGE 即SAmple and aggreGatE 的主要贡献是引入了Inductive和Sample Inductive
  • 【tf】tf.random_shuffle

    张量沿着维度0 按行打乱 重新打乱 xff0c 例如 一个 3x2 张量可能出现的映射是 span class token punctuation span span class token punctuation span span cl
  • 【tf】tf.nn.dropout

    dropout是神经网络中用来防止过拟合的技巧 xff0c 在每一轮训练时随机丢弃一些神经元 tf span class token punctuation span nn span class token punctuation span
  • Windows服务程序

    Windows服务程序 Windows服务程序 liuxwin ChinaUnix博客
  • 【tf】tf.reduce_mean

    x span class token operator 61 span tf span class token punctuation span Variable span class token punctuation span span
  • 马氏距离(Mahalanobis Distance)推导及几何意义

    看了一些博客对马氏距离的解释 xff0c 似乎没有讲到本质的地方 xff0c 本文从欧氏距离存在的问题开始入手 xff0c 一步步推导出马氏距离 xff0c 并得出结论 xff1a 原始空间中的马氏距离等于坐标旋转变换及缩放后的空间中的欧氏
  • GCN推导

    GCN涉及到的理论比较多 xff0c 包括信号分析中的傅里叶变换 图谱等理论 xff0c 这里只做一个简单的推导 xff0c 旨在让读者了解GCN推导的大致思路以及其中用到的定理 xff0c 错误之处还请指出 大致了解GCN的思路后可移步学
  • 离散马尔科夫链的平稳分布的两种解法

    假设离散马尔科夫链的转移矩阵为 P P P xff0c 平稳分布为 pi xff0c 则平稳分布满足 xff1a
  • 协方差矩阵的几何意义

    假设原始数据为 X X X xff0c 其协方差矩阵 C C C 为对称矩阵 xff0c 协方差矩阵的特征分解为
  • DBSCAN算法原理

    DBSCAN Density Based Spatial Clustering of Applications with Noise xff0c 基于密度的噪声空间聚类 大概思想 xff1a 给定一组空间中的点 xff0c 它会将紧密挨在一