金豺算法优化VMD参数,六种适应度函数任意切换,最小包络熵、样本熵、信息熵、排列熵、排列熵/互信息熵、包络谱峰值因子...

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


本期采用金豺优化算法(Golden Jackal optimization, GJO)优化VMD参数。选取六种适应度函数进行优化,以此确定VMD的最佳k和α参数。6种适应度函数分别是:最小包络熵,最小样本熵,最小信息熵,最小排列熵,排列熵/互信息熵包络谱峰值因子,代码中可以一键切换。

关于优化VMD参数的更多详细内容还可以参考这一篇:运行速度终于变快了!优化VMD参数,五种适应度函数任意切换,最小包络熵、样本熵、信息熵、排列熵、排列熵/互信息熵

金豺优化算法于2022年发表在中科院1区top SCI期刊《Expert Systems with Applications》上,属于高被引论文,深受欢迎。谷歌学术被引次数为167次。

a6f7facea56d8e7f1824a9cc3be349a2.png

c2d490040123c146e0266f5dd628415e.png

对于前面五种适应度函数,之前的文章介绍过很多了。本文新增一个包络谱峰值因子作为适应度函数,关于包络谱峰值因子的介绍如下:

b01a2e040314d152fe47af9b49d2049e.png

参考文献:张龙,熊国良,黄文艺.复小波共振解调频带优化方法和新指标[J].机械工程学报,2015,51(03):129-138.

至于应该选择哪种作为自己的适应度函数,大家可以看这篇文章。VMD为什么需要进行参数优化,最小包络熵/样本熵/排列熵/信息熵,适应度函数到底该选哪个

同样以西储大学数据集为例,选用105.mat中的X105_BA_time.mat数据中1000个数据点。没有数据的看这篇文章。西储大学轴承诊断数据处理,matlab免费代码获取

1.最小包络熵作为适应度函数

7bbb8ca24462748f5b791fc179b93c18.png

a9b145e66e53180894bae8153d256639.png

2.最小样本熵作为适应度函数

3b08aa53b18d54aefb9fb6291b6d08a0.png

162d5b379a351d5a349b3d751f15424e.png

3.最小信息熵作为适应度函数

2c9e5cc1fa033e43490f700f05b8b0dc.png

d0bce7434f726ce0b411fcc3d42c35c9.png

4.最小排列熵作为适应度函数

3f342be672b66c27bb3f688eef796de7.png

e2a7e2a14e94bbed811feb5a56a57ffb.png

5.复合指标作为适应度函数

有关复合指标的介绍如下:

b049cc819c85d7560ca33e650c116f32.jpeg

结果图:

2b24378345fc5522e0b47fa6b4d50fda.png

d3ef7a1fdcb7bc0e5a9fa66849d46de5.png

6.包络谱峰值因子作为适应度函数

0c083c3926a70a07c382003439420242.png

ca6a3e0d9f9f1ecb5410afa53e7ff2e7.png

本文的部分代码

%% 以最小包络熵、最小样本熵、最小信息熵、最小排列熵,排列熵/互信息熵,包络谱峰值因子,为目标函数(任选其一),采用金豺算法优化VMD,求取VMD最佳的两个参数
clear
clc
close all
%选取数据
load 105.mat
data = X105_DE_time(6001:7000); %这里选取105的DEtime数据,注意这里替换为自己的数据即可,数据形式为n行*1列,列数必须为1。
%% 选取适应度函数类型
xz = 1;  
% 选择1,以最小包络熵为适应度函数,
% 选择2,以最小样本熵为适应度函数,
% 选择3,以最小信息熵为适应度函数,
% 选择4,以最小排列熵为适应度函数,
% 选择5,以复合指标:排列熵/互信息熵为适应度函数。
% 选择6,以包络谱峰值因子为适应度函数。
if xz == 1  
    fobj=@(x)EnvelopeEntropyCost(x,data);          %最小包络熵
