首页 > 其他分享 >DBO优化最近邻分类预测(matlab代码)

DBO优化最近邻分类预测(matlab代码)

时间:2024-03-23 22:34:09浏览次数:16  
标签:index DBO 代码 feature label num matlab data spilt

DBO-最近邻分类预测matlab代码

蜣螂优化算法(Dung Beetle Optimizer, DBO)是一种新型的群智能优化算法,在2022年底提出,主要是受蜣螂的的滚球、跳舞、觅食、偷窃和繁殖行为的启发。

数据为Excel分类数据集数据。

数据集划分为训练集、验证集、测试集,比例为8:1:1

模块化结构:代码按照功能模块进行划分,清晰地分为数据准备、参数设置、算法处理块和结果展示等部分,提高了代码的可读性和可维护性。

数据处理流程清晰:对数据进行了标准化处理,包括Zscore标准化,将数据分为训练集、验证集和测试集,有助于保证模型训练的准确性和可靠性。

模型评估: 代码中通过十折交叉验证等方法评估了模型的性能,计算了训练集、验证集和测试集的准确率,并输出了十折验证准确率和运行时长。此外,还通过绘制分类情况图和混淆矩阵对模型的分类效果进行了可视化展示,帮助更直观地了解模型的性能和分类结果。

结果可视化: 通过绘制通过绘制DBO寻优过程收敛曲线、分类情况图和混淆矩阵,直观展示了模型的分类效果,有助于对模型性能进行直观分析和比较。

输出定量结果如下:

十折验证准确率:0.95122

训练集ACU:0.97561

验证集ACU:1

测试集ACU:1

运行时长:0.257

代码有中文介绍。

代码能正常运行时不负责答疑!

代码运行结果如下:

部分代码如下;
% 清除命令窗口、工作区数据、图形窗口、警告
clc;
clear;
close all;
warning off;
load('data.mat')	
data1 = readtable('分类数据集.xlsx'); % 读取数据	
data2=data1(:,2:end); 	
data=table2array(data1(:,2:end));	
data_biao=data2.Properties.VariableNames;  %数据特征的名称	
A_data1=data;	
data_select=A_data1;	
	
%% 数据划分	
x_feature_label=data_select(:,1:end-1);    %x特征	
y_feature_label=data_select(:,end);          %y标签	
index_label1=randperm(size(x_feature_label,1));	
index_label=G_out_data.spilt_label_data;  % 数据索引	
if isempty(index_label)	
   index_label=index_label1;	
end	
spilt_ri=G_out_data.spilt_rio;  %划分比例 训练集:验证集:测试集	
train_num=round(spilt_ri(1)/(sum(spilt_ri))*size(x_feature_label,1));          %训练集个数	
vaild_num=round((spilt_ri(1)+spilt_ri(2))/(sum(spilt_ri))*size(x_feature_label,1)); %验证集个数	
%训练集,验证集,测试集	
train_x_feature_label=x_feature_label(index_label(1:train_num),:);	
train_y_feature_label=y_feature_label(index_label(1:train_num),:);	
vaild_x_feature_label=x_feature_label(index_label(train_num+1:vaild_num),:);	
vaild_y_feature_label=y_feature_label(index_label(train_num+1:vaild_num),:);	
test_x_feature_label=x_feature_label(index_label(vaild_num+1:end),:);	
test_y_feature_label=y_feature_label(index_label(vaild_num+1:end),:);	

标签:index,DBO,代码,feature,label,num,matlab,data,spilt
From: https://blog.csdn.net/2401_82905754/article/details/136976541

相关文章

  • DBO优化朴素贝叶斯分类预测(matlab代码)
    DBO-朴素贝叶斯分类预测matlab代码蜣螂优化算法(DungBeetleOptimizer,DBO)是一种新型的群智能优化算法,在2022年底提出,主要是受蜣螂的的滚球、跳舞、觅食、偷窃和繁殖行为的启发。数据为Excel分类数据集数据。数据集划分为训练集、验证集、测试集,比例为8:1:1模块化结构:代......
  • github无法提交代码问题
    问题描述提交代码到个人仓库的时候发现报错,认证失败Usernamefor'https://github.com':hywingPasswordfor'https://[email protected]':remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.remote:Pleaseseehttps://docs.github.com/en/......
  • 基于Python代码的相关性热力图,VIF共线性诊断图及残差四图的使用及解释
    注:热力图和共线性诊断图易看易解释,这里不再阐述残差四图(ResidualsvsFittedPlot,NormalQ-QPlot,Scale-LocationPlot,Cook'sDistancePlot)各种现象的相关解释如下:ResidualsvsFittedPlot(残差与拟合值散点图):这个图用于帮助检验回归模型的线性关系假设。在这个图中,我......
  • 代码随想录算法训练营第4天 | 链表 |
    24两两交换列表元素ListNode*swapPairs(ListNode*head){ListNode*shead=newListNode();//初始化shead->next=head;ListNode*cur=shead;ListNode*tmp;//确定先后顺序很重要while(cur->next!=nullptr&&cur->next->next!=nul......
  • 数学建模常用代码
    SVM分类器1.命令函数部分:clear;%清屏clc;X=load('data.txt');n=length(X);%总样本数量y=X(:,4);%类别标志X=X(:,1:3);TOL=0.0001;%精度要求C=1;%参数,对损失函数的权重b=0;%初始设置截距bWold=0;%未更新a时的W(a)Wnew=0;%更新a后的W(a)fori=1......
  • matlab实现神经网络检测手写数字
    一、要求1.计算sigmoid函数的梯度;2.随机初始化网络权重;3.编写网络的代价函数。二、算法介绍神经网络结构:不正则化的神经网络的代价函数:正则化:S型函数求导:反向传播算法:step1:初始化,然后使用前向传播算法计算step2:计算第三层的误差;step3:对于第二层 ;step4:使用......
  • 2002-2022年各地区出口技术复杂度数据(含原始数据+计算代码+结果)
    2002-2022年各地区出口技术复杂度数据(含原始数据+计算代码+结果)1、时间:2002-2022年2、来源:原始数据整理自国研网、海关总署、国家统计局3、范围:30省4、指标:进出口原始数据:时间、流向名称、商品编码、商品名称、伙伴编码、伙伴名称、主体编码、主体名称、方式编码、方式名......
  • 减肥代码
    减肥代码Wednesday14February2024热量的消耗并不是保持不变的,因此减少热量摄入并不能有效减肥。运动有很多好处,但它并不能减轻体重。肥胖症是由于体重设定点过高导致的。(身体存在稳态机制)。人类肥胖症是一种瘦素抵抗疾病。肥胖症的关键不在于热量平衡而在于热量平衡,治疗肥胖症......
  • 物理查询优化(二):两表连接算法(附具体案例及代码分析)
    前言关系代数的一项重要操作是连接运算,多个表连接是建立在两表之间连接的基础上的。研究两表连接的方式,对连接效率的提高有着直接的影响。连接方式是一个什么样的概念,或者说我们为何要有而且有好几种,对于不太了解数据库的人来讲可能这些是开头的疑惑。简单来讲,我们将数据存......
  • 03天【代码随想录算法训练营34期】第二章 链表part01(203.移除链表元素 、707.设计链表
    203.移除链表元素竟然可以做个假head,学到了classListNode(object):def__init__(self,val=0,next=None):self.val=valself.next=nextclassSolution(object):defremoveElements(self,head,val):dummy_head=ListNode(-1)......