基于密度的DBSCAN聚类及其优化的OPTICS聚类(二)

article/2025/9/30 15:09:50

1.OPTICS聚类算法

应用背景:如今整个数据集越来越复杂,都采用到了至少一个全局密度表征参数。如果对同一数据集中同时也存在这两种不同的全局密度表征参数的一个聚类簇或者是两个的嵌套簇,则所使用到的DBSCAN算法显然并没有做到高效地处理,因为DBSCAN聚类算法采用的是全局密度表征参数。为了能够进一步研究解决了这个实际应用问题,学者们甚至也已经提出和研究到了OPTICS算法。

算法原理:OPTICS聚类算法,其基本编程思想大致是和DBSCAN算法非常之类似,但OPTICS算法不是像DBSCAN算法一样显而易见地直接生成聚类结果,它是一种优化算法帮助选取初始距离阈值的算法。

两个新概念:定义了两个下面即将介绍的新概念,一个是核心距离,一个是最小的可达距离

此算法将大量数据放到一个有序列表中按照其他点离某一个核心点距离进行排序,寻找离该核心点距离最小距离的点,并将其放入结果队列中,按照此选取方法不断选取直至有序队列中的点全部都进入结果队列中,算法结束。最终生成的结果有序列表中的数据点都是聚类中相邻且集中的,我们可以通过该有序列表包含的信息主观选取密度阈值 ,结果队列中有序的对象列表也可以用其生成的横坐标为样本处理顺序,纵坐标为可达距离的决策图选取适当的MinPts 。我们可以根据固定的 \varepsilon,选取适当的MinPts ,再运用本文重点所述的DBSCAN密度聚类算法进行聚类。

核心距离:假设某一样本点P\epsilon D,如果给定了\varepsilonMinPts,那么使得P成为核心点的某邻域的最短长度称为P的核心距离。其中{N_{i}}^{\varepsilon }(P)表示的是N_{_{\varepsilon }}(P)中距离某一样本点Pi长的样本点。

cd(P)=\begin{cases} undefined& \text{ if } N_{\varepsilon }(P)\leq MinPts\\ d(P,N_{\varepsilon }^{MinPts}(P))& \text{ if } N_{\varepsilon }(P))> MinPts \end{cases}

最小可达距离:P,Q\epsilon D,对于给定的\varepsilonMinPts,Q关于P的可达距离定义为:

rd(Q,P)=\begin{cases} undefined& \text{ if } N_{\varepsilon }(P)\leq MinPts\\ max(cd(P),d(P,Q))& \text{ if } N_{\varepsilon }(P))> MinPts \end{cases}

流程图:

 

 2.DBSCAN和OPTICS聚类算法对比

前面介绍OPTICS算法定义时说过,因为DBSCAN聚类算法基于全局密度参数,使得该算法不能识别不同密度的簇。对于高密度簇的核心点,在较小的领域内就可以至少有个点;对于低密度簇的核心点,在较大的领域内才可以有个点。所以对初始参数更加敏感。OPTICS算法的提出就是为了克服DBSCAN聚类算法采用全局表征密度参数带来的聚类质量差问题。但OPTICS聚类算法对于距离阈值比较不敏感,所以我们将其设为无穷大。下面我们来看下给定3个聚类中心、随机生成的250个数据点,对于相同、不同密度的簇,DBSCAN算法的聚类效果,将密度相同的标准差设定为0.35,将密度不相同的标准差设定为0.35,0.1,0.6。生成以下两幅图:

图1 DBSCAN聚类算法处理密度相同数据效果图

 图2DBSCAN聚类算法处理密度不同数据效果图

 通过图1、图2的对比我们可以看出DBSCAN算法在处理不同密度簇聚类的时候出现了很多噪声点,即聚类质量不好。于是我们用OPTICS算法对于相同的数据点进行聚类处理得到图3,图4。

 图3 OPTICS聚类算法处理密度相同数据效果图

