基于灰狼优化算法的最小二乘支持向量机及其MATLAB实现

news2024/11/17 1:28:09

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

常用的预测方法有回归分析法、神经网络法、支持向量机(SVM, Support Vector Machine)等。回归分析法是建立影响因素与目标量之间的回归方程,建模过程简单,但预测精度较低。神经网络法适合分析大量非线性数据样本,挖掘其潜在规律,具有良好的非线性映射与泛化能力,但网络训练速度慢且易陷入局部极小值。支持向量机是基于结构风险最小化原则,可以避免易陷入局部最优解,适合解决小样本、高维度问题。其中,最小二乘支持向量机[1] (LSSVM,Least Squares Support Vector Machine) 是标准支持向量机的扩展,将 SVM 解决的凸二次规划问题转化为求解线性方程组,将非等式约束用等式约束 替代,可以降低运算复杂度。但LSSVM 中的正则化系数和核宽度系数的选择对其预测精度有较大的影响,目前依据人工经验确定其值,无法保证模型精度及稳定性。因此,需要寻求一种优化算法自适应来确定最优参数。

在众多的群智能优化算法中,GWO(GWO, Grey Wolf Optimization )算法有着结构简单、需要调节的参数少、容易实现等特点[2],在参数优化领域展现出卓越的性能。

综上,本文将运用灰狼算法对最小二乘支持向量机的参数进行优化,同时,为验证算法的有效性,引入网格搜索的LSSVM、遗传算法(,GA ,Genetic Algorithm)优化的最小二乘支持向量机以及BP神经网络,最后证明了最小二乘支持向量机在该问题上性能优于BP神经网络,且GWO-LSSVM也优于GA-LSSVM.

00目录

1 最小二乘支持向量机模型
2 灰狼优化算法
3 GWO-LSSVM预测模型
4 代码目录
5 仿真
6 源码获取

01 最小二乘支持向量机模型

基于SVM的思想,Suykens等人提出了最小二乘支持向量机。将SVM中复杂的二次规划问题转变为求解线性方程,因此LSSVM相较于SVM极大提升了计算效率。其具体原理和数学推导如下。

假设样本数据集为:在这里插入图片描述

LSSVM 的关键是将训练和样本通过非线性映射反映到高维特征空间,在高维空间中进行线 性回归,回归函数描述如下:在这里插入图片描述

式中,w为权重向量;φ(x)为投影函数;b为阈值。将回归等式转化为最小化代价函数约束的优化问题:在这里插入图片描述

式中,γ为正则化参数,作用为平衡模型的复杂性和精度;ek为输入向量的训练误差。与SVM不同的是,LSSVM使用等式约束而非不等式约束。基于上述等式,为寻找目标函数最小值,对上式引入拉格朗日乘子,即:
在这里插入图片描述

根据KKT条件,对其求解可得:在这里插入图片描述

消去w和ek,得到模型预测函数:在这里插入图片描述

式中:K(…)为核函数,表示低维空间到高维空间的映射关系。本文采用径向基核函数:在这里插入图片描述

其中,σ 表示核函数宽度。

在 LSSVM 模型中,惩罚因子 g 控制模型对 误差的惩罚程度,直接影响模型的泛化能力,s 反映训练参数的分布。这两个参数的取值直接影响了预测效果。因此,建立 LSSVM 模型时有必要选择智能算法对这两个参数进行优化。

02 灰狼优化算法

LSSVM的2个参数主要是依靠经验自行设定,难以使模型获得较佳的性能,虽然后续也发展了网格搜索法寻优,但没有摆脱传统算法的弊端,需要遍历所有组合,计算量庞大、耗费时间长且精准度不高,于是逐渐衍生出使用群智能优化算法全局优化参数的方法。

灰狼优化算法是2014年由澳大利亚学者Mirjalili等提出的一种群智能优化算法。GWO算法模拟自然界中灰狼种群等级机制和捕猎行为。通过4种类型的灰狼(𝛼,𝛽,𝛿,𝜔)来模拟社会等级。通过狼群跟踪﹑包围、追捕、攻击猎物等过程来模拟狼的捕猎行为,实现优化搜索目的。GWO算法具有原理简单、并行性﹑易于实现,需调整的参数少且不需要问题的梯度信息,有较强的全局搜索能力等特点。

在函数优化方面, Mirjalili等通过对29个基准函数的测试表明,GWO算法在求解精度和收敛性方面明显优于粒子群优化(PSO)、重力搜索算法(GSA),差分进化(DE),进化规划(EP)和进化策略(ES)的结果。

