【特征选择】基于教与学算法实现二进制特征选择问题附matlab代码

news2024/12/23 18:44:20

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

简要分析了群智能优化算法的研究现状,重点对"教与学"优化算法作了详细的描述,并分析了"教与学"算法的性能及其优缺点;随后介绍了几种改进的"教与学"优化算法,对"教与学"优化算法的应用研究情况进行了论述。最后,说明了目前"教与学"优化算法中存在的问题,并指出"教与学"优化算法未来的研究方向。

⛄ 部分代码

%% TLBO + LPQ Image Feature Selection

% This code extract LPQ features out of 5 classes of images and selects best 

% desire number of features using TLBO algorithm. 

%% Making Things Ready !!!

clc;

clear; 

warning('off');

%% LPQ Feature Extraction

% Read input images

path='Dat';

fileinfo = dir(fullfile(path,'*.jpg'));

filesnumber=size(fileinfo);

for i = 1 : filesnumber(1,1)

images{i} = imread(fullfile(path,fileinfo(i).name));

disp(['Loading image No :   ' num2str(i) ]);

end;

% Color to Gray Conversion

for i = 1 : filesnumber(1,1)

images{i}=rgb2gray(images{i});

disp(['To Gray :   ' num2str(i) ]);end;

% Contrast Adjustment

for i = 1 : filesnumber(1,1)

adjusted2{i}=imadjust(images{i});

disp(['Contrast Adjust :   ' num2str(i) ]);end;

% Resize Image

for i = 1 : filesnumber(1,1)

resized2{i}=imresize(adjusted2{i}, [256 256]);

disp(['Image Resized :   ' num2str(i) ]);end;

%% LPQ Features

% clear LPQ_tmp;clear LPQ_Features;

winsize=9;

for i = 1 : filesnumber(1,1)

LPQ_tmp{i}=lpq(resized2{i},winsize);

disp(['Extract LPQ :   ' num2str(i) ]);end;

for i = 1 : filesnumber(1,1)

LPQ_Features(i,:)=LPQ_tmp{i};end;

%% Labeling for Classification

sizefinal=size(LPQ_Features);

sizefinal=sizefinal(1,2);

%

LPQ_Features(1:10,sizefinal+1)=1;

LPQ_Features(11:20,sizefinal+1)=2;

LPQ_Features(21:30,sizefinal+1)=3;

LPQ_Features(31:40,sizefinal+1)=4;

LPQ_Features(41:50,sizefinal+1)=5;

% ------------------------------------------------------

%% Feature Selection

% Data Preparation

x=LPQ_Features(:,1:end-1)';

t=LPQ_Features(:,end)';

data.x=x;

data.t=t;

data.nx=size(x,1);

data.nt=size(t,1);

data.nSample=size(x,2);

%% Number of Desired Features

nf=32;

%% Cost Function

CostFunction=@(u) FeatureCost(u,nf,data);

% Number of Decision Variables

nVar=data.nx;

% Size of Decision Variables Matrix

VarSize=[1 nVar];

% Lower Bound of Variables

VarMin=0;

% Upper Bound of Variables

VarMax=1;

%--------------------------------------------------------------

%% TLBO Parameters

MaxIt = 30;        

nPop = 2;          

empty_individual.Position = [];

empty_individual.Cost = [];

empty_individual.Out = [];

pop = repmat(empty_individual, nPop, 1);

BestSol.Cost = inf;

for i = 1:nPop

pop(i).Position = unifrnd(VarMin, VarMax, VarSize);

[pop(i).Cost pop(i).Out] = CostFunction(pop(i).Position);

if pop(i).Cost < BestSol.Cost

BestSol = pop(i);

end

end

BestCost = zeros(MaxIt, 1);

%% TLBO Body

for it = 1:MaxIt

Mean = 0;

for i = 1:nPop

Mean = Mean + pop(i).Position;

end

Mean = Mean/nPop;

% Select Teacher

Teacher = pop(1);

for i = 2:nPop

if pop(i).Cost < Teacher.Cost

Teacher = pop(i);

end

end

% Teacher 

for i = 1:nPop

newsol = empty_individual;

% Teaching Factor

TF = randi([1 2]);

% Teaching (moving towards teacher)

newsol.Position = pop(i).Position ...

+ rand(VarSize).*(Teacher.Position - TF*Mean);

% Clipping

newsol.Position = max(newsol.Position, VarMin);

newsol.Position = min(newsol.Position, VarMax);

% Evaluation

[newsol.Cost newsol.Out] = CostFunction(newsol.Position);

% Comparision

if newsol.Cost<pop(i).Cost

pop(i) = newsol;

if pop(i).Cost < BestSol.Cost

BestSol = pop(i);

end

end

end

% Learner 

for i = 1:nPop

A = 1:nPop;

A(i) = [];

j = A(randi(nPop-1));

