【特征选择】时变正弦和 V 形传递函数 (BMPA-TVSinV) 的新型二元海洋捕食者算法附matlab代码

news2024/11/20 6:32:00

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

特征选择问题是从数据集中找到最优特征子集的预处理机制之一。当特征数量增加时,问题的搜索空间将呈指数级增长。因此,特征选择问题被归类为 NP-hard 问题,精确的算法无法在合理的时间找到最优子集。因此,元启发式算法等近似算法被广泛应用于解决该问题。特征选择问题是一个离散(二元)优化问题;因此,可以使用离散元算法来找到最佳的特征子集。最近引入的元启发式算法之一是海洋捕食者算法 (MPA),它已经显示出对许多连续优化问题的良好解决方案。引入了一种使用时变正弦和 V 形传递函数 (BMPA-TVSinV) 的新型二元海洋捕食者算法,以查找数据集中的最佳特征子集。所提出的算法应用两个新的时变传递函数将连续搜索空间转换为二进制搜索空间。这些传递函数显着提高了 BMPA-TVSinV 的特征选择性能。COVID-19 数据集用于显示 BMPA-TVSinV. 在问题中的效率。

⛄ 部分代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Z. Beheshti, BMPA-TVSinV: A Binary Marine Predators Algorithm using time-varying sinus and V-shaped transfer functions for 

% wrapper-based feature selection, Knowledge-Based System (2022) 109446. 

% doi:https://doi.org/10.1016/j.knosys.2022.109446.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%

% warning off; %#ok

clc

close all

clear all   %#ok<CLALL>

global A train_data test_data;

%%

% Dataset

 A=xlsread('COVID19_II_r.csv');     CaseName='COVID19(II)';

%%

N=30; %Poulation Size

max_it=100;  %Maximum Number of Iteration

p=size(A,2)-1; % The number of attributes

%%

    r=randperm(size(A,1));

    train_data=r(1:floor(length(r)*0.8));      % Training Set= 80%

    test_data=r(floor(length(r)*0.8)+1:end);   % Testing Set=20%

    %%

    disp('**************  BMPA-TVSinV  **************');

    [BestChart,BestFitness,Error,BestPosition]=BMPA_TVSinV(N,max_it,p,'Fitness');

    q=sum(BestPosition,2); % Selected Feature

    disp(['Accuracy BMPA-TVSinV:',num2str((1-Error)*100), '  #Selected Features=',num2str(q) ,'  #Best Fitness=',num2str(BestFitness)]);

  

%% Plot

figure

maxit=1:1:max_it;

plot(maxit,BestChart,  '-','LineWidth',2);

legend('\fontsize{10}\bf BMPA-TVSinV');

xlabel('\fontsize{12}\bf Iteration');

ylabel(['\fontsize{11}\bf Fitness for ',CaseName,' Dataset']);

⛄ 运行结果

⛄ 参考文献

Z. Beheshti, BMPA-TVSinV: A Binary Marine Predators Algorithm using time-varying sinus and V-shaped transfer functions for wrapper-based feature selection, Knowledge-Based Systems (2022) 109446. doi:https://doi.org/10.1016/j.knosys.2022.109446.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

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

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

相关文章

CSC7136B

CSC7136B是一款高效率低待机功耗原边反馈小功率 电源 AC/DC 驱动 电路&#xff0c;无 需光耦、TL431 及相关器件。CSC7136B采用开关频率调制和初级电流峰值振幅&#xff08; FM 和 AM &#xff09;多模式工作技术&#xff0c;保证了全负载和线性范围内的较高的转换效率。恒压模…

无法安装人脸检测dlib库的解决方法

1. 引言 dlib 库是一个用来人脸关键点检测的 Python 库&#xff0c;但因为其是 C 编写&#xff08;或需要 C编译&#xff1f;&#xff09;&#xff0c;使得在安装时可能会遇到各种各样问题。笔者在安装时遇到问题后&#xff0c;搜索了一些博客&#xff0c;看到了一些解决方法&…

基于Python+Mysql实现(WinForm)书店销售管理管理子系统【100010028】

书店销售管理管理子系统 一、设 计 总 说 明 现在社会随着计算机技术迅速发展与技术的逐渐成熟&#xff0c;信息技术已经使人们的生活发生深刻的变化。生活中的各种服务系统也使人们在生活中的联系日常销售活动方式发生了很大的变化&#xff0c;让效率较低的手工操作成为过去…

年网络安全观察报告 地域分布

执行摘要 从 1987 年 9 月 14 日&#xff0c;中国向世界发出第一封电子邮件 到如今&#xff0c;中国的互联网发展已过去整整 31 个年头。从消费互联、产业互联到万物互联&#xff0c;互联网正在加速改变我们的交流方式和交易方式&#xff0c;一次次 004.重塑了国家的经济形态和…

Java单例模式的写法及作用介绍

在创建型设计模式中&#xff0c;我们第一个学习的是单例模式&#xff08;Singleton Pattern&#xff09;&#xff0c;这是设计模式中最简单的模式之一。 单例是什么意思呢&#xff1f; 单例就是单实例的意思&#xff0c;即在系统全局&#xff0c;一个类只创建一个对象&#x…

