PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!

PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!

一、蜣螂优化算法

摘要:受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发,提出了一种新的基于种群的优化算法(Dung Beetle Optimizer, DBO)。新提出的DBO算法兼顾了全局探索和局部开发,具有收敛速度快和求解精度高的特点。采用一系列著名的数学测试函数(包括23个基准函数和29个CEC-BC-2017测试函数)来评估DBO算法的搜索能力。仿真实验结果表明,DBO算法在收敛速度、求解精度和稳定性方面均表现出与当前主流优化算法相当的性能。此外,采用Wilcoxon符号秩检验和Friedman检验对算法的实验结果进行评估,证明了DBO算法相对于当前流行的其他优化技术的优越性。为了进一步说明DBO算法的实际应用潜力,将DBO算法成功应用于3个工程设计问题。实验结果表明,所提DBO算法能够有效地处理实际应用问题。

文献来源:Dung beetle optimizer: a new meta-heuristic algorithm for global optimization。

DOI:10.1007/s11227-022-04959-6。

二、DBSCN聚类

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法。它的核心原理是根据数据点周围的密度来确定聚类。在DBSCAN中,密度高的区域被认为是聚类,而密度低的区域则被认为是噪声。

DBSCAN算法不需要人为选择簇的个数,且能够发现任意形状的簇,这是它相对于其他聚类算法如K-means和层次聚类的一个显著优势。例如,对于K-means难以处理的一些复杂形状,如笑脸形状,DBSCAN可以很好地识别和处理。

在DBSCAN中,有两个重要的参数:半径范围epsilon和点个数minpts,手动设置较复杂。

DBSCAN的应用场景非常广泛,包括但不限于空间数据分析、图像分割、社交网络分析、市场细分以及物联网数据分析等。在地理信息系统(GIS)中,DBSCAN可以用于分析地理数据,如城市人口分布和地质特征;在图像处理中,它可以用于对像素进行聚类,实现图像分割;在市场营销中,DBSCAN可以帮助将客户分成不同的细分市场,从而更好地了解他们的需求和行为模式。DBSCAN是一种强大且灵活的聚类算法,适用于各种复杂的聚类任务。

三、主成分分析PCA

主成分分析(Principal Component Analysis),是一种常用的数据降维方法。它的主要思想是通过线性变换将原始的高维数据映射到一个低维空间中,同时尽可能地保留原始数据的主要特征信息。

具体来说,PCA降维的过程可以分为以下几个步骤:

数据标准化:首先,对原始数据进行标准化处理,消除不同特征之间的量纲差异,使得每个特征都具有相同的权重。

计算协方差矩阵:接着,计算标准化后数据的协方差矩阵。协方差矩阵反映了不同特征之间的相关性,是PCA降维的关键。

计算特征值和特征向量:对协方差矩阵进行特征分解,得到特征值和特征向量。特征值的大小代表了对应特征向量方向上的数据方差,即数据的离散程度。

选择主成分:根据特征值的大小,选择前k个最大的特征值对应的特征向量作为主成分。这些主成分代表了数据中的主要变化方向,能够最大程度地保留原始数据的信息。

数据投影:最后,将原始数据投影到选定的主成分上,得到降维后的数据。这个过程可以通过将原始数据乘以主成分矩阵来实现。

PCA降维的优点在于它简单易懂,计算效率高,且能够有效地降低数据的维度,减少计算复杂性和存储空间。同时,PCA降维还能够去除部分噪声和冗余特征,提高数据的可解释性和可视化效果。因此,PCA降维在数据分析、机器学习、图像处理等领域都有广泛的应用。需要注意的是,PCA降维是一种无监督学习方法,它并不考虑数据的标签信息。因此,在某些情况下,PCA降维可能会丢失一些与标签相关的信息。此外,PCA降维对于非线性数据的处理能力有限,对于复杂的数据结构可能需要采用其他降维方法。

四、PCA+DBO+ DBSCN聚类

✨ 核心亮点 ✨

降维至精华:我们首先使用PCA将复杂的数据集降维到2维,保留了数据的主要信息,使其可视化变得简单直观。

优化聚类:接着,采用蜣螂优化算法DBO对DBSCN聚类进行优化,利用轮廓系数信息构建目标函数,自动寻找最佳的半径范围epsilon、点个数minpts和距离度量,以达到最优的数据分组效果。

