DBSCAN聚类——Python实现

2023-05-16

一、DBSCAN(Density-Baseed Spatial Clustering of Applications with Noise)聚类算法

  1. 核心对象:若某个点的密度达到算法设定的阈值则其为核心。(即r邻域内点的数量不小于minPts)
  2. 邻域的距离阈值:设定的半径r
  3. 直接密度可达:若某点p在点q的r邻域内,且q是核心点则p-q直接密度可达.

解释如图: 

        4. 密度可达:若有一点的序列Q0,Q1,…,QK,对任意Qi-Qi-1是直接密度可达的,则称从Q0到Q是密度可达,这实际上是直接密度可达的传播。

解释如图:

二、Python代码实现 

1.产生数据集,代码如下:

from sklearn.datasets import make_moons
X,y=make_moons(n_samples=1000,noise=0.05,random_state=42)

 补充说明:X代表二维,y代表labels

2.dbscan代码:

from sklearn.cluster import DBSCAN
dbscan=DBSCAN(eps=0.2,min_samples=5)#eps是半径
dbscan.fit(X)

3.性质:

(1)labels_

dbscan.labels_#出现-1代表离群点

结果如图:

(2)核心对象的索引

dbscan.core_sample_indices_[:10] 

结果如图:

 

(3) #观察返回几个簇
np.unique(dbscan.labels_)#7个

4.效果展示

plt.figure(figsize=(12,6))
plt.subplot(121)
plt.scatter(X[:,0],X[:,1],c='b') 
plt.title("picture_1")  
plt.subplot(122)  
plt.scatter(X[labels!=-1,0],X[labels!=-1,1],c=labels[labels!=-1]) #显示聚类了的点
plt.scatter(X[labels==-1,0],X[labels==-1,1],marker='+')   #奇异点标注为+
plt.title("picture_2")  
plt.show()

 结果如图:

三、优缺点 

  • 优点:
  • (1)与K-means方法相比,DBSCAN不需要事先知道要形成的簇类的数量。
  • (2)对噪声敏感。这是因为该算法能够较好地判断离群点。
  • (3)能发现任意形状的簇。这是因为DBSCAN 是靠不断连接邻域呢高密度点来发现簇的,只需要定义邻域大小和密度阈值,因此可以发现不同形状,不同大小的簇
  • 缺点:
  • (1)对两个参数的设置敏感,即圈的半径 eps 、阈值 MinPts。
  • (2)DBSCAN 使用固定的参数识别聚类。显然,当聚类的稀疏程度不同,聚类效果也有很大不同。即数据密度不均匀时,很难使用该算法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DBSCAN聚类——Python实现 的相关文章

