sheng的学习笔记-AI-密度聚类

news2024/11/23 15:43:38

AI目录:sheng的学习笔记-AI目录-CSDN博客

需要学习的前置知识:聚类,可参考:sheng的学习笔记-AI-聚类(Clustering)-CSDN博客

什么是密度聚类

密度聚类亦称“基于密度的聚类”(density-based clustering),此类算法假设聚类结构能通过样本分布的紧密程度确定。通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果

后续表达的距离函数dist(·,·)在默认情况下设为欧氏距离

DBSCAN 算法

DBSCAN是一种著名的密度聚类算法,它基于一组“邻域”(neighborhood)参数(ε,MinPts)来刻画样本分布的紧密程度,给定数据集D={x1,x2,…,xm},定义下面这几个概念

基础概念 

图9.8给出了上述概念的直观显示 

 D中不属于任何簇的样本被认为是噪声(noise)或异常(anomaly)样本

 算法定义

若x为核心对象,由x密度可达的所有样本组成的集合记为X={x'∈D|x‘由x密度可达},则不难证明X即为满足连接性与最大性的簇。

算法

于是,DBSCAN算法先任选数据集中的一个核心对象为“种子”(seed),再由此出发确定相应的聚类簇,算法描述如图9.9所示。在第1~7行中,算法先根据给定的邻域参数(ε,MinPts)找出所有核心对象;然后在第10~24行中,以任一核心对象为出发点,找出由其密度可达的样本生成聚类簇,直到所有核心对象均被访问过为止 

数据集如下

代码

 

过程解释

以表9.1的西瓜数据集4.0为例,

  1. 假定邻域参数(ε,MinPts)设置为ε=0.11,MinPts=5。
  2. DBSCAN算法先找出各样本的ε-邻域并确定核心对象集合:Ω={x3,x5,x6,x8,x9,x13,x14,x18,x19,x24,x25,x28,x29}。
  3. 从Ω中随机选取一个核心对象作为种子,找出由它密度可达的所有样本,这就构成了第一个聚类簇。
  4. 假定核心对象x8被选中作为种子,则DBSCAN生成的第一个聚类簇为C1={x6,x7,x8,x10,x12,x18,x19,x20,x23}。 
  5. DBSCAN将C1中包含的核心对象从Ω中去除:Ω=Ω\C1={x3,x5,x9,x13,x14,x24,x25,x28,x29}。
  6. 从更新后的集合Ω中随机选取一个核心对象作为种子来生成下一个聚类簇。
  7. 上述过程不断重复,直至Ω为空

示意图 

C2={x3,x4,x5,x9,x13,x14,x16,x17,x21};

C3={x1,x2,x22,x26,x29);

C4={x24,x25,x27,x28,x30)。 

参考文章:

11.聚类 - 三、密度聚类 - 《AI算法工程师手册》 - 书栈网 · BookStack

书:机器学习 周志华 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1876849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python逻辑控制语句 之 判断语句--if、if else 和逻辑运算符结合

逻辑运算符: and or not 1.案例一 需求: 1. 获取⽤户输⼊的⽤户名和密码 2. 判断⽤户名是 admin 并且密码是 123456 时, 在控制台输出: 登录成功! 3. 否则在控制台输出: 登录信息错误! # 需求: # 1. 获取用户输入的用户名和密码 # 2. 判断…

探索 Electron:将 Web 技术带入桌面应用

Electron是一个开源的桌面应用程序开发框架,它允许开发者使用Web技术(如 HTML、CSS 和 JavaScript)构建跨平台的桌面应用程序,它的出现极大地简化了桌面应用程序的开发流程,让更多的开发者能够利用已有的 Web 开发技能…

微服务-网关Gateway

个人对于网关路由的理解: 网关就相当于是一个项目里面的保安,主要作用就是做一个限制项。(zuul和gateway两个不同的网关) 在路由中进行配置过滤器 过滤器工厂:对请求或响应进行加工 其中filters:过滤器配置…

Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等

简介 TypeScript 是 JavaScript 的超集,是 JavaScript(弱类型语言) 的强类型版本。 拥有类型机制文件后缀 .tsTypescript type ES6TypeScript 和 JavaScript 的关系类似 less 和 css 的关系TypeScript对 JavaScript 添加了一些扩展&#x…

《人人都是产品经理》:项目一图流

《人人都是产品经理》:项目一图流 项目一图流 项目一图流

[NSSCTF]-Reverse:[SWPUCTF 2021 新生赛]easyapp(安卓逆向,异或)

无壳 把后缀名改为zip,找到apk 查看jadx 这里调用了MainActivity的lambda$onCreate$0$MainActivity,然后又调用了Encoder进行异或。 exp: result棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌 key987654321 flag for i in range(len(result)):flagchr(…

深入 SSH:解锁本地转发、远程转发和动态转发的潜力

文章目录 前言一、解锁内部服务:SSH 本地转发1.1 什么是 SSH 本地转发1.2 本地转发应用场景 二、打开外部访问大门:SSH 远程转发2.1 什么是 SSH 远程转发2.2 远程转发应用场景 三、动态转发:SSH 让你拥有自己的 VPN3.1 什么是 SSH 动态转发3.…

【工程实践】大模型推理指定GPU

前言 使用大模型进行推理,一般是在docker容器中,记录推理过程中遇到的问题。 问题描述 在使用docker容器时,在docker run时,如果使用的是--gpus all,这样在进入容器之后,会使用全部的GPU,如下图…

【算法专题--链表】两数相加 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 -- 模拟进位 (使用哨兵位头节点) 🥝 什么是哨兵位头节点? 🍇思路解析 🍍案例图解 四、总结与提炼 五、共勉 一、前言 两数相加 这道题,可以说是--…

如何将Hive表的分区字段插入PG表对应的时间戳字段?

文章目录 1、背景描述2、场景分析 1、背景描述 数据仓库的建设通常是为业务和决策服务的。在数仓开发的应用层阶段,BI可以直接从主题层/业务层取数,而前端需要根据具体的作图需求通过后端查询数据库 作图的指标需要根据主题层/业务层做查询计算&#xf…

基于C语言的Jacobi迭代和Gauss-Seidel迭代的方程组求解实现

文章目录 Jacobi迭代方法介绍Gauss-Seidel迭代方法介绍具体代码实现示例题目实现效果 Jacobi迭代方法介绍 Jacobi迭代法是一种简单的迭代求解方法,适用于严格对角占优矩阵。其基本思想是利用当前迭代步的已知解来更新下一个迭代步的解。在C语言实现中,我…

Textual Learning2 -- 使用时的小问题

1、出现的问题: 在vscode里面直接运行函数会显示报错: 我尝试在vscode中含textual库的环境下运行,但仍然报错 2、解决方案: 在命令行中运行: 首先按winR,输入cmd打开命令行 或在已经安装的conda环境&a…

【JVM-01】引言

【JVM-01】引言 1. 什么是JVM?2. JDK、JRE、JVM比较3.常用的JVM有那些4.学习路线 1. 什么是JVM? JVM即 Java Virtual Machine(Java虚拟机),是Java程序运行的环境(Java 二进制字节码运行环境)。 好处: 一次编写,到处…

Java基础(五)——ArrayList

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…

构建现代医疗:互联网医院系统源码与电子处方小程序开发教学

本篇文章,笔者将探讨互联网医院系统的源码结构和电子处方小程序的开发,帮助读者更好地理解和掌握这些前沿技术。 一、互联网医院系统源码结构 互联网医院系统通常由多个模块组成,每个模块负责不同的功能。以下是一个典型的互联网医院系统的主…

高精密机械设备中滚珠导轨的表面处理工艺有哪些?

滚珠导轨是机床传动和定位的传动元件,其表面处理方式对机床性能和使用寿命起着决定性的作用,不同的表面处理方法可以提高导轨的耐磨性、抗腐蚀性和整体性能。那么,滚珠导轨的表面处理方式有哪几种呢? 1、磨削法:磨削技…

myCrayon个人博客项目基于springBoot+Vue全栈开发

目录 项目介绍 简介 项目架构 项目模块组成 数据库设计 项目展示 首页 用户登录与注册 个人信息模块 商城展示 博客模块 博客浏览 博客发布与编辑 博客搜索 社区模块 新闻模块 后台管理系统 部署方式 结语 项目介绍 简介 项目类似于CSDN,支持所…

MyBatis Plus条件构造器使用

1Wrapper: 条件构造抽象类,最顶端父类 1.1 AbstractWrapper: 用于查询条件封装,生成 sql 的 where 条件 1.2 QueryWrapper: Entity 对象封装操作类,不是用lambda语法 1.3 UpdateWrapper: Update…

AVL树模拟

1.概念 虽然二叉搜索树可以缩短查找的效率,但如果数据有序或者接近有序时二叉搜索树树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。AVL 树是具有一下性质的二叉搜索树: 1.它的左右子树都是AVL树 2.左右子…

[Go 微服务] Kratos 使用的简单总结

文章目录 1.Kratos 简介2.传输协议3.日志4.错误处理5.配置管理6.wire 1.Kratos 简介 Kratos并不绑定于特定的基础设施,不限定于某种注册中心,或数据库ORM等,所以您可以十分轻松地将任意库集成进项目里,与Kratos共同运作。 API -&…