图4 OPTICS聚类算法处理密度不同数据效果图 

簇在坐标中表述为波谷(凹陷),并且波谷(凹陷)越深,簇越紧密。从图2-8的第二幅图可以看出,可达距离呈现三个波谷,也即表现为3个簇。我们可以直观看出图3的选取大概0.2~0.4时,样本被聚类成三类。图4的选取大概0.5~1时,样本被聚类成三类。

当你需要提取聚集的时候,参考Y轴和图像,自己设定一个合适的就可以聚类,也可以继续用DBSCAN聚类算法进行聚类。

3、DBSCAN和OPTICS算法的结合

OPTICS聚类算法不是直接得表现出数据属于某一类,而是直接为每一个聚类分析数据生成一个增广的簇排序,通过解析该簇有序的列表数据可以直接得到一个决策图。通过决策图可以得到一个广泛的距离阈值来克服全局参数所带来的缺陷。OPTICS算法可以运用在DBSCAN聚类算法之前用来距离阈值的选取,这样的做法可以大大提高DBSCAN算法的准确性。


http://chatgpt.dhexx.cn/article/2NpxihB1.shtml

相关文章

sklearn聚类算法OPTICS

本文的csdn链接:https://blog.csdn.net/Jinyindao243052/article/details/107544145 知乎链接:https://zhuanlan.zhihu.com/p/163218826 算法 The OPTICS (Ordering Points To Identify the Clustering Structure) algorithm shares many similarities…

Optics and Lasers in Engineering期刊误选,审查中的论文发表在SSRN,撤销方法,适用于所有爱思唯尔期刊

在投稿的时候,没太看懂选项,误以为是Proof阶段公开,没想到是审查的时候就公开在SSRN,在网上查阅资料的时候,大多数人是推荐在SSRN上删除论文,避免他人盗取创新点 首先我们登录SSRN界面 选择my paper 在P…

密度聚类:OPTICS算法详解

很多人不理解OPTICS算法绘出的图该怎么理解。为什么波谷就算一类,有个波峰又算另一类了,本篇在第三部分的第2、3节详细讲这个是什么判别分类的。 本篇会添加一些个人思考过程,可能有不严谨的地方,希望在评论区讨论指正。 另外&a…

Ocean Optics USB2000光谱仪无法在Win10系统运行

1、问题描述 USB2000型光谱仪,由于生产年代过于久远,虽然能被Win10系统识别,但是驱动程序安装完成后依然报错, 提示:该设备无法启动。(代码 10) 请求USB BOS 描述符失败。 运行SpectraSuite软件…

光学