elseif xz == 2
    fobj=@(x)SampleEntropyCost(x,data);            %最小样本熵
elseif xz == 3  
    fobj=@(x)infoEntropyCost(x,data);              %最小信息熵
elseif xz == 4
    fobj=@(x)PermutationEntropyCost(x,data);       %最小排列熵
elseif xz == 5
    fobj=@(x)compositeEntropyCost(x,data);       %复合指标:排列熵/互信息熵
else
    fobj=@(x)Envelopepeakfactor(x,data);       %复合指标:排列熵/互信息熵
end




%% 设置参数
lb = [100 3];    %惩罚因子和K的下限
ub = [2500 10];  %惩罚因子和K的上限
dim = 2;            % 优化变量数目
Max_iter=20;       % 最大迭代数目
SearchAgents_no=30;       %种群规模
%% 调用GJO函数
[GTO_bestfit, GJO_bestX, GJO_Convergence_curve] = GJO(SearchAgents_no,Max_iter,lb,ub,dim,fobj);
%% 画适应度函数曲线图,并输出最佳参数
if xz == 6
    GJO_Convergence_curve = -GJO_Convergence_curve;
    GTO_bestfit = -GTO_bestfit;
end
figure
plot(GJO_Convergence_curve,'Color',[0.9 0.5 0.1],'Marker','>','LineStyle','--','linewidth',1);


title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
legend('GJO优化VMD')
display(['The best solution obtained by GJO is : ', num2str(fix(GJO_bestX))]);  %输出最佳位置
display(['The best optimal value of the objective funciton found by GJO is : ', num2str(GTO_bestfit)]);  %输出最佳适应度值

大家注意看到xz这个变量,当选择1,以最小包络熵为适应度函数,选择2,以最小样本熵为适应度函数,选择3,以最小信息熵为适应度函数,选择4,以最小排列熵为适应度函数,选择5,以复合指标:排列熵/互信息熵为适应度函数。,选择6,以包络谱峰值因子为适应度函数。这样大家切换起来就很方便了。

代码获取方式:支付后会显示网盘链接!

ea1c2ac46fcf6369b7d9f71a302aea19.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TSINGSEE视频智能分析系统AI算法针对遛狗不拴绳行为的监管方案

一、背景与需求 近期,一则恶犬咬伤女童的新闻上了热搜,因为狗主人没有给狗拴绳,导致小区内一女童被大型犬撕咬,女童全身多处咬伤,已入院治疗。该新闻曝出后立刻引发社会关注。遛狗不拴绳行为也再一次引发热议。因为狗主…

【Leetcode】202. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回…

Flink -- 状态与容错

1、Stateful Operations 有状态算子: 有状态计算,使用到前面的数据,常见的有状态的算子:例如sum、reduce,因为它们在计算的时候都是用到了前面的计算的结果 总结来说,有状态计算并不是独立存在的&#xf…

以吉祥物宣传片实力出圈!吉祥物三维动画宣传片怎么制作?

首届学青会吉祥物“壮壮”、“美美”在宣传片中展示了举重、打羽毛球、游泳等运动姿态,靠着可爱的虚拟形象萌出圈! *图片源于网络 在数字化时代,吉祥物三维动画宣传片已成为众多大型活动、品牌宣发、文旅城市宣传的一大途径,如学…

Vue 传参踩坑之旅——事件总线与 props

Vue 传参踩坑之旅——事件总线与 props 缘由 今天突然发现项目出现了一个 bug,这里简单描述一下。 这里有 A、B、C、D 四个组件,关系为 A - 祖先、B - 父、C - 子、D - 叔(实际业务组件关系复杂很多)。 A - 祖先 B - 父 C - 子…

飞桨平台搭建PP-YOLOE模型

一、创建项目 此博客仅是运行PP-YOLOE源码,这里以变压器渗漏数据集为例COCO数据集太大了,跑不动,V100训练预估计得7天左右,即便是A100也得4天半,变压器渗漏油数据集跑一个小时左右,还可以接受,…