随机推荐

  • 逆变器原理

    逆变器是把直流电转变为交流电的一种装置 它一般包括逆变桥 控制逻辑和滤波电路组成 主要是把各种直流源转变为交流供交流负载使用 xff0c 一般直流源有蓄电池 干电池 太阳能电池等 xff0c 可以应用到不间断电源 UPS 太阳能发电转换等
  • Linux网络编程

    目录 网络编程基础 Internet历史 TCP IP协议基本概念 网络体系结构 TCP IP体系结构 TCP IP协议知识要点 TCP协议和UDP协议 网络编程预备知识 基于TCP协议的网络编程案例 基于UDP协议的服务器客户端编写 1
  • Android12动态控制SystemUI状态栏和导航栏

    要实现一个需求 在Android12上实现动态控制状态栏和导航栏的显示及隐藏 基本思路 在frameworks base 中增加想要的显示控制 在Settings增加开关按钮进行功能出发 一 在framework base 增加系统属性 用
  • Java—反射详解

    1 反射概念 反射本质就是反着来 反射 Reflection 是Java的特征之一 xff0c 它允许运行中的Java程序获取自身的信息 xff0c 并且可以操作类或对象的内部属性 通俗的来讲就是 xff1a 通过反射机制 xff0c 可以
  • png图片损坏打不开如何修复?

    png格式是我们生活中常用的格式 xff0c 可以用于存储不同的网络图形 数码照片和背景透明的图像 但常用的PNG文件格式有时也会有损坏的 xff0c 在这种情况下 xff0c 要保持冷静 xff0c 发现后先不要去尝试打开这些图片 xff
  • cookie与session

    a 什么是cookie 浏览器在访问服务器时 xff0c 服务器将一些数据以set cookie 消息头 的形式发送给浏览器 浏览器会将这些数据保存起来 当浏览器再次访问服务器时 xff0c 会将这些数据以cookie消息头的形式发送给服务
  • GithubDNS解析配置

    hosts文件位置 xff1a Windows 系统 xff1a C Windows System32 drivers etc hosts 复制以下代码 xff1a GitHub520 Host Start 140 82 114 26 al
  • java:如何判断一个链表是否成环,并找到成环的位置

    面试题型 xff1a 判断一个链表中是否成环 思路 xff1a 定义两个快慢指针 xff0c 让他们一直移动 xff0c 如果最终快指针 61 慢指针 xff0c 这说明在这个链表中必然存在环 首先 xff0c 将快指针定义为fast 慢指
  • 基于zynq7000平台的vxWorks6.9移植(上)

    1 致谢 编写本文档的目的在于指导用户如何移植基于z7平台的vxWorks6 9系统 移植之前首先感谢西安迅尔电子嵌入式工程师庞国强 xff0c 本次是基于前者总结资料的基础上进行的完善 xff0c 帮助新手可以以更少的指导掌握z7平台关于
  • Python新建、写入和修改txt(文本文档)

    新建 写入 xff1a 创建一个txt文件 xff0c 文件名为first file 并向文件写入msg def File New name msg desktop path 61 34 路径 34 文件路径 full path 61 de
  • 面试突击:输入URL之后会执行什么流程?

    在浏览器中输入 URL 之后 xff0c 它会执行以下几个流程 xff1a 执行 DNS 域名解析 xff1b 封装 HTTP 请求数据包 xff1b 封装 TCP 请求数据包 xff1b 建立 TCP 连接 xff08 3 次握手 xff
  • 面试官:Spring Aop 常见注解和执行顺序

    最近 xff0c 我在给很多人做简历修改和模拟面试的时候 xff0c 有部分朋友和我反馈Spring AOP的面试题 xff0c 今天就和大家来问问 Spring 一开始最强大的就是 IOC AOP 两大核心功能 xff0c 我们今天一起来
  • Microsoft Visual C++ 14.0下载方法

    去官网下载对应的文件 xff08 需要拥有一个微软的账号 xff09 首先 xff0c 打开链接首页 Visual Studio Subscriptions Portal xff0c 登录账号 xff0c 点击进入下载页面 接下来 xff0
  • Zabbix6.0离线安装(附RPM包)

    zabbix server6 0安装包及依赖 一 准备工作 xff1a 虚拟环境软件VMware Workstation 17 pro xff0c 可以根据自身需求来选择 xff0c VMware下载链接参考如下 xff1a https c
  • java中try 与catch的使用

    try 代码区 catch Exception e 异常处理 代码区如果有错误 xff0c 就会返回所写异常的处理 首先要清楚 xff0c 如果没有try的话 xff0c 出现异常会导致程序崩溃 而try则可以保证程序的正常运行下去 xff
  • 基于JAVA京津冀畅游网设计计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA京津冀畅游网设计计算机毕业设计源码 43 数据库 43 lw文档 43 系统 43 部署 基于JAVA京津冀畅游网设计计算机毕业设计源码 43 数据库 43 lw文档 43 系统 43 部署 本源码技术栈 xff1a 项目架构
  • JSP 四大作用域:

    application对象中的属性可以被同一个WEB应用程序中的所有Servlet和JSP页面访问 xff08 属性作用范围最大 xff09 session对象中的属性可以被属于同一个会话的所有Servlet和JSP页面访问 xff08 适
  • django基于Python的疫情数据可视化分析系统的设计与实现(源码调试+代码讲解+文档报告)

    x1f495 x1f495 作者 xff1a 计算机源码社 x1f495 x1f495 个人简介 xff1a 本人七年开发经验 xff0c 擅长Java 微信小程序 Python Android等 xff0c 大家有这一块的问题可以一起交流
  • 基于SSM+Vue个人健康信息管理系统Java个人健康状况记录与评估系统(源码调试+讲解+文档)

    x1f495 x1f495 作者 xff1a 计算机源码社 x1f495 x1f495 个人简介 xff1a 本人七年开发经验 xff0c 擅长Java 微信小程序 Python Android等 xff0c 大家有这一块的问题可以一起交流
  • DBSCAN聚类——Python实现

    一 DBSCAN Density Baseed Spatial Clustering of Applications with Noise 聚类算法 核心对象 xff1a 若某个点的密度达到算法设定的阈值则其为核心 xff08 即r邻域内点