• 多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出


    多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出

    预测效果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    基本介绍

    MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出
    1.data为数据集,10个输入特征,3个输出变量。
    2.main.m为主程序文件。
    3.命令窗口输出MBE、MAE和R2,可在下载区获取数据和程序内容。

    程序设计

    • 完整程序和数据下载方式:私信博主回复MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %%  参数初始化
    c1      = 4.494;       % 学习因子
    c2      = 4.494;       % 学习因子
    maxgen  =   50;        % 种群更新次数  
    sizepop =    5;        % 种群规模
    Vmax    =  1.0;        % 最大速度
    Vmin    = -1.0;        % 最小速度
    popmax  =  1.0;        % 最大边界
    popmin  = -1.0;        % 最小边界
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    for i = 1 : sizepop
        pop(i, :) = rands(1, numsum);  % 初始化种群
        V(i, :) = rands(1, numsum);    % 初始化速度
        fitness(i) = fun(pop(i, :), hiddennum, net, p_train, t_train);
    end
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %%  个体极值和群体极值
    [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;
          
            
            % 适应度值
            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
    
     
    
        end
    
        BestFit = [BestFit, fitnesszbest];    
    end
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    往期精彩

    MATLAB实现RBF径向基神经网络多输入多输出预测
    MATLAB实现BP神经网络多输入多输出预测
    MATLAB实现DNN神经网络多输入多输出预测

    参考资料

    [1] https://blog.csdn.net/kjm13182345320/article/details/116377961
    [2] https://blog.csdn.net/kjm13182345320/article/details/127931217
    [3] https://blog.csdn.net/kjm13182345320/article/details/127894261

  • 相关阅读:
    记一次加锁导致ECS服务器CPU飙高的处理
    淘宝扭蛋机小程序:扭动未来,乐享购物新纪元
    Linux CentOS7设置时区
    代码随想录31——贪心:贪心算法理论基础、455分发饼干、376摆动序列
    Linux命令大全(超详细版)
    .NET Core Web APi类库如何内嵌运行?
    在Google Kubernetes集群创建分布式Jenkins(二)
    起飞前检查
    JMeter 扩展开发:自定义 Java Sampler
    vue provide inject使用
  • 原文地址:https://blog.csdn.net/kjm13182345320/article/details/132962689