Matlab|改进的粒子群算法优化支持向量机(回归拟合)

在这里插入图片描述

在这里插入图片描述
作者在前面的文章中介绍了粒子群算法的原理及其2种改进算法,本文将基于这三种优化方法,应用于支持向量机进行预测,并对比改进算法与标准粒子群算法的预测性能,结果显示改进后的方法能够得到更佳的预测效果。

00 文章目录

1 支持向量机
2 粒子群优化算法及其改进
3 支持向量机预测模型建立
4 代码目录
5 仿真
6 源码获取

01 支持向量机

支持向量机(Support Vector Machine, SVM)是由前苏联教授Vapnik最早提出的。支持向量机是一种新型机器学习算法,其基本思想把原有数据训练集映射到高维特征空间,借助损失函数和惩罚因子,从而达到精确度和计算复杂度相平衡,因此,可以将上述问题看作一个在高纬度的二次回归问题来进行求解,其函数表达式为:在这里插入图片描述

其中,ω 为超平面权重向量,b是SVM模型的参数,φ( x) 表示 x 的映射变换。根据文献得到回归支持向量机可以表示为:在这里插入图片描述

其中,ξ_i,ξ_i^*是松弛变量 C,是正实数松弛惩罚因子
非线性回归求解中,可以使用核函数 K(xi,xj)=φ(xi)·φ(xj)把所需要的训练集映射到高维空间,从而就可以将其 变化到线性问题的拟合,可得到一样的效果,非线性拟合函数为:在这里插入图片描述

则将问题转化为对偶求解:

其中,ni,ni*,ai,ai*为拉格朗日乘子,b为阈值。由于高斯径向基核函数拥有处理样本输入与输出之间复杂非线性关系的良好能力,而且参数选取少,计算效率高,因此采用效果更好的RBF为核函数。
惩罚系数 C 和RBF核系数 g 对SVM的性能有重要影响。其中,惩罚系数 C 是模型对误差的容忍度,数值越大,容忍度越差;数值越低,欠拟合越容易; 核系数g的选取对支持向量机的学习能力和预测精度有很大的影响。通常这些参数是通过人工设定,但常会导致拟合的数据出现较大偏差,因此用优化算法对参数进行寻优是必要的。
将SVM应用于拟合回归即为SVR(support vector regression)

02 粒子群优化算法及其改进

粒子群算法及其实现
自适应混沌粒子群算法及其实现
量子粒子群算法及其实现

03 支持向量机预测模型建立

本文使用作者提到的2种改进的粒子群算法来快速寻优到最佳惩罚参数和核函数参数,并与标准粒子群算法进行对比,以c和g的取值作为粒子群的位置参数,用上述的两种改进方法以及标准粒子群算法按照其流程进行迭代寻优。
预测完成后,为了验证所建模型的准确性和精度,分别采用均方根差(Root Mean Square Error,RMSE) 、平均绝对百分误差( Mean Absolute Percentage Error,MAPE) 和平均绝对值误差 ( Mean Absolute Error,MAE) 作为评价标准。在这里插入图片描述

式中 Yi 和Y ^ i分别为真实值和预测值; n 为样本数。

04 代码目录

三种算法文件如下:在这里插入图片描述

IPSO-SVR:
包含libsvm工具包,以及自适应混沌粒子群和标准粒子群算法。在这里插入图片描述

main_ipso.m部分源码如下:在这里插入图片描述

PSOSVR:
包含libsvm工具包,以及标准粒子群算法。在这里插入图片描述

main_pso.m部分源码如下:在这里插入图片描述

QPSO-SVR:
包含libsvm工具包,以及量子粒子群和标准粒子群算法。在这里插入图片描述

main_qpso.m部分源码如下:在这里插入图片描述

05 仿真

由于量子粒子群与自适应混沌粒子群的改进方向大相径庭,量子粒子群省去了粒子群大部分的控制参数,调参简单,而自适应混沌粒子群则将粒子群的控制参数进一步非线性化,因此对于不同的应用问题必然有其不同的优势,故不将这两个算法一起比较,而是分开比较。
这里展示量子粒子群

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以看出改进的算法应用于SVR进行预测是有一定提升的