Step = pop(i).Position - pop(j).Position;

if pop(j).Cost < pop(i).Cost

Step = -Step;

end

newsol = empty_individual;

% Teaching (moving towards teacher)

newsol.Position = pop(i).Position + rand(VarSize).*Step;

% Clipping

newsol.Position = max(newsol.Position, VarMin);

newsol.Position = min(newsol.Position, VarMax);

% Evaluation

[newsol.Cost newsol.Out]= CostFunction(newsol.Position);

% Comparision

if newsol.Cost<pop(i).Cost

pop(i) = newsol;

if pop(i).Cost < BestSol.Cost

BestSol = pop(i);

end

end

end

% Store Record for Current Iteration

BestCost(it) = BestSol.Cost;

disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);

end

% Plot ---------------------------------------------- 

plot(BestCost, '--k','linewidth',2);

xlabel('Iteration');

ylabel('Bees Cost');

%---------------------------------------------------

%% Creating Features Matrix

% Extracting Data

RealData=data.x';

% Extracting Labels

RealLbl=data.t';

FinalFeaturesInd=BestSol.Out.S;

% Sort Features

FFI=sort(FinalFeaturesInd);

% Select Final Features

Bio_Features=RealData(:,FFI);

% Adding Labels

Bio_Features_Lbl=Bio_Features;

Bio_Features_Lbl(:,end+1)=RealLbl;

LPQ_Bio=Bio_Features_Lbl;

% Plot

figure;

plot(FinalFeaturesInd, 'linewidth' , 2);

title('Selected Features');

xlabel ('Feature Number');

ylabel ('Feature Index');

⛄ 运行结果

⛄ 参考文献

[1]程亚维.基于教学与学习优化算法的糊糊性作业车辆间的调度问题[J]. 新乡学院学报, 2021, 38(9):6.

[2]杨文明,顾幸生. 基于混匀优化算法的连续生产过程重调度与库存优化[J]. 华东理工大学学报:自然科学版, 2006, 32(7):4.

⛄ Matlab代码关注

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

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

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

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

相关文章

第二证券|汽车板块现涨停潮!多只地产债再涨到临停

在昨日大幅上涨后&#xff0c;今日上午A股商场持续上行&#xff0c;不过涨势放缓&#xff0c;到上午收盘&#xff0c;上证指数上涨0.21%。 昨日带动大市上行的地产板块今日上午涨势减缓&#xff0c;包含福星股份、世茂股份在内的多只地产股涨停。不过也有极少数地产股逆势跌落&…

容器化应用系统上生产的最佳实践

前言 最近忙的要死, &#x1f47b;&#x1f47b;&#x1f47b;. 上一周来了一次比 996 更猛的 907. 这周二终于有点遭不住了, 调休一天, 稍微歇息一下. 同时手痒的不行, 把筹备了好久的重磅文章发上来哈哈. &#x1f606;&#x1f606;&#x1f606; 不过时间还是有点仓促, …

自动化测试的生命周期是什么?

软件测试发展到今日&#xff0c;已经逐渐标准化且能力更强&#xff0c;其流程每天都在发展。测试人员的技术熟练程度对于整个测试阶段的成功来说至关重要。测试不再意味着仅仅发现错误&#xff1b;它的范围已经扩大&#xff0c;从任何开发项目开始就可以看出它的重要性。 当谈论…

[SpringMVC]第三篇:作用域传参

四大域: PageContext对象(不常用) 作用域范围:当前jsp页面内有效 request对象(经常用) 作用域范围:一次请求内。 作用: 解决了一次请求内的资源的数据共享问题 session对象(登录,会话时会用) 作用域范围:一次会话内有效。 说明:浏览器不关闭,并且后台的session不失效&#xff…

Python OpenCV 单目相机标定、坐标转换相关代码

前言 本文不讲原理&#xff0c;只关注代码&#xff0c;有很多博客是讲原理的&#xff0c;但是代码最多到畸变矫正就结束了&#xff0c;实际上就是到 OpenCV 官方示例涉及的部分。   在官方示例中使用黑白棋盘格求解了相机的内外参和畸变系数&#xff0c;并对图像做了畸变矫正…

【Android App】集成腾讯地图显示位置和地图面板讲解及实战(附源码和演示 超详细必看)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、集成腾讯地图 之所以选用腾讯地图来讲解&#xff0c;是因为它的集成过程相对简单&#xff0c;无须通过App的签名鉴权&#xff0c;腾讯地图的开放平台网址为 腾讯地图 集成腾讯地图分为以下几步 &#xff08;1&#xff09;在…

Linux网络基础------TCP/UDP协议

文章目录TCP和UDP的宏观认识UDP协议TCP协议 &#xff08;绝对的核心重点&#xff09;tcp协议报头各个字段的详解tcp协议的机制超时重传机制连接管理机制3次握手4次挥手滑动窗口流量控制拥塞控制延迟应答捎带应答粘包问题TCP和UDP的宏观认识 首先&#xff0c; TCP/UDP是位于传输…

