platEMO提取运行后的save数据

github地址:https://github.com/BIMK/PlatEMO

platEMO介绍

在github上下载后使用matlab打开,运行main(),会出现如下所示的GUI界面

这个比较方便实验

其中具体使用在这里有介绍


可以注意到这里,他有一个缓存机制

数据会在Data文件夹下保存起来

大致是这么个命名

处理数据

platEMO的数据不能直接在GUI窗口调节,也没有直接留在工作区因此我写了一个小的脚本来处理,不过只是为了生成几个图可能代码复用性不是很强,en应该可以直接把下面写的更简单的

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%       2019.11.17
%       show the plot
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear;
clc;Path{1} = '.\Data\ARMOEA\';                   % 设置数据存放的文件夹路径
Path{2} = '.\Data\MOEAD\';
Path{3} = '.\Data\NSGAII\';
Path{4} = '.\Data\NSGAIII\';
%% 初始化存储变量
for i = 1:4for j = 1:7a_dtlz{i}{j}.runtime = zeros(30,1);a_dtlz{i}{j}.IGD = zeros(30,1);a_dtlz{i}{j}.Coverage = zeros(30,1);a_dtlz{i}{j}.GD = zeros(30,1);a_dtlz{i}{j}.HV = zeros(30,1);end
end
%% 读出指标量
for i = 1:4File{i} = dir(fullfile(Path{i},'*.mat'));len_file = size(File{i}, 1);for j = 1:len_file% 按 _ 分割文件名,将变量读出来split_name = strsplit(File{i}(j).name, {'_', '.'});F_Trace = strcat( Path{i}, File{i}(j).name );eval(['temp','=','load( F_Trace )',';']);metric = temp.metric;% disp(File{i}(j).name);% 确认限制测试集if str2num(split_name{2}(end)) > 7 | str2num(split_name{2}(1)) ~= 'W'continue;enda_dtlz{i}{ str2num(split_name{2}(end)) }.runtime( str2num(split_name{5}) ) = metric.runtime;a_dtlz{i}{ str2num(split_name{2}(end)) }.IGD( str2num(split_name{5}) ) = metric.IGD;a_dtlz{i}{ str2num(split_name{2}(end)) }.Coverage( str2num(split_name{5}) ) = metric.Coverage;a_dtlz{i}{ str2num(split_name{2}(end)) }.GD( str2num(split_name{5}) ) = metric.GD;a_dtlz{i}{ str2num(split_name{2}(end)) }.HV( str2num(split_name{5}) ) = metric.HV;end
end
%% prepare the plot data
col = ['r', 'g', 'b', 'k', 'c', 'm', 'y'];for i = 1:4a_show{i} = zeros(1, 7);
end% figure;
%% plot runtime
% subplot(5,1,1);
figure;
for i = 1:7for j = 1:4a_show{j}(i) = a_dtlz{j}{i}.runtime(30);end
end
plot(a_show{1}, col(1));
for j = 2:4hold on; plot(a_show{j}, col(j));
end
title('runtime WFG');
legend('ARMOEA','MOEAD','NSGAII','NSGAIII');%% plot IGD
% subplot(5,1,2);
figure;
for i = 1:7for j = 1:4a_show{j}(i) = a_dtlz{j}{i}.IGD(30);end
end
plot(a_show{1}, col(1));
for j = 2:4hold on; plot(a_show{j}, col(j));
end
title('IGD WFG');
legend('ARMOEA','MOEAD','NSGAII','NSGAIII');%% plot Coverage
% subplot(5,1,3);
figure;
for i = 1:7for j = 1:4a_show{j}(i) = a_dtlz{j}{i}.Coverage(30);end
end
plot(a_show{1}, col(1));
for j = 2:4hold on; plot(a_show{j}, col(j));
end
title('Coverage WFG');
legend('ARMOEA','MOEAD','NSGAII','NSGAIII');%% plot GD
% subplot(5,1,4);
figure;
for i = 1:7for j = 1:4a_show{j}(i) = a_dtlz{j}{i}.GD(30);end
end
plot(a_show{1}, col(1));
for j = 2:4hold on; plot(a_show{j}, col(j));
end
title('GD WFG');
legend('ARMOEA','MOEAD','NSGAII','NSGAIII');%% plot HV
% subplot(5,1,5);
figure;
for i = 1:7for j = 1:4a_show{j}(i) = a_dtlz{j}{i}.HV(30);end
end
plot(a_show{1}, col(1));
for j = 2:4hold on; plot(a_show{j}, col(j));
end
title('HV WFG');
legend('ARMOEA','MOEAD','NSGAII','NSGAIII');

数据图



