0
点赞
收藏
分享

微信扫一扫

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测


分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测


目录

  • 分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测
  • 预测效果
  • 基本介绍
  • 程序设计
  • 参考资料


预测效果

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测_MATLAB


分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测_GAPSO-LSSVM_02


分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测_多输入分类预测_03


分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测_LSSVM_04

基本介绍

1.分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测
2.代码说明:要求于Matlab 2021版及以上版本。

程序设计

%%  划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%%  个体极值和群体极值
[fitnesszbest, bestindex] = min(fitness);
zbest = pop(bestindex, :);     % 全局最佳
gbest = pop;                   % 个体最佳
fitnessgbest = fitness;        % 个体最佳适应度值
BestFit = fitnesszbest;        % 全局最佳适应度值

%%  迭代寻优
for i = 1 : maxgen
    for j = 1 : sizepop
        
        % 速度更新
        V(j, :) = V(j, :) + c1 * rand * (gbest(j, :) - pop(j, :)) + c2 * rand * (zbest - pop(j, :));
        V(j, (V(j, :) > Vmax)) = Vmax;
        V(j, (V(j, :) < Vmin)) = Vmin;
        
        % 种群更新
        pop(j, :) = pop(j, :) + 0.2 * V(j, :);
        pop(j, (pop(j, :) > popmax)) = popmax;
        pop(j, (pop(j, :) < popmin)) = popmin;
        
        % 自适应变异
        pos = unidrnd(numsum);
        if rand > 0.95
            pop(j, pos) = rands(1, 1);
        end
        
        % 适应度值
        fitness(j) = fun(pop(j, :), hiddennum, net, p_train, t_train);

    end
    
    for j = 1 : sizepop

        % 个体最优更新
        if fitness(j) < fitnessgbest(j)
            gbest(j, :) = pop(j, :);
            fitnessgbest(j) = fitness(j);
        end

        % 群体最优更新 
        if fitness(j) < fitnesszbest
            zbest = pop(j, :);
            fitnesszbest = fitness(j);
        end

    end

    BestFit = [BestFit, fitnesszbest];    
end


举报

相关推荐

0 条评论