【特征选择】基于二进制粒子群算法的特征选择方法(GRNN广义回归神经网络分类)【Matlab代码#32】

news2024/11/25 4:36:50

文章目录

    • 【可更换其他算法,`获取资源`请见文章第6节:资源获取】
    • 1. 特征选择问题
    • 2. 二进制粒子群算法
    • 3. 广义回归神经网络(GRNN)分类
    • 4. 部分代码展示
    • 5. 仿真结果展示
    • 6. 资源获取


【可更换其他算法,获取资源请见文章第6节:资源获取】


1. 特征选择问题

特征选择是指从原始数据中选择最具有代表性和有用性的特征,以用于建模和预测任务。它是机器学习和数据挖掘中的重要步骤,可以提高模型的性能和解释能力,并降低计算成本和过拟合的风险。

特征选择的方法可以分为三大类:过滤方法(Filter methods)、包装方法(Wrapper methods)和嵌入方法(Embedded methods)。

过滤方法是根据某种准则或评估指标对特征进行评估和排序,然后选择排名靠前的特征。常用的过滤方法包括相关系数、信息增益、方差选择等。这些方法独立于具体的学习算法,计算效率高,但不能考虑特征子集之间的相互关系。

包装方法是利用机器学习算法对不同的特征子集进行评估,以确定最佳的特征子集。这类方法通常以模型性能为评价指标,例如递归特征消除(Recursive Feature Elimination, RFE)和遗传算法等。包装方法的计算代价较高,但能够考虑特征之间的相互关系。本文采用的就是包装方法

嵌入方法是指在学习算法中直接嵌入特征选择过程,通过学习过程自动选择最佳的特征。常见的嵌入方法包括L1正则化(L1 Regularization)和决策树的剪枝等。

选择适合的特征选择方法需要考虑数据的特点、问题的要求以及计算资源的限制。常用的特征选择工具包括scikit-learn(Python)、Weka(Java)和caret(R)等,它们提供了多种特征选择方法的实现。

需要注意的是,特征选择是一个迭代的过程,需要根据实际情况不断尝试和调整。在特征选择之前,应该对数据进行预处理、探索性数据分析和特征工程等步骤,以保证特征选择的效果和模型的可靠性。

2. 二进制粒子群算法

在这里插入图片描述
在这里插入图片描述
二进制粒子群算法(Binary Particle Swarm Optimization,BPSO)是一种基于群体智能的优化算法,用于解决二进制编码的优化问题。它是粒子群算法(Particle Swarm Optimization,PSO)的一种变体,适用于离散型优化问题。

在二进制粒子群算法中,每个粒子表示一个解向量,而解向量中的每个维度都是二进制值,通常用0和1表示。粒子群算法通过模拟鸟群中鸟的觅食行为,来搜索最优解。每个粒子根据自身历史最优解和群体最优解的信息,更新自己的位置和速度,并通过适应度函数评估自身的解的质量。

3. 广义回归神经网络(GRNN)分类

在这里插入图片描述
在这里插入图片描述

图1 广义回归神经网络结构图

在这里插入图片描述
在这里插入图片描述
GRNN数据分类过程如下:

  • 输入训练数据集,包括特征向量和对应的类别标签。
  • 对每个训练样本,计算其与测试样本之间的距离。常用的距离度量方法包括欧氏距离、曼哈顿距离等。
  • 基于距离计算每个训练样本的权重,通常使用高斯核函数来计算权重。高斯核函数将距离转换为权重,越近的样本权重越高,越远的样本权重越低。
  • 对每个类别的样本,根据其权重进行加权平均。权重越高的样本对应的类别影响越大。
  • 将测试样本划分到具有最高加权平均值的类别中。

4. 部分代码展示

%% GRNN 广义回归神经网络 classification
all_select=ones(1,dim);
[predictResult,accuracy,objval]=GRNN(all_select,trainData ,testData,trainlabel,testlabel,labels,dim);

%% PSO optimisation for feature selection
SearchAgents_no=30; % Number of search agents
Max_iteration=30; % Maximum numbef of iterations

