分类预测 | Matlab实现SSA-ELM麻雀优化算法优化极限学习机分类预测

分类预测 | Matlab实现SSA-ELM麻雀优化算法优化极限学习机分类预测

目录

分类效果




基本描述

1.MATLAB实现SSA-ELM麻雀优化算法优化极限学习机分类预测(Matlab完整源码和数据)

2.优化参数为权值和阈值;

3.直接替换数据即可使用,保证程序可正常运行。

4.程序语言为matlab,程序可出分类效果图,迭代优化图,混淆矩阵图。

运行环境matlab2018b及以上。

5.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

程序设计

clike 复制代码
%%  优化算法
for i = 1: Max_iter

   BestF = fitness(1);
   R2 = rand(1);

   for j = 1 : PDNumber
      if(R2 < ST)
          X_new(j, :) = pop_new(j, :) .* exp(-j / (rand(1) * Max_iter));
      else
          X_new(j, :) = pop_new(j, :) + randn() * ones(1, dim);
      end     
   end
   
   for j = PDNumber + 1 : pop
        if(j > (pop - PDNumber) / 2 + PDNumber)
          X_new(j, :) = randn() .* exp((pop_new(end, :) - pop_new(j, :)) / j^2);
        else
          A = ones(1, dim);
          for a = 1 : dim
              if(rand() > 0.5)
                A(a) = -1;
              end
          end
          AA = A' / (A * A');     
          X_new(j, :) = pop_new(1, :) + abs(pop_new(j, :) - pop_new(1, :)) .* AA';
       end
   end
   
   Temp = randperm(pop);
   SDchooseIndex = Temp(1 : SDNumber); 
   
   for j = 1 : SDNumber
       if(fitness(SDchooseIndex(j)) > BestF)
           X_new(SDchooseIndex(j), :) = pop_new(1, :) + randn() .* abs(pop_new(SDchooseIndex(j), :) - pop_new(1, :));
       elseif(fitness(SDchooseIndex(j)) == BestF)
           K = 2 * rand() -1;
           X_new(SDchooseIndex(j), :) = pop_new(SDchooseIndex(j), :) + K .* (abs(pop_new(SDchooseIndex(j), :) - ...
               pop_new(end, :)) ./ (fitness(SDchooseIndex(j)) - fitness(end) + 10^-8));
       end
   end

%%  边界控制
   for j = 1 : pop
       for a = 1 : dim
           if(X_new(j, a) > ub(a))
              X_new(j, a) = ub(a);
           end
           if(X_new(j, a) < lb(a))
              X_new(j, a) = lb(a);
           end
       end
   end 

%%  获取适应度值
   for j = 1 : pop
    fitness_new(j) = fobj(X_new(j, :));
   end
   
%%  获取最优种群
   for j = 1 : pop
       if(fitness_new(j) < GBestF)
          GBestF = fitness_new(j);
          GBestX = X_new(j, :);
       end
   end
   
%%  更新种群和适应度值
   pop_new = X_new;
   fitness = fitness_new;

%%  更新种群 
   [fitness, index] = sort(fitness);
   for j = 1 : pop
      pop_new(j, :) = pop_new(index(j), :);
   end

%%  得到优化曲线
   curve(i) = GBestF;
   avcurve(i) = sum(curve) / length(curve);
end

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502

[2] https://blog.csdn.net/kjm13182345320/article/details/128690229

相关推荐
电力程序小学童7 个月前
【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型
matlab·麻雀优化算法·预测·长短期记忆·正余弦
机器学习之心8 个月前
分类预测 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络数据分类预测
分类预测·ooa-bp·鱼鹰算法优化bp神经网络
机器学习之心9 个月前
分类预测 | Matlab实现ABC-LSSVM人工蜂群算法优化最小二乘支持向量机数据分类预测
分类预测·最小二乘支持向量机·人工蜂群算法优化·abc-lssvm
机器学习之心9 个月前
分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测
分类预测·灰狼算法优化·gwo-rbf·径向基神经网络
机器学习之心10 个月前
分类预测 | Matlab实现KPCA-ISSA-LSSVM基于核主成分分析和改进的麻雀搜索算法优化最小二乘支持向量机故障诊断分类预测
分类预测·最小二乘支持向量机·kpca-issa-lssvm·核主成分分析·改进的麻雀搜索算法优化
随风飘摇的土木狗1 年前
【MATLAB第96期】基于MATLAB的SVM(线性)、SVM(高斯)、决策树、KNN等机器学习算法回归及分类Boost集成学习模型(含不同模型权重)
机器学习·matlab·分类预测·集成学习·回归预测·boost·融合
随风飘摇的土木狗1 年前
【MATLAB第88期】基于MATLAB的6种神经网络(ANN、FFNN、CFNN、RNN、GRNN、PNN)多分类预测模型对比含交叉验证
rnn·神经网络·分类预测·grnn·ffnn·cfnn·pnn
随风飘摇的土木狗1 年前
【MATLAB第87期】#源码分享 | 基于MATLAB的增量神经系统网络SFAM多输入单输出多分类预测模型
matlab·分类预测·多输入单输出·多分类·多标签·sfam·fam
随风飘摇的土木狗1 年前
【MATLAB第86期】基于matlab的Catboost多输入单输出分类预测模型 catboost-1.1.1版本
matlab·分类预测·多分类·多标签·catboost
机器学习之心1 年前
分类预测 | Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测
分类预测·cnn-svm·鱼鹰算法优化·ooa-cnn-svm·卷积支持向量机