【特征选择】基于二元多邻域人工蜂群 (BMNABC) 解决特征选择问题附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

基于人工蜂群算法的数据特征选择方法,包括以下步骤:确定人工蜂群算法的控制参数,将获得的数据集进行预约归一化处理;初始化产生一组采蜜蜂位置,依据选择的特征选择适应度函数计算每一个采蜜蜂的适应度值,并将其对应的开采次数置为零;基于人工蜂群算法的更新方式,更新采蜜蜂位置,计算新个体的适应度值并更新其开采次数;计算选择概率模型函数,并选择一个采蜜蜂作为观察蜂,更新观察蜂位置,计算新个体的适应度值并更新其开采次数;观察开采次数,实施采蜜蜂位置更新机制;保留目前为止最优解位置,即代表最优特征子集;若达到最大迭代次数,则输出最优特征子集;否则重复以上步骤。

特征选择(特征子集选择)问题是各个领域重要的预处理阶段之一。在真实的数据集中,存在许多无用的无关、误导和冗余的特征。可以通过特征选择技术提取主要特征。特征选择属于NP-hard问题;因此,元启发式算法可用于解决该问题。引入了一种称为二进制多邻域人工蜂群(BMNABC)的新二进制 ABC,以增强 ABC 阶段的探索和开发能力。BMNABC 在第一阶段和第二阶段应用具有新概率函数的近邻和远邻信息。第三阶段比标准 ABC 更有意识地搜索那些在前几个阶段没有改进的解决方案。

⛄ 部分代码

global A trn vald SzW

SzW=0.01;

x=x>0.5;

x=cat(2,x,zeros(size(x,1),1));

x=logical(x);

if sum(x)==0

    FitnessValue=inf;

    return;

end

c = fitcknn(A(trn,x),A(trn,end),'NumNeighbors',5);  %K=5

cpp = predict(c,A(vald,x));

cp = classperf(A(vald,end),cpp);

FitnessValue=(1-SzW)*(1-cp.CorrectRate)+SzW*sum(x)/(length(x)-1);

⛄ 运行结果

⛄ 参考文献

[1]巢秀琴, 李炜. 人工蜂群算法优化的特征选择方法[J]. 计算机科学与探索, 2019.

[2]葛宇, 梁静, 王学平,等. 改进人工蜂群算法求解多目标连续优化问题[J]. 计算机科学, 2014, 41(6):7.

Z. Beheshti,BMNABC:用于高维离散优化问题的二进制多邻域人工蜂群,Cybern。系统。49 (2018) 452–474。

⛄ 完整代码

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值