在GWO算法中, 首先是在搜索空间中随机产生灰狼族群,为构建灰狼的社会等级制度模型,将种群中适应度值最优的解、次优的解和第三优的解分别看作α狼、β狼和𝛿狼,而剩余的解被视为𝜔狼。然后由α狼、β狼和𝛿狼来负责引导, 𝜔狼则跟随着α狼、β狼和𝛿狼,通过搜寻猎物﹑包围猎物和攻击猎物来完成狩猎优化,最终获取最优解。

2.1 社会等级

设计GWO算法时,狼群中每一个灰狼代表了种群的一个潜在解,为了描述灰狼的社会等级﹐将α狼的位置视为最优解﹔将β和𝛿狼的位置分别作为优解和次优解; 𝜔狼的位置作为其余的候选解。在GWO算法中,由a , β和𝛿引导搜索(优化),而𝜔狼跟随前面3种狼。

2.2 包围猎物

捕猎过程中,灰狼群体会先包围猎物,该行为的数学模型可以表示为:

在这里插入图片描述

其中,𝑡代表当前迭代的次数,𝑋𝑝 (𝑡)为第𝑡次迭代中猎物的位置向量,𝑋 (𝑡)为第𝑡次迭代中灰狼的位置向量。𝐴和𝐶为协同向量,计算方式为

在这里插入图片描述

其中𝑎中的分量在迭代过程中从2到0线性递减,𝑟⃑1 和𝑟⃑2 为[0,1]中的随机向量

2.3 狩猎

灰狼有能力识别猎物的位置并包围它们。狩猎通常由α狼引导, β和𝛿也可能偶尔参与狩猎。然而,在一个抽象搜索空间中,灰狼并不知道最优解(猎物)的精确位置。为了模拟灰狼的狩猎行为,假设α(最优候选解)、β和𝛿拥有更多关于猎物潜在位置的知识。因此,在每次迭代过程中,保存迄今为止获得的3个最优解,迫使其他狼(包括𝜔)根据最优搜索的位置采用以下公式更新它们的位置:在这里插入图片描述

其中𝑋𝛼 ⃑,𝑋𝛽 ⃑,𝑋𝛿 ⃑ 代表当前迭代中𝛼,𝛽,𝛿的位置向量,𝑋 (𝑡)为第𝑡次迭代中个体的位 置向量,𝐶1 ⃑ ,𝐶2 ⃑ ,𝐶3 ⃑ 为随机向量,𝐷𝛼 ⃑,𝐷𝛽 ⃑, 𝐷𝛿 ⃑代表群体中其他个体与𝛼,𝛽,𝛿之间的距离,𝑋 (𝑡 + 1)为个体更新后的位置向量。

下图给出𝜔狼或其他狼(候选狼)如何根据二维搜索空间中的𝛼,𝛽,𝛿狼来更新其位置。从中可以看出,最终位置将在搜索空间中由𝛼,𝛽,𝛿狼的位置定义的圆内的随机位置。换句话说, 𝛼,𝛽,𝛿狼估计猎物的位置,其他狼围绕猎物随机更新它们的位置。

在这里插入图片描述

图源于智能优化计算与涌现计算

2.4 攻击猎物

灰狼在猎物停止移动时通过攻击猎物来完成捕猎。攻击猎物确定猎物位置,即得到最优解, 这一过程主要通过迭代过程中收敛因子𝑎 从 2 到 0 的递减来实现,于是群体在迭代结束 后,获取最优解。
在这里插入图片描述

在 GWO 算法中,通过 a 值逐渐线性减少,使得 A的波动范围也随之线性减少,从而模拟狼群逼近猎物的行为。C 是[0,2]之间随机值,C表示狼所在位置对猎物影响的随机权重,由于C值是一个随机值,用于防止算法寻优时无法摆脱局部最优,对搜寻全局最优解发挥了非常重要的作用,增强了算法的全局搜索能力、鲁棒性与收敛性。

2.5 优化过程

GWO 算法优化流程为首先创建一个灰狼种群, 然后在迭代过程中将最优的三个解定义为 α、β 和 δ,而后其他个体根据 α、β 和 δ 的位置判断猎物所在位置,从而更新自己的位置。GWO 算法的流程如图所示
在这里插入图片描述

3 GWO-LSSVM预测模型