聚类参数:可以修改聚类参数的优化范围。

选择两个距离度量进行优化: cityblock(Block距离,也叫绝对值距离)、cosine(夹角余弦)。

代码详细中文注释,高效管理,可读性和二次开发都很好,部分代码如下:

%%
clc; clear; close all;
​
% 加载Excel数据
data = xlsread('数据.xlsx');
​
% 假设全部列为特征数据
X = data;
​
% 数据标准化
X_standardized = (X - mean(X)) ./ std(X);
​
% 应用PCA进行降维
[coeff, score, latent, tsquared, explained] = pca(X_standardized);
​
% 提取前两个主成分
Z = score(:, 1:2);
​
% 初始化DBO参数
N = 10; % 种群数量
T = 50; % 最大迭代次数
​
% 第一个是半径范围epsilon,第二个是点个数minpts,第三个是最佳距离度量
LB=[0.01,2,1]; % 变量下界
UB=[0.5,10,2]; % 变量上界
nvars=length(LB);
fobj=@fitness;
​
% 使用DBO优化算法优化DBSCN进行聚类,优化最佳聚类数和最佳距离度量
[fMin,index,Convergence_curve,pos]=DBO(N,T,LB,UB,nvars,fobj,data,Z); 
​
% 计算轮廓系数
sc_xishu = mean(silhouette(data, index'));
​
% 确定独特的聚类数
a = unique(index);
op_cluster_num = length(a); % 优化后聚类个数
C = cell(1, length(a));

运行结果如下:

蜣螂优化算法DBO优化DBSCN结果:

蜣螂优化算法DBO优化DBSCN收敛曲线:

优化结果输出(半径范围epsilon、点个数minpts和距离度量):

使用数据如下:

五、完整代码获取

点击:PCA+DBO+DBSCN聚类icon-default.png?t=N7T8https://mbd.pub/o/bread/ZZ2Wmp5x

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

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

相关文章

zookeeper面试题

文章目录 ZooKeeper 是什么?ZooKeeper 提供什么?1. 文件系统2. 通知机制 ZooKeeper 文件系统四种类型的 znode1. PERSISTENT (持久化目录节点)2. PERSISTENT_SEQUENTIAL (持久化顺序编号目录节点)3. EPHEMERAL (临时目录节点)4. EPHEMERAL_SEQUENTIAL (临…

GIMP - GNU 图像处理程序 - 工具栏窗口 (Toolbox) 显示

GIMP - GNU 图像处理程序 - 工具栏窗口 [Toolbox] 显示 1. File -> Open2. GIMP 主面板里,右击弹出菜单 -> Tools -> New Toolbox3. Windows -> Dockable Dialogs -> Tool Options4. 工具选项拖动到工具箱里面5. Always On TopReferences GIMP 是跨平…

sqlite3嵌入式开发板命令行方式使用

如何在编译嵌入式版本的sqlite3,请看我上一篇文章 sqlite3 交叉编译-CSDN博客 一、sqlite3命令行方式使用 假如我将编译好的嵌入式的sqlite3放置在如下路径: 进入bin目录进行操作 1.运行sqlite3 运行sqlite3有两种方式 1)直接在内存里面…

Django——Ajax请求

Django——Ajax请求 一、响应 Json 数据 path(str/ , views.str_view), path(json/ , views.json_view), path(jsonresponse/ , views.jsonresponse_view), path(ls/ , views.ls),from django.shortcuts import render , HttpResponse from django.http import JsonResponse …

文心一言指令词宝典之职场效率篇

作者:哈哥撩编程(视频号、抖音、公众号同名) 新星计划全栈领域优秀创作者博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅…

基于SpringBoot和Vue的车辆管理系统的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的车辆管理系统的设计与实现 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕&#x1f…

设计模式(3):工厂模式

一.工厂模式 实现了创建者和调用者的分离。 二.分类 简单工厂模式 用来生产同一等级结构中的任意产品。(对于新增产品,需要修改已有代码。用的最多) 要点: 简单工厂模式也叫静态工厂模式,就是工厂类一般是使用静态方法,通过接收…

Git相关命令(二)

三、Team协作 分支概念:由于多人贡献于同一个仓库,但是又不能同时直接再仓库上修改,所以就需要从主仓库分支,每个人在自己对应的分支上操作,最后在合并到主仓库即可 1、fork 仓库。这是 github 的操作,而…

【Java面试题】操作系统

文章目录 1.进程/线程/协程1.1辨别进程和线程的异同1.2优缺点1.2.1进程1.2.2线程 1.3进程/线程之间通信的方法1.3.1进程之间通信的方法1.3.2线程之间通信的方法 1.4什么是线程上下文切换1.5协程1.5.1协程的定义?1.5.2使用协程的原因?1.5.3协程的优缺点&a…

Android-AR眼镜屏幕显示

Android-AR眼镜 前提:Android手持设备 需要具备DP高清口 1、创建Presentation(双屏异显) public class MyPresentation extends Presentation {private PreviewSingleBinding binding;private ScanActivity activity;public MyPresentatio…

后缀名是safetensors和pt、h5有什么区别

后缀名为.safetensors、.pt(PyTorch tensor)和.h5(HDF5)的文件都是用于存储深度学习模型的文件格式,但它们在设计目的、压缩效率、安全性和兼容性方面有所不同。 .safetensors 设计目的:.safetensors格式专…

大模型如何通过token进行推理?

大型模型通过token进行推理的过程通常涉及以下步骤: 1、Tokenization(分词):首先,输入文本或序列被分割成tokens,这些tokens通常是单词、子词或字符的序列。这一步通常由预训练模型的tokenizers完成。 2、…

计算机网络:物理层 - 编码与调制

计算机网络:物理层 - 编码与调制 基本概念编码不归零制编码归零制编码曼彻斯特编码差分曼彻斯特编码 调制调幅调频调相混合调制 基本概念 在计算机网络中,计算机需要处理和传输用户的文字、图片、音频和视频,他们可以统称为消息数据&#xf…

[GXYCTF2019]StrongestMind

web请求类题目,要求1000次 import requests from bs4 import BeautifulSoup import time urlhttp://ad7bc925-bc7a-4881-8a75-9045b60d4ab2.node5.buuoj.cn:81/index.php srequests.session() #维持会话 datas.get(url) for i in range(1001):soupBeautifulSoup(d…

探究 HTTPS 的工作过程

目录 1. HTTPS 协议原理 1.1. 为什么要有HTTPS协议 1.2. 如何理解安全 1.3. HTTPS 协议是什么 2. HTTPS 的前置概念 2.1. 什么是加密 && 解密 2.2. 为什么要加密 2.3. 常见的加密方式 2.3.1. 对称加密 2.3.2. 非对称加密 2.4. 数据摘要 && 数据指纹…

MyBatis3源码深度解析(二十四)级联映射与关联查询(一)级联映射的使用

文章目录 前言第十章 MyBatis级联映射与懒加载10.1 MyBatis级联映射的使用10.1.1 简单查询10.1.1.1 数据准备10.1.1.2 编写实体类10.1.1.3 编写Mapper接口及XML配置文件10.1.1.4 编写MyBatis主配置文件10.1.1.5 编写单元测试 10.1.2 一对多级联映射10.1.2.1 外部Mapper方式10.1…

怎麼實現Nginx反向代理?

Nginx是一款開源軟體,可以作為Web伺服器、負載均衡器和反向代理使用,是高性能的HTTP和反向代理伺服器。其中反向代理是Nginx的一項重要特性。接下來,我們詳細講一下Nginx反向代理的實現和應用。 反向代理是什麼? 代理一詞通常指的…

使用第三方远程连接工具ssh连接vagrant创建的虚拟机

vagrant默认密码都是vagrant 密码认证默认是关闭的,进入虚拟机,打开密码认证 1、使用命令vi /etc/ssh/sshd_config进入配置,注意要切换到root用户,这个配置root有权限 2、找到PasswordAuthentication默认为no,改为yes 3、重启虚…

Redis如何应对缓存穿透问题——Java全栈知识(9)

我们在正常使用缓存的时候的流程大概就是这样的: 请求访问缓存,缓存有数据就返回,缓存无数据就去数据库里面查数据写入到缓存中。 1、缓存穿透问题 但是如果由恶意请求,短时间内大量的访问不存在的数据,这时每个请求…

暴力破解笔记

1 暴力破解简介 暴力破解: 蛮力攻击,又称为穷举攻击,或暴力破解,将密码进行逐个尝试验证,直到尝试出真正的密码为止。 暴力破解是指采用反复试错的方法并希望最终猜对,以尝试破解密码或用户名或找到隐藏的…