【改进粒子群】基于特征选择的二元粒子群优化算法(Matlab代码实现)

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

目录

1 概述

2 运行结果

3 参考文献

4 Matlab代码实现

1 概述

本文程序用于特征选择的二元粒子群优化(BPSO),可以选择潜在特征以提高分类精度。并讲解如何使用具有分类错误率(由 KNN 计算)的 BPSO 作为使用基准数据集的特征选择问题的适应度函数。

2 运行结果

【改进粒子群】基于特征选择的二元粒子群优化算法(Matlab代码实现)_第1张图片

部分代码:

function [sFeat,Sf,Nf,curve] = jBPSO(feat,label,N,max_Iter,c1,c2,HO)
Wmax = 0.9;
Wmin = 0.4; 
Vmax = 6;

fun = @jFitnessFunction; 
dim = size(feat,2); 
X   = zeros(N,dim);
V   = zeros(N,dim); 
for i = 1:N
  for d = 1:dim
    if rand() > 0.5
      X(i,d) = 1;
    end
  end
end
fit  = zeros(1,N); 
fitG = inf;
for i = 1:N
  fit(i) = fun(feat,label,X(i,:),HO);
  if fit(i) < fitG
    Xgb  = X(i,:);
    fitG = fit(i);
  end
end
Xpb  = X; 
fitP = fit; 

curve = inf; 
t = 1; 
%---Iterations start-------------------------------------------------
while t <= max_Iter
  w = Wmax - (Wmax - Wmin) * (t / max_Iter);
  for i = 1:N
    for d = 1:dim
      r1    = rand();
      r2    = rand();
      VB    = V(i,d) * w + c1 * r1 * (Xpb(i,d) - X(i,d)) + ...
              c2 * r2 * (Xgb(d) - X(i,d)); 
      VB(VB > Vmax) = Vmax;  VB(VB < -Vmax) = -Vmax; 
      V(i,d) = VB; 
      TF     = 1 / (1 + exp(-V(i,d)));
      if TF > rand()
        X(i,d) = 1;
      else
        X(i,d) = 0;
      end
    end
    fit(i) = fun(feat,label,X(i,:),HO);
    if fit(i) < fitP(i)
      Xpb(i,:) = X(i,:);
      fitP(i)  = fit(i);
    end
    if fitP(i) < fitG
      Xgb  = Xpb(i,:);
      fitG = fitP(i);
    end
  end
  curve(t) = fitG; 
  fprintf('\nIteration %d Best (BSPO)= %f',t,curve(t))
  t = t + 1;
end
Pos   = 1:dim;
Sf    = Pos(Xgb == 1);
Nf    = length(Sf);
sFeat = feat(:,Sf); 
end

3 参考文献

[1]Too, Jingwei, et al. “A New Co-Evolution Binary Particle Swarm Optimization with Multiple Inertia Weight Strategy for Feature Selection.” Informatics, vol. 6, no. 2, MDPI AG, May 2019, p. 21, doi:10.3390/informatics6020021.

[2]Too, Jingwei, et al. “EMG Feature Selection and Classification Using a Pbest-Guide Binary Particle Swarm Optimization.” Computation, vol. 7, no. 1, MDPI AG, Feb. 2019, p. 12, doi:10.3390/computation7010012.

4 Matlab代码实现

你可能感兴趣的:(#,单,多目标智能算法,算法,特征选择,粒子群,改进粒子群)