传统 LSSVM 模型中的正则化系数和核宽度系数 均是根据经验得到的,容易造成模型稳定性差,预测 效果不理想。灰狼算法具有全局搜索能力,可以实现自动对 LSSVM 中参数优化选取,有效避免人工选择的盲目性。LSSVM模型需要优化的参数有核函数宽度σ、惩罚因子g,将训练集的RMSE作为适应度函数来优化LSSVM的参数,RMSE的计算方式如下:

在这里插入图片描述

其中,𝑓𝑖表示第𝑖个样本的预测值,𝑦𝑖表示第𝑖个样本的真实值,𝑗表示样本个数。

GWO-LSSVM模型的算法流程图如下所示

在这里插入图片描述

04 代码目录

在这里插入图片描述

05 仿真

仿真采用的数据是6输入,1输出,样本数量55,取40个作为训练集,15个作为测试集,除GWO-LSSVM外,引入网格搜索的LSSVM、GA-LSSVM、BP神经网络进行对比,结果如下:

在这里插入图片描述

在这里插入图片描述

首先,在该数据集上, LSSVM较之BP神经网络误差更小,拟合程度更好,因此LSSVM具有一定优越性,同时,对比LSSVM,GA-LSSVM与GWO-LSSVM,可以看到GWO-LSSVM数据最佳,也证明了该优化算法的优良效果。

06 源码获取

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
https://mbd.pub/o/bread/ZJqbk5pu
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

参考文献

[1]Suykens J, Lukas L, Van P, et al. Least squares support vector machine classifiers: a large scale algorithm[J], 2000.

[2]张晓凤, 王秀英. 灰狼优化算法研究综述[J]. 计算机科学, 2019, 46(03): 30-8.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/707505.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

流量玩家必看,微信问一问轻松获取200+引流秘籍

最近,微信推出了全新的“问一问”功能,为流量玩家带来了巨大的流量红利。这一新的流量入口势必成为流量玩家们追逐的热门目标。 “问一问”可以被视为一个问答型平台,可以简单理解为“微信版的知乎”。熟悉在知乎上进行问答引流的人都知道&am…

VVIC搜款网API接口:获取商品详情数据API

VVIC电商平台汇集了数千家优质品牌和供应商,包括服装、家居用品、电子产品、美妆产品、食品和饮料等各种商品。消费者可以在VVIC上找到各类品牌和产品,满足他们的购物需求。VVIC还提供了多种付款方式和物流配送服务,确保消费者的购物过程顺利…

BI-SQL丨WITH NOLOCK

WITH(NOLOCK) 企业在搭建数仓的时候,对于数仓的负载性能和运行速度都是纳入考量标准的。特别是并发性较高的情况下,如何规避因用户使用量较多而导致死锁卡死的问题呢?其实,这些可以通过WITH(NOLOCK)来解决。 WITH(NOLOCK)顾名思…

Mysql进阶(三)之索引篇

文章目录 前言索引介绍1.什么是索引?2.优缺点3.什么时候需要 / 不需要索引?4.语法 索引底层结构1.Hash表2.BTree 索引分类1.按字段特性2.按物理存储3.按字段个数 索引优化1.SQL性能分析2.索引失效3.常见索引优化方法 前言 以面试题驱动索引的学习&#…

go-zero的配置及gorm、自定义返回等的引入以及扩展

工程维度(摘自官网) . ├── consumer ├── go.mod ├── internal │ └── model ├── job ├── pkg ├── restful ├── script └── service consumer: 队列消费服务internal: 工程内部可访问的公共模块job&a…

MMYOLO框架标注、训练、测试全流程(补充篇)

前言 MMYOLO框架是一个基于PyTorch和MMDetection的YOLO系列算法开源工具箱。MMYOLO定位为YOLO系列热门开源库以及工业应用核心库,MMYOLO框架Github项目地址支持的任务:目标检测、旋转目标检测支持的算法:YOLOv5、YOLOX、RTMDet、RTMDet-Rota…

使用 okhttp3库发送 get、post(json参数传递,form表单提交) java代码实现

OkHttp是一个开源的HTTP客户端,由Square公司开发。OkHttp3是OkHttp库的最新版本。它提供了一个简单而强大的API来处理网络通信。以下是OkHttp3库的一些主要特点: 与Android平台完全兼容:OkHttp3可以与标准的Java库一起使用,也可以…

【前端】导航栏html(ul+li)/css/js(jq)