在这里插入图片描述

06 源码获取

PSO-SVR:
在关注作者微信公众号: KAU的云实验台 
后台回复:             PSOSVR            即可(大写字母)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
IPSO-SVR:
https://mbd.pub/o/bread/ZJuTk5lp%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
QPSO-SVR:
https://mbd.pub/o/bread/mbd-ZJuTk5lq%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

如果这篇文章对你有帮助或启发,可以点击右下角的赞 (ง •̀_•́)ง(不点也行),若有定制需求,可私信作者。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jupyter中如何管理内核

1、jupyter notebook如何和已有的虚拟环境关联起来: 如果在电脑中某个conda的虚拟环境中已经安装了jupyter,其他虚拟环境想要作为内核在jupyter中使用,分为两个步骤: 第一步:在没有jupyter的环境中下载ipykernel&…

SPI机制

SPI机制是Service Provider Interface,是服务提供发现机制,用来启用框架扩展和替换组件。比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用户,而Java的S…

局部均方差滤波(磨皮)

note 锚点灰度值 用 原图像对应点的原灰度值 和 局部均值加权得到 局部均值 由 掩膜 区域计算得到 权重 由 局部方差 与用户输入参数计算确定 code // 局部均方差滤波 /*\brief 局部均方差滤波\param src:原矩阵,单通道\param res:结果矩阵\param size:掩膜矩形…

电动力学复习提纲

电动力学复习提纲 电动力学核心知识点 电磁场能量密度和能流 场和电荷的能量守恒电磁场的能量密度和能流密度 电偶极矩,磁偶极矩和电四极矩 电极化强度矢量与电偶极矩 磁化强度与磁偶极矩 电势的多级展开 磁矢势的多级展开 非相对论体系的电磁能 静电能 小区…

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 在线考试管理系统的设计与实现

一.项目介绍 学生在线考试系统分为三类角色 超管、老师、学生 超级管理员:维护考试管理、提供管理、成绩查询、学生管理以及教师管理 老师:维护考试管理、提供管理、成绩查询以及学生管理 学生:我的试卷…

解决:yarn 无法加载文件 “C:\Users\admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本“ 的问题

1、问题描述: 其一、报错的整体代码为: yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本 // 整体的报错代码为 : yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yar…

Bootloader Design of PIC18 series MCU

注意:下列描述是在PIC单片机上启用Bootloader的一个相关知识的近似完备集。所有需要了解的,bootloader与用户态程序交互的理论知识都已给出。 1.概述 嵌入式产品化后,需要考虑现场升级,单片机如果需要添加现场升级功能&#xff…

【数据结构】带你玩转排序:堆排序、希尔排序、插入排序、选择排序、冒泡排序、快排(多版本)、归并排序

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 常见算法的实现 插入排序 希尔排序 堆排序 选择排序 冒泡排序 快速排序 Hoare版本 随机选Keyi 三数取中 挖坑法 前后指针版本 归并排序 常见算法的实现 插入排序 动画演示&…

记一次自建靶场域渗透过程

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 环境搭建02 外网突破03 权限提升并维持(1)获取 meterpreter 会话(2)尝试开启远程桌面(3)Msf 派生 Cobalt Strike shell&#…

【C++】4.工具:读取yaml配置信息

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍读取yaml配置信息。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&…

CC1310 CC1310F128RSMR 超低功耗SUB-1GHz 无线 MCU芯片

1 器件概述 1 1 特性 • 微控制器 – 性能强大的 Arm Cortex -M3 处理器 – EEMBCCoreMark评分:142 – EEMBC ULPBench™评分:158 – 时钟速率最高可达 48MHz – 32KB、64KB 和 128KB 系统内可编程闪存 – 8KB 缓存静态随机存取存储器 (SRAM) &#xff…

CMake静态库动态库的构建和链接

cmake的基础知识&#xff1a;CMakeLists常用命令&#xff0c;在这里不再赘述。 Windows平台下可用cmake-gui生成vs的.sln工程&#xff0c;Linux平台下可以运行cmake命令。 动态库和静态库的构建 现有C工程目录结构如下&#xff1a; 静态库的构建 add.h #include <iost…