% 二进制粒子群算法
[Target_score,Target_pos,PSO_cg_curve]=BPSO(SearchAgents_no,Max_iteration,dim,trainData,testData,trainlabel,testlabel,labels);                                        

% final evaluation for PSO tuned selected features
[predictedLables_PSO,accuracy_PSO,~]=GRNN(Target_pos,trainData,testData,trainlabel,testlabel,labels,dim);                                                               

%%
% plot for Predicted classes
figure(1)
plot(testlabel,'ko','markersize', 8)
hold on
plot(predictResult,'b*','markersize', 8)
xlabel('测试集样本');
ylabel('类别标签');
legend('实际测试集分类','全部特征下GRNN预测分类');
title("全部特征下分类准确率:"+ num2str(100*accuracy)+"%");
axis tight

figure(2)
plot(testlabel,'ko','markersize', 8)
hold on
plot(predictedLables_PSO,'r*','markersize', 8)
xlabel('测试集样本');
ylabel('类别标签');
legend('实际测试集分类','基于PSO的特征选择后GRNN预测分类');
title("特征选择后分类准确率:"+ num2str(100*accuracy_PSO)+ "%");
axis tight

figure(3)
plot(PSO_cg_curve(2:end),'r')
xlabel('适应度值');
ylabel('迭代次数');
title('基于PSO的特征选择优化曲线');

delete_index = find(Target_pos==0);
remain_index = find(Target_pos~=0);
disp(['该数据集包含',num2str(numel(Target_pos)),'个特征维度', ]);
disp(['PSO优化后选择舍弃的特征维度序号为:', num2str(delete_index)]);
disp(['PSO优化后选择保留的特征维度序号为:', num2str(remain_index)]);

5. 仿真结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 资源获取

A资源获取说明.rar
A资源获取说明.rar

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

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

相关文章

2023年Github学生包认证,提取JetBrains全家桶,认证Copilot 等多种权益