【杂文】【演化学习】platEMO提取缓存Data相关推荐

  1. Redis进阶学习08--多级缓存

    Redis进阶学习08--多级缓存 什么是多级缓存 JVM进程缓存 环境准备 docker安装mysql docker安装nginx 反向代理 初识Caffeine 实现JVM进程缓存 需求 实现 L ...

  2. 售价910元!周志华等人英文新书《演化学习》出炉!

    点击上方↑↑↑蓝字关注我们~ 整理 | 琥珀 出品 | AI 科技大本营(公众号ID:rgznai100) 关于人工智能教育,从学生培养方案,到课程设置.教材,甚至是授课老师,全国各大高校正探索一条新 ...

  3. 《从0到1学习Flink》—— Flink Data transformation(转换)

    前言 在第一篇介绍 Flink 的文章 <<从0到1学习Flink>-- Apache Flink 介绍> 中就说过 Flink 程序的结构 Flink 应用程序结构就是如上图 ...

  4. flink 自定义 窗口_《从0到1学习Flink》—— Flink Data transformation(转换)

    前言 在第一篇介绍 Flink 的文章 <<从0到1学习Flink>-- Apache Flink 介绍> 中就说过 Flink 程序的结构 Flink 应用程序结构就是如上图 ...

  5. 学习使用ADO.NET Data Services (ADO.NET 数据服务框架) - Part 1

    学习使用ADO.NET Data Services (ADO.NET 数据服务框架) ADO.NET Data Services Framework是在.NET Framework 3.5 SP1新推 ...

  6. 人声抑制 深度学习_一种融合骨振动传感器和麦克风信号的深度学习语音提取和降噪方法与流程...

    本发明涉及电子设备语音降噪技术领域,更具体地说,涉及一种融合骨振动传感器和麦克风信号的深度学习降噪方法. 背景技术: 语音降噪技术是指从带噪语音信号中分离出语音信号,该技术拥有广泛的应用,通常有单麦克 ...

  7. 《演化学习:理论和算法的进展》

    <Evolutionary Learning: Advances in Theories and Algorithms>为该书英文名,译为中文即:<演化学习:理论和算法的进展> ...

  8. oracle dg 增加redo组,【学习笔记】Oracle Data Guard 修改dataguard主库redo组数和大小

    天萃荷净 运维DBA反映检查到Oracle DataGuard环境redo日志较小,总结一下修改dataguard主库redo组数和大小方法 在一个dg环境中,配置的是实时同步,需要增加主库的redo ...

  9. 机器学习11:演化学习

    演化学习基础知识 演化算法:或称"进化算法",它 是一个"算法簇",其灵感都来自于大自然的生物进化.演化算法有很多的版本,比如,有不同的遗传基因表达方式,不同的 ...

最新文章

  1. php7 java8_php7 vs java8 vs nodejs5 vs lua5.2 计算性能比较
  2. 保洁阿姨看完都会了!java导出excel并下载详解
  3. Linux ipcs命令与ipcrm命令的用法详解
  4. MySQL自定义变量的使用
  5. vba 自动换行_Excel中quot;强制换行quot;quot;快速求和quot;等操作,这9个AlT键技巧全都包含了...
  6. 别再瞎找了,设计师日常工作需要的软件都在这里了
  7. 通过密钥 SFTP(三)指定不限定根目录
  8. gaussian09使用教程linux,Gaussian-09-GaussView5.0使用教程.ppt
  9. 58节沈大海H5edu.cn2016javaScript视频教程打包下载
  10. matlab 计算 Lorenz 系统最大李雅普诺夫指数
  11. js文档模式之混杂模式与标准模式
  12. 【iOS】解决UITextField输入限制受中文自动联想影响的问题
  13. 当mqtt客户端向服务端发送信息出现掉包的问题
  14. 人体神经元细胞分为三类,人体神经元细胞模式图
  15. GIMP( GNU IMAGE MANIPULATION PROGRAM)
  16. 微信电子健康卡开放平台接口对接
  17. dlib检测人脸landmarks
  18. 时序分解股票数据并部署在微信公众号上
  19. 好用的Bin文件查看器,J-flash
  20. CCleaner 4.07中文版下载 绿色精简

热门文章

  1. 应届生去软通动力怎么样_超强干货:应届生如何找实习工作?
  2. ad域管理与维护_详解Windows Server 2016如何搭建AD服务器(图文教程)
  3. B+树 范围查询_为什么 MySQL 使用 B+ 树,而不是 B 树或者 Hash?
  4. 现代计算机内补码是多少进制,二进制:关于10000000如何表示-128的问题
  5. c语言程序设计单元小测,C语言程序设计单元小测2.doc
  6. Linux下磁盘分区卸载和磁盘配额
  7. 【caffe-windows】 caffe-master 之 matlab接口配置
  8. 第 19 次 CCF CSP 认证 202006-1 线性分类器(line)
  9. ~~堆优化版dijkstra
  10. ## CSP 201809-2 买菜(C语言)(100分)