元宇宙竟然也难逃性骚扰???

当我们还沉浸在元宇宙里种种美妙的虚拟体验之时&#xff0c;竟接连传出 “虚拟性骚扰” &#xff08;virtual assault&#xff09;……去年 12 月&#xff0c;Metaverse Research 的联合创始人 Nina Jane Patel&#xff0c;在自己的 Blog 记录下她参与 Meta 元宇宙游戏《地平线…

学习响应式布局

针对性内容 页面设计在不同设备的显示情况布局只会使用float定位&#xff0c;而不会掌握flex不能很好的使用rem作为设计单位掌握响应式布局、弹性等常见布局 学习内容 css中媒体查询的作用和使用方法flex弹性盒子的用法rem的作用和使用方法目录 针对性内容 学习内容 Media…

第8章 自定义SwaggerIndex页与登录页

“Blog.Core-master”程序没有使用.Net7框架内置的index.html页对api方法进行渲染显示&#xff0c;而是通过对“Swagger”和“SwaggerUI”内置中间件的自定义操作&#xff0c;调用根目录下的自定义index.html页对api方法进行渲染显示。 1、自定义“Swagger”和“SwaggerUI”内…

[附源码]Python计算机毕业设计Django付费自习室管理小程序

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

vue项目使用elementui上传组件 打包后报错t.upload.addEventListener is not a function的解决方案

今天和大家分享一个报错的解决方案 背景 项目打包部署到宝塔上后&#xff0c;打开网页&#xff0c;上传东西时出现了一个报错&#xff0c;但是在本地开发环境是没有问题的。 报错内容&#xff1a; 这个问题是因为mockjs改动了axios里面XMLHttpRequest对象从而导致报错。 解…

Java医院信息管理系统源码带文字安装教程

技术架构 技术框架&#xff1a;springboot shiro layui jquery thymeleaf nginx 运行环境&#xff1a;jdk8 mysql IntelliJ IDEA maven 宝塔面板 文字安装教程 下载源码&#xff0c;创建一个数据库&#xff0c;导入hospitaldata.sql文件至数据库中。 使用IDEA打开hosp…

Kotlin高仿微信-第29篇-朋友圈-发布作品(图片)

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点&#xff0c;包括&#xff1a;注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

GmNAC181促进结瘤并提高根瘤的耐盐性

文章信息 题目&#xff1a;GmNAC181 promotes symbiotic nodulation and salt tolerance of nodulation by directly regulating GmNINa expression in soybean 刊名&#xff1a;New Phytologist 作者&#xff1a;Xiaodi Wang&#xff0c;Youning Wang, Xia Li et al. 单位…

2022年NPDP新版教材知识集锦--【第四章节】(5)

《产品经理认证(NPDP)知识体系指南(第2版)》已于2022年4月正式上架发行&#xff0c;新版教材自2022年11月NPDP考试起使用。将新版NPDP教材中的相关知识点进行了整理汇总&#xff0c;包括详细设计与规格阶段相关内容&#xff0c;快来看看吧。 【详细设计与规格阶段】(全部获取文…

HCIP-路由01:路由基础

路由基础一 自治系统&#xff08;AS&#xff09;二. 入表&#xff08;路由表&#xff09;规则2.1 priority2.2 metric三. 选路规则&#xff08;掩码最长匹配原则&#xff09;四. 路由的负载分担五. 路由备份&#xff08;浮动路由&#xff09;六. 路由黑洞七. 路由黑洞的解决方法…

export default 和 export之间的区别

&#x1f388; export default 和 export 有什么区别&#xff1a; export 、export default&#xff0c;都属于ES6里面的语法 1. export与export default均可用于导出常量、函数、文件、模块等 2. 你可以在其它文件或模块中通过import(常量 | 函数 | 文件 | 模块)名的方式&a…

03【Controller方法返回值详解】

文章目录三、Controller方法返回值详解3.1 返回普通字符串3.1.1 跳转3.1.2 设置视图解析器3.2 返回ModelAndView3.2.1 普通视图3.2.2 RedirectView3.3 返回特殊字符串3.4 返回void三、Controller方法返回值详解 3.1 返回普通字符串 3.1.1 跳转 package com.dfbz.controller;…

美颜预览卡顿问题跟踪

预览卡顿的问题&#xff0c;首先第一想法就是看下帧率&#xff0c;帧率小&#xff0c;自然会卡顿。根据人眼视觉暂留原理&#xff0c;帧率小于24帧&#xff0c;人脸就会感知到卡顿。 帧率的概念在Camera中我们经常会提到&#xff0c;其实有3个帧率概念&#xff0c;从下往常看&a…