✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
由于不同的特征可能需要不同的成本,因此成本敏感的特征选择问题在实际应用中变得越来越重要。通常,它包括两个主要的相互冲突的目标,即最大化分类性能和最小化特征成本。然而,大多数现有方法将此任务视为单目标优化问题。为了满足决策者的各种需求,本文研究了一种多目标特征选择方法,称为双档案多目标人工蜂群算法(TMABC-FS)。两个新的运营商,即,针对受雇蜜蜂的收敛引导搜索和针对旁观者蜜蜂的多样性引导搜索,旨在获得一组具有良好分布和收敛性的非支配特征子集。并采用领导者档案和外部档案两个档案来增强对不同种类蜜蜂的搜索能力。所提出的 TMABC-FS 在 UCI 的几个数据集上进行了验证,并与两种传统算法和三种多目标方法进行了比较。结果表明,TMABC-FS 是解决成本敏感的特征选择问题的有效且稳健的优化方法。
⛄ 部分代码
function [newAC,gbest]=up_vac1(AC,oldAC,arch_size,popsize,M,k)
%------
x=[AC;oldAC];
ss=size(x,1);
for i=1:ss-1
for j=i+1:ss
if x(i,k+1:k+M)==x(j,k+1:k+M)
x(i,1:k)=inf;
break;
end
end
end
y=[];
for ii=1:size(x,1)
if x(ii,1)~=inf;
y=[y;x(ii,:)];
end
end
intermediate_chromosome=non_domination_sort_mod(y,M,k);
newAC1= replace_chromosome(intermediate_chromosome,arch_size,M,k);
newAC=newAC1(:,1:k+M);
crowd_value=newAC1(:,k+M+2);
rand_value=newAC1(:,k+M+1);
g_size=size(newAC,1);
for(i=1:popsize)
a1=ceil(g_size*rand);
a2=ceil(g_size*rand);
if(rand_value(a1)<rand_value(a2))
gbest(i,:)=newAC(a1,:);
elseif (rand_value(a1)==rand_value(a2))
if crowd_value(a1)>crowd_value(a2)
gbest(i,:)=newAC(a1,:);
else
gbest(i,:)=newAC(a2,:);
end
else
gbest(i,:)=newAC(a2,:);
end
end
⛄ 运行结果
⛄ 参考文献
[1] Zhang Y , Cheng S , Shi Y , et al. Cost-sensitive feature selection using two-archive multi-objective artificial bee colony algorithm[J]. Expert Systems with Applications, 2019, 137.