1. 镜头规格 1.1 焦距 定义:指从透镜中心到光聚集之焦点的距离,也就是在模组中,从镜片中心到Sensor表面的成像平面的距离。 决定焦距的因素: 材料的折射率凸透镜的曲率半径光的波长 EFL:有效焦距(Effective Focal …

聚类算法OPTICS的理解及实现

前言 前面给大家介绍到了聚类算法中比较经典的 DBSCAN 算法,对于数据量小而且相对比较密集、密度相似的数据集来说,是比较合适的。那么接下来给大家介绍它的改进版 OPTICS (Ordering points to identify the clustering structure),针对 DBS…

(4)聚类算法之OPTICS算法

文章目录 1.引言2.相关定义2.1 DBSCAN相关定义2.2 OPTICS相关定义 3.算法思想3.1算法流程3.2算法伪代码 4.算法实现4.1使用numpy实现OPTICS算法 5.数据及代码下载地址 1.引言 OPTICS(Ordering points to identify the clustering structure)是一基于密度的聚类算法,…

基于密度的聚类算法(2)——OPTICS详解

基于密度的聚类算法(1)——DBSCAN详解 基于密度的聚类算法(2)——OPTICS详解 基于密度的聚类算法(3)——DPC详解 1. OPTICS简介   上一节介绍的DBSCAN算法中,较小的eps将建立更多的簇&#x…

【Python机器学习】密度聚类DBSCAN、OPTICS的讲解及实战演示(附源码 超详细)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 划分聚类、密度聚类和模型聚类是比较有代表性的三种聚类思路 1:划分聚类 划分(Partitioning)聚类是基于距离的,它的基本思想是使簇内的点距离尽量近、簇间的点距离尽量远。k…

OPTICS

OPTICS 就是一种基于密度的聚类算法,可以认为是dbscn的改进,改进之处主要是在不用每次调节eps和minpts都需要重新整个训练。其本质还是dbscan,只是能够在给定eps和minpts后,可以训练一次就可以在minpts值定对的情况下,…

聚类算法初探(六)OPTICS

第一章 引言 第二章 预备知识 第三章 直接聚类法 第四章 K-means 第五章 DBSCAN 第六章 OPTICS 第七章 聚类分析的效果评测 第八章 数据尺度化问题 作者: peghoty 出处: http://blog.csdn.net/itplus/article/details/10089323 欢迎转载/分享, 但请务必声明文章出处. 转…

OPTICS聚类(最清晰解释)

背景 想要理解该算法,你需要先了解: DBSCAN算法 OPTICS(用于识别聚类结构的排序点)算法与 DBSCAN 算法有许多相似之处,可视为 DBSCAN 的泛化,将 eps 要求从单个值放宽到一个范围 DBSCAN 和 OPTICS 之间的主…

机器学习笔记(十一)聚类算法OPTICS原理和实践

OPTICS聚类算法是基于密度的聚类算法,全称是Ordering points to identify the clustering structure。提到基于密度的聚类算法,应该很快会想到前面介绍的DBSCAN聚类算法,事实上,OPTICS也是为了优化DBSCAN而出现的。 一、原理 在…

sklearn聚类之OPTICS算法

文章目录 简介sklearn实现cluster_optics_dbscan 简介 OPTICS算法,全称是Ordering points to identify the clustering structure,是一种基于密度的聚类算法,是DBSCAN算法的一种改进。 众所周知,DBSCAN算法将数据点分为三类&…

聚类算法——OPTICS

网上很多关于OPTICS算法的资料,学习了很多博客之后总感觉不太合自己口味,因此整理了一篇博文供总结和复习,如能有幸帮助到其他人便是荣幸之至,如有错误,不吝指出。阅读此文需要了解“聚类”,“基于密度聚类…

JS获取url参数(简单、实用)

// js获取url传参参数function GetQueryString(name) {var reg new RegExp("(^|&)" name "([^&]*)(&|$)");// Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。var r window.location.search.substr(…

js获取url参数值的两种方式详解

有个url如下: http://passport.csdn.net/account/login?fromhttp%3a%2f%2fwrite.blog.csdn.net%2fpostedit 我们该如何获取from这个参数的值呢?在网上搜了下方法很简单,如下,第一种是通过正则,第二种通过切串放进数…

js获取url参数值的方法总结

js获取url参数值的方法总结 1、方式一:通过字符串截取的方式获取参数值;2、方式二:通过正则获取到参数值; 1、方式一:通过字符串截取的方式获取参数值; 1)、函数一:获取URL中的参数名…

Hyperlynx学习心得

1、Altium Designer文件导入Hyperlynx问题 众所周知AD的文件各大友厂商的文件对它都不咋友好~,很多SI、PI文件都不支持,但AD可以输出Hyperlynx文件供其使用、但也会存在一些问题。我遇到问题就是 AD中使用填充的铜皮在Hyperlynx中不识别,直接…

HyperLynx(二十五)电源完整性之直流压降分析(二)

1.后仿真的直流压降 2.批量直流压降分析 3.如何改善电压下降较多的设计 1.后仿真的直流压降 (1)打开HperLynx软件。从目录中打开 C:\PI_Trng\lab2\exer2\ post_dc_drop.hyp,单击“Open”按钮,当打开板子时被问到是否用Man- hattan-style布线连接没有布…