引入jq <script src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> css代码 <style>ul {list-style: none;margin: 0;padding: 0;}li {cursor: pointer;}.color-white {color: #FFFFFF !important;background-color: rgb…

git 报错 fatal: Authentication failed的解决

git提交代码的时候&#xff0c;报错 remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for informa…

三个好基友Cookie、Session和Token

原创声明&#xff0c;转载请注明文章链接来源、作者信息 >三个好基友Cookie、Session和Token hello&#xff0c;我是索奇~ 精心写了一篇Cookie、Session和Token的 vivid 文章&#xff0c;并分享给大家 我们可以把Cookie、Token和Session看作是三个好基友&#xff0c;它们…

Linux中创建sftp用户并限制目录权限

注意两点&#xff1a; 一是禁止该用户通过ssh登录&#xff0c;二是不需要创建家目录。家目录简单来说&#xff0c;就是在/home下的用户命令&#xff0c;默认每个用户在/home中都是有与用户名一样的文件夹。 1.创建组 groupadd sftp 2. 创建用户 useradd -g sftp -s /sbin/…

Vue3 JSX 插槽、v-model 的用法以及 React JSX 的区别

前言 写这篇文章的初衷是&#xff0c;Vue3 JSX 部分与 React JSX 容易混淆&#xff0c;比如如本文所说的 slot & v-model&#xff0c; 如果你是第一次接触 JSX&#xff0c;可先阅读前面写过的 React & JSX 日常用法与基本原则 来对 JSX 有一个整体的认知以及比较两者间…

如何了解(海外抖音TiKToK)与国内抖音的区别以及介绍

一、海外抖音TK平台的优势 自从抖音在中国大受欢迎后&#xff0c;海外也推出了海外版抖音TK平台。尽管两者都是视频分享平台&#xff0c;但它们在一些方面具有明显的区别和独特的优势。下面将详细介绍海外抖音TK平台的优势以及与国内抖音的区别性。 优势&#xff1a; 1. 多元…

9-2 小波滤波器、去噪、增强、变换(matlab程序)

1.简述 小波去噪滤波算法是一种基于小波变换的滤波方法&#xff0c;它通过对信号进行小波变换来分解信号的频率分量&#xff0c;并根据信号的特点选择合适的阈值处理方法来去除噪声。该算法的主要思想是将信号分解成多个频率分量&#xff0c;根据信号的特点选择合适的阈值处理…

【IMX6ULL驱动开发学习】13.Pinctrl子系统与GPIO子系统

上一篇博客中&#xff0c;已经实现了设备树的添加 【IMX6ULL驱动开发学习】12.Linux驱动之设备树 这篇博客介绍Pinctrl子系统与GPIO子系统的使用 Pinctrl子系统参考文档&#xff1a; 内核文档链接&#xff1a;https://www.kernel.org/doc/Documentation/ 内核源码doc&#xff…

AD23 原理图选中元件在PCB中高亮显示

概述 项目需要&#xff0c;再次使用AD&#xff0c;在此做个笔录。 1、原理图界面 2、在原理图界面选中电容后&#xff0c;对应的PCB界面该电容高亮显示 3、总结 希望能帮助到有需要的攻城狮。

Linux查看日志常用操作整理

项目出现异常&#xff0c;要定位问题&#xff0c;查看日志是最常用的方法&#xff0c;在Linux系统查看一些日志文件&#xff0c;我们一般会使用tail、cat等命令&#xff0c;下面总结归纳一下这些常用的命令。 1、查看日志的方法 tail&#xff1a;tail命令应该是使用最多的&am…

探讨绿色照明与智能照明节能控制系统应用

张心志 安科瑞电气股份有限公司 上海嘉定 201801 【摘 要】随着社会经济的不断发展&#xff0c;人们对生活质量、环境品质越发重视。积极推广绿色智能照明&#xff0c;提高城市照明质量&#xff0c;对于改善人们居住环境意义重大。文章简要介绍了绿色照 明的基本要求、室内智…

互联网编程之简单邮箱发送程序

需求是使用Java写一个简单的邮箱发送程序。 注意需要到QQ邮箱的设置-账户中开启服务。 package org.example;import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail;public class Main {public …

ospf-interface-fsm-and-neighbor-fsm

/* Interface State Machine */ struct {int (*func) (struct ospf_interface *);int next_state; } ISM [OSPF_ISM_STATE_MAX][OSPF_ISM_EVEN