智能优化算法常用指标一键导出为EXCEL,CEC2017函数集最优值,平均值,标准差,最差值,中位数,秩和检验,箱线图...

声明:对于作者的原创代码,禁止转售倒卖,违者必究!

之前出了一篇关于CEC2005函数集的智能算法指标一键统计,然而后台有很多小伙伴在询问其他函数集该怎么调用。今天采用CEC2017函数集为例,进行展示。

为了突出改进智能优化算法的效果,常常会将改进的智能算法与其他算法进行对比。

在一些期刊论文中,经常会看到一个超级大的表格,统计着每个算法的平均值,标准差,最优值,最差值,中位数等指标,例如:

aa47d662025ba0cf22b7191739972fc0.png

还有的为了比较改进算法与对比算法的区别,会进行秩和检,例如:

a1ca3c42247d083afa0c4958b3bfbdc5.jpeg

还有一些论文为了更直观的表现会放上箱线图,例如:

7970a5ce19bd4ebcd630f3a1115e6e9f.png

然而如果一遍一遍的运行代码去手动统计,估计闪电侠都不会这么做吧!



今天就采用matlab工具,教大家直接一键完成统计,并导出EXCEL表格,同时绘制箱线图。

算法替换十分简单,只替换算法名字即可!测试集替换也十分简单!

本期以自适应螺旋飞行麻雀搜索算法(ASFSSA)(点击链接跳转,这个算法可以免费获取)为例,与蜣螂优化算法,麻雀优化算法,粒子群优化算法,灰狼优化算法进行对比。

将每个算法运行30次,在CEC2017函数中进行测试,一键统计最优值,平均值,标准差,中位数,最差值五个指标,秩和检验结果,同时绘制箱线图。

代码目录如下:

b169c3d925fb60820275403d967d4213.png

其中plotCEC2017_Main.m还是往常的绘制算法对比图的程序,这个一直都有。

重点是:runsCEC2017_Main.m这个脚本,运行后可以一键生成ranksumresult.xls和result.xls两个excel。

注意 :CEC2017官方函数中,将F2函数删除了,因此现在只有29个函数。

其中ranksumresult.xls是秩和检验的结果统计,result.xls是五个指标的统计。结果如下:

ranksumresult.xls表格:

57a2c2939aef847277ead26800512de9.png

result.xls表格:

370146f91185deafcac99cf092645011.png

7efe6c317655b4d8c5696ed295d48a01.png

程序中设置了可以选择是否绘制箱线图的代码,也可以一键更改。箱线图如下:

1778cef0093ba8bdb72dbb8d8f88094c.png

部分代码展示

runsCEC2017_Main.m部分代码展示如下:

clear
clc
close all
addpath(genpath(pwd));
pop_size=30;   %种群数目
max_iter=500;   %迭代次数run = 30;
box_pp = 1;  %可选1,或者其他。当等于1,绘制箱型图,否则不绘制
RESULT=[];   %统计标准差,平均值,最优值等结果
rank_sum_RESULT=[];  %统计秩和检验结果F = [1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30];%因为第二个函数被删了!
variables_no = 30; % 可选 2, 10, 30, 50, 100
disp(['正在统计的是维度为',num2str(variables_no),'的CEC2017函数集'])
if box_pp ==1figure('Name', '箱型图', 'Color', 'w','Position', [50 50 1400 700])
endfor func_num = 1:length(F)    % Display the comprehensive resultsdisp(['F',num2str(F(func_num)),'函数计算结果:'])[lower_bound,upper_bound,variables_no,fhd]=Get_Functions_details(['F',num2str(F(func_num))]);resu = [];  %统计标准差,平均值,最优值等结果rank_sum_resu = [];   %统计秩和检验结果box_plot = [];  %统计箱型图结果……
end
%% 将秩和检验结果写入elcex中
B = string();
for i = 1:length(F)str = string(['F',num2str(F(i))]);B(i,1)= str;
end
B = cellstr (B);
B = [B,num2cell(rank_sum_RESULT)];
title = {" ","DBO","PSO","GWO","SSA"};% 秩和检验是和改进的算法做比较,因此这里没有改进的算法
B = [title;B];
xlswrite('ranksumresult.xls', B)%% 将标准差,平均值,最优值等结果写入elcex中
A = string();
A = cellstr (A);
A = [A,num2cell(RESULT)];
title = {" "," ","ASFSSA","DBO","PSO","GWO","SSA"};
A = [title;A];
xlswrite('result.xls', A)

