文章来源于我的个人公众号: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.
另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。
如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。