友嘉银行坎坷的云原生之路

随着数字化浪潮的来临&#xff0c;云原生技术越来越火。云原生技术的持续更新&#xff0c;无一不在催促传统行业重塑业务体系以及产业生态的转型升级。说到云原生&#xff0c;目前已被认为是云计算最重要的发展方向&#xff0c;它拥有更优雅的架构、更灵活的调度、更完善的治理…

QT—常用窗口部件

一、QLabel 新建一个QWidget项目&#xff0c;设置基类为QWidget 1.显示文本 调用setText函数编辑要显示的文本&#xff0c;传入一个const QString类型的参数 例如&#xff1a; ui->TxtLabel->setText("Label文本&#xff0c;12345678"); 其中TxtLabel是一…

web大作业 web前端课程设计 web前端课程设计代码 web课程设计 HTML网页制作代码

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【Android Room 库基础入门】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、前言二、Room 主要组件三、Room 基础入门3.1 引入 Room 库到项目3.2 Room 使用示例3.2.1 定义数据实体类3.3.2 定义数据访问对象&#xff08;DAO&#xff09;3.3…

如何成为一名IT咨询顾问?

咨询顾问这个工作&#xff0c;很多人都很羡慕&#xff0c;在别人看来咨询顾问的工作时间自由&#xff0c;可以到处出差和旅游&#xff0c;能够认识企业各种层面的人&#xff0c;见多识广。实际情况真的这么轻松吗&#xff1f;什么样的人适合做咨询顾问&#xff1f;做咨询顾问需…

《计算机网络》2022年期末试卷

《计算机网络》期末试卷2022年A卷

synchronized 关键字

文章目录一、synchronized 的特性互斥可重入二、 synchronized 使用示例三、 java标准库的线程安全类四、 死锁可重入死锁相互争夺锁哲学家就餐问题死锁的四个必要条件一、synchronized 的特性 互斥 synchronized 会起到互斥效果, 某个线程执行到某个对象的 synchronized 中时…

亚马逊、ebay测评自养号新手应该要怎么做?

如今很多的跨境卖家开始在深入了解测评自养号这块&#xff0c;都想在运营上减低一些成本&#xff0c;多增加一些利润。对于整个测评工作来说&#xff0c;测评技术可谓是非常核心的一个环节&#xff0c;多学习&#xff0c;不要浮躁&#xff0c;这样才能让我们不断提高自己的测评…

Android 3D 魔方游戏的设计与开发

Android 3D 魔方游戏的设计与开发 5.1 Feature 定义 魔方是一个有趣的益智游戏&#xff0c;相信很多人都玩过。本次毕业设计&#xff0c;欲完成的主要的功能如下&#xff1a; &#xff08;1&#xff09; 开始游戏&#xff1a;开始一个新的游戏 &#xff08;2&#xff09; 返…

Java项目:食品检测管理系统(java+SSM+JavaScript+layui+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 项目介绍 本项目后台食品检测管理系统&#xff1b; &#xff08;1&#xff09;用户管理&#xff1a;用户登录、验证。 &#xff08;2&#xff09;任务管理&#xff1a;添加任务、检品受理。 &#xff0…

数学基础从高一开始4、集合的基本运算2

数学基础从高一开始3、集合的基本运算2 目录 数学基础从高一开始3、集合的基本运算2 补集 例2&#xff1a; 总结&#xff1a; 补集 这里补集的符号我打不出来&#xff0c;这里就截图给大家看了啊。 下图是补集的语言表达&#xff0c;图形表达以及符号表达方式&#xff1a…

在无需分叉的情况下模拟任何 SIGHASH 标志

我们开发了一种新颖的方法来模拟任何 SIGHASH 标志&#xff0c;只需在智能合约中编写逻辑即可。它不需要更改协议&#xff0c;因此比每次构思新用例时通过分叉添加硬编码标志更实用和灵活。 SIGHASH 标志 SIGHASH 标志决定交易的哪一部分由签名者签名。具体来说&#xff0c;它…

Redis分布式锁那点事

锁超时问题 在redis分布式锁中&#xff0c;如果线程A加锁成功了&#xff0c;但是由于业务功能耗时时间很长&#xff0c;超过了设置的超时时间&#xff0c;这时候redis会自动释放线程A加的锁。通常我们加锁的目的是&#xff1a;为了防止访问临界资源时&#xff0c;出现数据异常…

【Python学习记录】Numpy广播机制(broadcast)

✨ 博客主页&#xff1a;小小马车夫的主页 ✨ 所属专栏&#xff1a;Python学习记录 文章目录一、什么是Numpy广播机制二、Numpy广播应用三、Numpy广播规则一、什么是Numpy广播机制 在Numpy、tensorflow、pytorch中数组有一种广播机制(broadcast), 就是针对两个不同形状的数组进…

【Linux】Linux调试器-gdb使用及git命令行

大家好我是沐曦希&#x1f495; 文章目录一.预备知识1.背景2.Linux默认行为3.debug和release区别二.使用三.使用git命令行一.预备知识 1.背景 程序的发布方式有两种&#xff0c;debug模式和release模式Linux gcc/g出来的二进制程序&#xff0c;默认是release模式要使用gdb调试…