代码获取

或者点击下方阅读原文跳转链接。

或者直接复制下方链接跳转:

https://mbd.pub/o/bread/ZZWUmJhu

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

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

相关文章

【OCR】合同上批量贴印章

一、需求 OCR算法在处理合同等文件时,会由于印章等遮挡导致文本误识别。因此在OCR预处理时,有一个很重要的步骤是“去除印章”。其中本文主要聚焦在“去除印章”任务中的数据构建步骤:“合同伪印章”的数据构建。下面直接放几张批量合成后效果…

是谁还没听过杨氏矩阵~原理和实现代码都已经准备好了

有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 要求:时间复杂度小于O(N); 看到这个题目时,我们会马上想到暴力求解,即遍历这个矩阵的每…

3.springcloudalibaba gateway项目搭建

文章目录 前言一、搭建gateway项目1.1 pom配置1.2 新增配置如下 二、新增server服务2.1 pom配置2.2新增测试接口如下 三、测试验证3.1 分别启动两个服务,查看nacos是否注册成功3.2 测试 总结 前言 前面已经完成了springcloudalibaba项目搭建,接下来搭建…

Stable diffusion 用DeOldify给黑白照片、视频上色

老照片常常因为当时的技术限制而只有黑白版本。然而现代的 AI 技术,如 DeOldify,可以让这些照片重现色彩。 本教程将详细介绍如何使用 DeOldify 来给老照片上色。. 之前介绍过基于虚拟环境的 基于DeOldify的给黑白照片、视频上色,本次介绍对于新手比较友好的在Stable diff…

[安洵杯 2019]easy_web - RCE(关键字绕过)+md5强碰撞+逆向思维

[安洵杯 2019]easy_web 1 解题流程1.1 阶段一1.2 阶段二2 思考总结1 解题流程 1.1 阶段一 1、F12发现提示md5 is funny ~;还有img标签中,有伪协议和base64编码 2、url地址是index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=   这就有意思了,这里的img明显是编码后的…

Docker逃逸---CVE-2020-15257浅析

一、产生原因 在版本1.3.9之前和1.4.0~1.4.2的Containerd中,由于在网络模式为host的情况下,容器与宿主机共享一套Network namespace ,此时containerd-shim API暴露给了用户,而且访问控制仅仅验证了连接进程的有效UID为0&#xff…

测试面试官会做些什么?

虽然没有了金九银十,但是公司的测试HC(headcount,指公司HR预计招聘的员工人数)还是没有完全锁死,断断续续的也在帮着面试一些人。本文就以自己的经验,从面试官的角度,聊聊面试测试过程中的那些事…

pycharm的debug,你知道每个按钮对应哪个功能吗?

本文讲解pycharm的debug 1. debug的汇总图2. 第一个图标(Step Over)3. 第二个图标(Step into)4. 第三个图标(Step Into My Code)5. 第四个图标(Step Out)6. 第五个图标(R…

TCP和UDP的由浅到深的详细讲解

目录 前言 一.TCP 1.1 什么是TCP? 1.2TCP的连接与释放(确认应答机制) 1.2.1三次握手 1.2.2四次挥手 1.3TCP滑动窗口(效率机制) 1.4流量控制(安全机制) 1.5拥塞控制(安全机制&#xff0…

uCharts常用图表组件demo

带渐变阴影的曲线图 <view class"charts-box"><qiun-data-charts type"area" :opts"opts" :chartData"chartData" :ontouch"true":background"rgba(256,256,256,0)" /> </view>data(){return{…

Linux:redis数据库源码包安装

介绍 1.关系数据库与非关系型数据库 1.1关系型数据库 1)一个结构化的数据库&#xff0c;创建在关系模型基础上&#xff0c;一般面向于记录 2)包括Oracle、MySQL、SQL Server、Microsoft Access、DB2等 非关系型数据库 1)除了主流的关系型数据库以外的数据库&#xff0c;都认为是…

java学习笔记001

java基础 java语言特点 面向对象&#xff0c;强类型&#xff0c;跨平台&#xff0c;解释型 基本概念&#xff08;JVM、JRE、JDK&#xff09; JVM java虚拟机 作用&#xff1a;加载.class文件 JRE Java运行环境 JREJVMJava系统类库 JDK Java开发工具包 JDKJRE编译&a…