【LSSVM回归预测】基于自适应粒子群优化最小支持向量机优化实现数据回归预测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

​本文涉及一种基于自适应粒子群的最小二乘支持向量机预测方法,该方法根据群体的收敛程度和个体的适应值来调整惯性权重,加快训练速度,利用该算法迭代求解LSSVM中出现的矩阵方程,避免矩阵求逆,节省内存,并求得最优解.该方法可以有效简化训练样本,提高训练速度,且分类精度良好,收敛速度快,有很好的泛化能力.解决了预测时特征维数较高,特征之间存在冗余且样本有限的问题.

⛄ 部分代码

%% 粒子群算法

function [Best_pos,Best_score,curve]=PSO(pop,Max_iter,lb,ub,dim,fobj,Vmax,Vmin)

%% 参数设置

w = 0.9;      % 惯性因子

c1 = 2;       % 加速常数

c2 = 2;       % 加速常数

Dim = dim;            % 维数

sizepop = pop;       % 粒子群规模

maxiter  = Max_iter;      % 最大迭代次数

if(max(size(ub)) == 1)

   ub = ub.*ones(1,dim);

   lb = lb.*ones(1,dim);  

end

fun = fobj; %适应度函数

%% 粒子群初始化

Range = ones(sizepop,1)*(ub-lb);

pop = rand(sizepop,Dim).*Range + ones(sizepop,1)*lb;    % 初始化粒子群

V = rand(sizepop,Dim)*(Vmax-Vmin) + Vmin;                 % 初始化速度

fitness = zeros(sizepop,1);

for i=1:sizepop

    fitness(i,:) = fun(pop(i,:));                         % 粒子群的适应值

end

%% 个体极值和群体极值

[bestf, bestindex]=min(fitness);

zbest=pop(bestindex,:);   % 全局最佳

gbest=pop;                % 个体最佳

fitnessgbest=fitness;              % 个体最佳适应值

fitnesszbest=bestf;               % 全局最佳适应值

%% 迭代寻优

iter = 0;

while( (iter < maxiter ))

    for j=1:sizepop

        % 速度更新

        V(j,:) = w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));

        if V(j,:)>Vmax

            V(j,:)=Vmax;

        end

        if V(j,:)<Vmin

            V(j,:)=Vmin;

        end

        % 位置更新

        pop(j,:)=pop(j,:)+V(j,:);

        for k=1:Dim

            if pop(j,k)>ub(k)

                pop(j,k)=ub(k);

            end

            if pop(j,k)<lb(k)

                pop(j,k)=lb(k);

            end

        end

        % 适应值

        fitness(j,:) =fun(pop(j,:));

        % 个体最优更新

        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

    iter = iter+1;                      % 迭代次数更新

    curve(iter) = fitnesszbest;

end

%% 绘图

Best_pos = zbest;

Best_score = fitnesszbest;

end

⛄ 运行结果

⛄ 参考文献

[1] 熊南, 刘百芬. 基于自适应粒子群优化LSSVM的网络流量在线预测[J]. 计算机应用与软件, 2013, 30(9):5.

[2] 杨柳, 孙金华, 冯仲科,等. 基于PSO-LSSVM的森林地上生物量估测模型[J]. 农业机械学报, 2016, 47(8):273-279.

[3] LI Hai-gang, 李海港, ZHANG Qian,等. 基于自适应粒子群-最小二乘支持向量机的煤自燃预测[C]// 第27届中国过程控制会议(CPCC2016). 2016.

[4] 李海港, 张倩, 王德明,等. 基于自适应粒子群的最小二乘支持向量机预测方法:.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值