认识计算机-JavaEE初阶

文章目录 一、计算机的发展史二、冯诺依曼体系(Von Neumann Architecture)三、CPU基本工作流程3.1 算术逻辑单元(ALU)3.2 寄存器(Register)和内存(RAM)3.3 控制单元(CU)3…

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制) 目录 时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MAT…

深入了解Typescript中type和interface具体区别?

前言 新手刚开始学习 TypeScript 时,往往会对 type 和 interface 的使用场景和方式感到困惑。因此,本文旨在总结 type 和 interface 的概念和用法。 一、概念 type:类型别名 概念:允许为一个或多个数据类型(例如 str…

Redis系列-Redis过期策略以及内存淘汰机制【6】

目录 Redis系列-Redis过期策略以及内存淘汰机制【6】redis过期策略内存淘汰机制算法LRU算法LFU 其他场景对过期key的处理FAQ为什么不用定时删除策略? Ref 个人主页: 【⭐️个人主页】 需要您的【💖 点赞关注】支持 💯 Redis系列-Redis过期策略以及内存淘…

zookeeper:服务器有几种状态?

四种: looking(选举中)、leading(leader)、following( follower)、 observer(观察者角色)

挑战100天 AI In LeetCode Day06(热题+面试经典150题)

挑战100天 AI In LeetCode Day06(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-82.1 题目2.2 题解 三、面试经典 150 题-83.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&am…

直面LED Driver测试挑战,助力显示屏行业变中求变!

杭州亚运会开幕式惊艳世界,引发社会各界一致赞誉!在大气浪漫的舞台效果中,LED屏、裸眼3D屏凭借“硬核科技”出圈,为大家带来科技、活力、诗意的“中国式浪漫”观赏体验。而这美轮美奂的LED呈现效果背后,主要依靠的是LE…

Spring Cloud LoadBalancer 负载均衡策略与缓存机制

目录 1. 什么是 LoadBalancer ? 2. 负载均衡策略的分类 2.1 常见的负载均衡策略 3. 为什么要学习 Spring Cloud Balancer ? 4. Spring Cloud LoadBalancer 内置的两种负载均衡策略 4.1 轮询负载均衡策略(默认的) 4.2 随机负…

实用篇-Git

一、Git初识 git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件,html文件页面等),通过git仓库来对这些文件进行存储和管理 git仓库分为 本地仓库:开发人员自己电脑上的git仓库 远程仓库&#…

野火霸天虎 STM32F407 学习笔记_4 构建库函数尝试;使用固件库点亮 LED 灯

构建库函数 创建一个通用的模板,后面写程序直接使用这个模板。 $ ls Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2023/11/8 23:27 Libraries d----- …

grafana 密码忘记怎么重置

1.重置密码的命令: grafana-cli admin reset-admin-password 新的密码

【miniconda+jupyter环境安装】

minicondajupyter环境安装 下载miniconda创建第二个环境修改jupyternotebook的默认路径配置下源,下载快一点安装数据科学常用包先写到这儿!拜拜~ 下载miniconda 网址:https://docs.conda.io/en/latest/miniconda.html 运行下载安装&#xff…

数据库SQL

数据库&SQL 数据库基本概念数据库DataBase定义 数据库管理系统(DBMS)定义在JAVA项目中与数据库的结合数据库管理系统中常见的概念库与表的关系 SQL数据类型数字类型浮点类型字符类型TEXT类型日期类型 SQL语言的分类DDL:数据定义语言修改表结构的注意事项 DML:数据操作语言D…

高级运维学习(十四)Zabbix监控(一)

一 监控概述 1 监控的目的 (1)报告系统运行状况 每一部分必须同时监控内容包括吞吐量、反应时间、使用率等 (2)提前发现问题 进行服务器性能调整前,知道调整什么找出系统的瓶颈在什么地方 2 监控的资源类别 …