什么是GIthub学生包 1 Github学生包简而言之是可以白嫖100美刀的微软Azure(每年),200美刀的DigitalOcean金额(一年有效期)总计300刀可用来购买云服务器。 2 一年免费的.tech .me .live三种顶级域名(可以分…

Kubernetes 云原生 Gateway 网关

一、云原生定义 CNCF 对云原生的定义中提到了几个关键的点: 1、强调应用环境的动态性,像公有云、私有云、混合云等新型的动态环境已成为大多数应用的首选; 2、强调在跨多云部署应用时具备非云平台绑定的属性; 3、还强调了弹性扩展…

Python系列模块之标准库shutil详解

感谢点赞和关注 ,每天进步一点点!加油! 目录 一、shutil介绍 二 、使用详解 2.1 复制函数 2.1.1 shutil.copy 2.1.2 shutil.copy2 2.1.3 shutil.copyfile 2.1.4 shutil.copytree 2.2 移动文件 2.2.1 shutil.move 2.3 删除文件 2.3…

Vue-后台管理项目001---侧边栏

从浏览器上可以看出,他的返回值是promise(pending),所以我们可以用async,await来简化这个操作 await只能用在被async修饰的方法中,需要把仅挨着await的方法修饰成async 需要把仅挨着await的方法修饰成异步的async现在可以将这个da…

1-1 统计数字问题

题目: 我的答案: 一、信息 二、分析 1.如何选择数据结构? 2.如何选择算法有很多思路? 3.如何用文件实现输入输出? 三、思考 疑问1 我选择了一开始数组选择使用数组是一个不错的选择,尤其在这个问题中…

【网络协议详解】——DHCP系统协议(学习笔记)

目录 🕒 1. DHCP概述🕒 2. 工作过程🕒 3. DHCP的报文格式🕒 4. DHCP中继代理🕒 5. 实验:DHCP配置 🕒 1. DHCP概述 动态主机配置协议DHCP(Dynamic Host Configuration Protocol&…

TA-lib第三方库安装问题

因为学习的需要,用到Talib库做写指标分析,但是百度了好久,说是去要某某网站下载对应版本的文件进行本地安装,但是把…404 Not found 然后通过查找,Ta-lib库的安装已经迁移到这里了 https://github.com/TA-Lib/ta-lib-p…

【SpringBoot教程】SpringBoot+MybatisPlus数据库连接测试 用户收货信息接口开发

⛪ 专栏地址 系列教程更新中 🚀 文章介绍: SpringBootMybatisPlus组合可以大大加快开发效率,紧接上一篇文章的内容,这篇文章进行数据库的连接与查询测试,并配置日志输出调试 🚀 源码获取: 项目中的资料可以通过文章底部…

数据安全治理科技系统能力-数据安全复合治理框架和模型解读(3)

数据治理,数据安全治理行业在发展,在实践,所以很多东西是实践出来的,哪有什么神仙理论指导,即使有也是一家之说,但为了提高企业投产比,必要的认知是必须的,落地数据安全治理科技水平差异直接决定产品和项目是否可持续性,当前和未来更需要专业和有效创新。数据安全治理…

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】

目录 知识点:封锁活锁死锁可串行化调度 考题1:可串行化调度 考题2:调度正确判断&共享锁写锁 考题3: 事务调度死锁 知识点:封锁活锁死锁可串行化调度 考题1:可串行化调度 考题2:调度正确判…

杨立昆:科学之路读书笔记2

杨立昆:科学之路读书笔记2 人工智能的低谷人工智能无所不能吗?谁将从AI人工智能革命中获益结语 一起学AI系列博客:目录索引 人工智能的低谷 上回分享了读书缘由,杨立昆的背景及其对人工智能的研究看法,这回分享他如何…

15.Kafka系列之事务原理及实践

我们先来回顾下6.Kafka系列之设计思想(四)-消息传递语义中的一些内容 1. 消息传递保证 At most once:最多一次。消息可能会丢失,但永远不会重新传递At least once:至少一次。消息永远不会丢失,但可能会重新传递Exactly once&…

rust 初识基础: 变量、数据类型、函数、所有权、枚举

了解到 rust 和 WebAssembly 的结合使用,可以构建前端应用,而且性能也比较好。初步学习使用 rust 是预编译静态类型语言。 安装 rust 官网下载 rust-CN , 大致了解下为什么选择:高性能、可靠性、生产力。 打开控制台啊,执行安装…

【Servlet】

目录 🎂1. 第一个 Servlet 程序:使用 Servlet 写 hello world 🥞1.1 创建项目 🍳1.2 引入依赖 🎃1.3 创建目录 🍘1.4 开始写代码 🌍1.5 打包代码 🍤1.6 部署 👑1…

如何在华为OD机试中获得满分?Java实现【获取最大软件版本号】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

使用kotlin用回溯法解决电话号码的字母组合问题

17. 电话号码的字母组合 难度中等 2474 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入&#…

23种设计模式中之中介者模式(Mediator Pattern)

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将23种设计模式中的迭代器模式,此篇文章为一天学习一个设计模式系列文章,后面会分享其他模式知识。 如果文章有什么需要改进的地方还请大佬…

运维工程师面试总结(含答案)

运维工程师面试总结 原文链接:https://www.cuiliangblog.cn/detail/article/2 一、linux 1. linux系统启动流程 第一步:开机自检,加载BIOS第二步:读取MBR第三步:Boot Loader grub…

uni-app常用场景速查记录

记录一下uniapp开发过程中遇到的问题场景,方便后期查看. 1.elementUI中textarea文本如何设置换行显示 2.uniapp中实现文字滚动显示 3.下拉刷新和触底分页查询 1.elementUI中textarea文本设置换行显示 el-input标签中type为textarea中录入的文本内容,在表格中显示…

关键词搜索1688商品数据采集、1688商品列表数据接口

1688:指中国最大的电子商务综合平台,类似于美国的亚马逊。 关键词:是用于描述检索文档或记录的词语或短语,通常是用户输入的查询信息。 搜索:是在数据库、网页搜索引擎或其他信息存储库中查找信息内容的过程。 商品数…