特征选择|一种提升预测模型性能的方法(原理及其优化实现,Matlab)

本文介绍了在大数据背景下,特征选择在机器学习中的重要性,特别是封装式方法。探讨了如何结合优化算法(如DBO、GWO等)降低计算成本,提升学习性能,并展示了在UCI数据集上的实验结果。
摘要由CSDN通过智能技术生成

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进
在这里插入图片描述

如今,生成的数据集呈指数级增长,这将产生具有大量特征和样本的数据集,而显然,某些特征是不相关/冗余的,它们对预测器会产生负面影响。

而特征选择作为一种能够有效降低数据维度、缩减计算成本、提高学习性能的数据预处理方法,现在已广泛地应用于机器学习和数据挖掘中。

主要的特征选择方法包括4种:过滤式、封装式、嵌入式、集成式。

本文主要介绍封装式,它的优点是:在已知后续学习算法的条件下,其选出的特征效果更优于其他方法,但对于高维数据其计算成本较大。

封装式特征选择方法可视为优化问题(准确率最高、特征选择量最少),因此可与KAU前面介绍的多种优化算法相结合,本文将多种优化算法(DBO、GWO、WOA、BWO)应用于特征选择问题,并选用了KNN、SVM、​随机森林作为分类器。

00 目录

1 特征选择相关

2 优化算法相关

2 代码目录

3 算法性能

4 源码获取

01 特征选择相关

1.1 个体的初始化及离散化

特征选择是二值决策优化问题,存在的理论解是指数级的,以1表示选择该特征,0表示不选择该特征。

而多数优化算法都是针对连续优化问题的,因此不仅要将个体的运动范围加以限制,还要将连续的位置转化为二进制。

针对上述问题,首先在个体初始化上,采用下述方法:若产生的随机数小于0.5,则赋为0,反之为1。在这里插入图片描述

其中,xji为第i个个体的第j维,d为特征数量;rand为一个随机数。其图示如下:
在这里插入图片描述

图源文献1

其次,在个体位置更新后,利用Sigmoid函数将其离散化,从而将连续位置向量映射到{0,1}:
在这里插入图片描述

在这里插入图片描述

1.2 适应度函数

特征选择作为组合优化问题,有两个主要目标。第一个目标是提高分类性能,第二个目标是所选择的特征数量尽可能少。因此其适应度函数可表达为:找到一个特征子集(即最优解的编码),使分类错误率和所选特征比率加权和最小:

在这里插入图片描述

其中,ER(D)为分类器的分类错误率,|S|是所选特征子集中特征个数,|F|是原始特征集中特征总数。α 和β 用于平衡分类错误率和所选特征比率的关系。

1.3 特征选择算法设计

有了前面两步后,特征选择模型就已经建成,可以用优化算法进行优化了,其流程如下:

在这里插入图片描述

02 优化算法相关

KAU在往期文章中更新过很多优化算法的原理及代码实现,也更新过许多原创改进算法

03 算法性能

3.1 数据集

本文选择UCI机器学习库中的数据集进行测试,直接从数据库中下载的数据为.data格式,这里KAU已将其转化为matlab更易读取的mat格式,部分数据集如下:在这里插入图片描述

3.2 评估指标

由于优化算法具有一定随机性,因此对每个数据集执行n次独立实验以降低偶然因素的影响,采用以下指标对性能进行评估。

①平均分类正确率

即n次运行后获得的平均分类性能。ACC越高则算法性能越好

在这里插入图片描述

②平均特征子集大小

即n次运行后,所选特征子集的平均大小。Size越小则特征选择算法性能越好

在这里插入图片描述

③最佳适应度

即n次运行得到的适应度中的最小值。

在这里插入图片描述

④标准差

标准差是衡量优化算法稳定性的指标,标准差的值越小,意味着算法的稳定性越强。

在这里插入图片描述

⑤平均适应度

即n次运行得到的适应度取均值。值越小则性能越好。
在这里插入图片描述

3.3 运行结果

本文选取了GWO、WOA、DBO、BWO进行优化,同时,可用的分类器包括KNN、SVM、随机森林。当然也可以添加BPNN、LSTM等分类器。部分效果,以UCI数据库中的zoo数据集为例:

SVM(左) ,RF(右)

在这里插入图片描述

KNN

在这里插入图片描述

除迭代曲线外,还会生成相应的数据文件:
在这里插入图片描述

除以上优化算法外,KAU也引入了一些原创算法,获得了更优的性能,部分效果如下:

算法 :AAMCWOA 分类器:SVM
在这里插入图片描述
在这里插入图片描述

算法:MSGWO 分类器:KNN

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

算法:MSIDBO 分类器:KNN
在这里插入图片描述

在这里插入图片描述

算法:MSBWO 分类器:KNN

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

06 源码获取

本文提供几个版本的源码以供不同的需要:

6.1免费版

包含了基本的封装式特征选择算法,代码源于一篇开源的文献,其通过PSO优化SVM的特征选择,可以帮助想要学习特征选择算法的同学。除代码外,考虑到UCI数据库多数数据都是.data格式,在Matlab中使用比较麻烦,KAU也将这些数据转换为.mat格式,更方便调用。

获取方式:公众号后台回复 FS1

6.2 付费版1

即包含了GWO、WOA、DBO、BWO优化的特征选择算法,代码是我重新写的,注释明了,运行逻辑更清晰,能够产生相应的评估指标excel文件,迭代对比曲线(Matlab代码)

获取方式:公众号后台回复 FS2

部分代码:
在这里插入图片描述

6.3 付费版2

除包含付费版1的内容外,还有KAU的原创优化算法优化的特征选择以及相应的函数测试,同样能够产生相应的评估指标excel文件,性能出色,可用于论文中。

获取方式:公众号后台回复 FS3

例如
在这里插入图片描述

封装式特征选择计算成本高,面对高维数据集,还可以考虑基于粗糙集的过滤式特征选择,该方法同样为NP-难问题,可以与优化算法结合,后面KAU也会介绍该方法。

参考文献

[1] 储安琪,丁志军.基于灰狼优化算法的信用评估样本均衡化与特征选择同步处理[J].计算机科学,2022,49(4):134-139.

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。​

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值