• 基于灰狼算法优化的lssvm回归预测-附代码


    基于灰狼算法优化的lssvm回归预测 - 附代码


    摘要:为了提高最小二乘支持向量机(lssvm)的回归预测准确率,对lssvm中的惩罚参数和核惩罚参数利用灰狼算法进行优化。

    1.数据集

    数据信息如下:

    data.mat 的中包含input数据和output数据

    其中input数据维度为:2000*2

    其中output数据维度为2000*1

    所以RF模型的数据输入维度为2;输出维度为1。

    2.lssvm模型

    lssvm请自行参考相关机器学习书籍。

    3.基于灰狼算法优化的LSSVM

    灰狼算法的具体原理参考博客

    灰狼算法的优化参数为惩罚参数和核惩罚参数。适应度函数为RF对训练集和测试集的均方误差(MSE),均方误差MSE越低越好。
    f i n t e n e s s = M S E [ p r e d i c t ( t r a i n ) ] + M S E [ p r e d i c t ( t e s t ) ] finteness = MSE[predict(train)] + MSE[predict(test)] finteness=MSE[predict(train)]+MSE[predict(test)]

    4.测试结果

    数据划分信息如下: 训练集数量为1900组,测试集数量为100组

    灰狼参数设置如下:https://blog.csdn.net/u011835903/article/details/107716390

    %% 利用灰狼算法选择回归预测分析最佳的lssSVM参数c&g
    %%  灰狼参数设置
    % 定义优化参数的个数,在该场景中,优化参数的个数dim为2 。
    % 定义优化参数的上下限,如c的范围是[0.01, 1], g的范围是[2^-5, 2^5],那么参数的下限lb=[0.01, 2^-5];参数的上限ub=[1, 2^5]。
    %目标函数
    fobj = @(x) fun(x,Pn_train,Tn_train,Pn_test,Tn_test); 
    % 优化参数的个数 (c、g)
    dim = 2;
    % 优化参数的取值下限
    lb = [0.01,0.01];
    ub = [5,5];
    %  参数设置
    pop =20; %灰狼数量
    Max_iteration=5;%最大迭代次数             
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    请添加图片描述

    请添加图片描述

    请添加图片描述


    GWO-LSSVM优化得到的最优参数为:
    GWO-LSSVM优化得到的gama为:5
    GWO-LSSVM优化得到的sig2为:0.26371

    GWO-LSSVM结果:
    GWO-LSSVM训练集MSE:0.047222
    GWO-LSSVM测试集MSE:0.030908
    LSSVM结果:
    LSSVM训练集MSE:0.16256
    LSSVM测试集MSE:0.17925

    从MSE结果来看,经过改进后的灰狼-LSSVM明显优于未改进前的结果。

    5.Matlab代码

  • 相关阅读:
    【JavaWeb】Servlet属性设置
    面试 Java 并发编程八股文十问十答第四期
    【每日十分钟前端】基础篇20,HTTP与HTTPS、文字小于12px、执行上下文和执行栈
    jsp 技术
    Faiss原理和使用总结
    web概述11
    React hooks(一):useState
    .NET Core学习笔记
    数据迁移库工具-C版-01-HappySunshineV1.0-(支持Gbase8a)
    Arduino驱动ME007-ULS防水测距模组(超声波传感器)
  • 原文地址:https://blog.csdn.net/u011835903/article/details/128194464