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

news2024/11/25 12:46:21

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

文章目录

  • 基于鸽群算法优化的lssvm回归预测 - 附代码
    • 1.数据集
    • 2.lssvm模型
    • 3.基于鸽群算法优化的LSSVM
    • 4.测试结果
    • 5.Matlab代码

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

1.数据集

数据信息如下:

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

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

其中output数据维度为2000*1

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

2.lssvm模型

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

3.基于鸽群算法优化的LSSVM

鸽群算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/109774886

鸽群算法的优化参数为惩罚参数和核惩罚参数。适应度函数为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组

鸽群参数设置如下:

%% 利用鸽群算法选择回归预测分析最佳的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;%最大迭代次数             

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

PIO-LSSVM优化得到的最优参数为:
PIO-LSSVM优化得到的gama为:4.9524
PIO-LSSVM优化得到的sig2为:0.17481

PIO-LSSVM结果:
PIO-LSSVM训练集MSE:0.047814
PIO-LSSVM测试集MSE:0.020166
LSSVM结果:
LSSVM训练集MSE:0.16465
LSSVM测试集MSE:0.13127

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

5.Matlab代码

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

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

相关文章

你的项目需要自动化测试吗?看看这篇文章再说吧

什么是自动化测试? 通过代码的方式,实现测试用例的自动运行,评估运行结果,并对测试结果及异常情况进行记录。 为什么进行自动化测试? 纯手工测试会有好多重复性的操作,浪费时间,而且频繁的回…

央企招聘:中国大唐集团2023年度公开招聘公告

中国大唐集团科学技术研究总院有限公司(以下简称科研总院)是世界500强企业——中国大唐集团有限公司(以下简称集团公司)的全资子公司,是集团公司的科技创新中心、战略参谋本部、成果孵化中心、技术服务保障基地和科技人…

Qt+VS+VTK综合开发环境配置

说明 本文旨在介绍一种个人常用的开发环境,主要解决在VS中开发Qt项目的部分问题,以及解决使用基于Qt的VTK库开发时可能遇到的部分问题,并通过合理的配置提升新项目搭建时间 该教程使用版本为VS2017,Qt5.14.2以及VTK8.2&#xff…

git_No.1_版本管控的全流程

文章目录1.获取Git仓库1.1 已存在目录中初始化仓库1.2 克隆一个仓库2. 将变更提交到仓库2.1 查看当前文件状态2.2 跟踪新文件2.3 暂存已修改的文件2.4 忽略文件2.5 查看已暂存和未暂存的修改2.6 提交更新2.7 跳过使用暂存区2.8 移除文件3. 查看提交历史4.远程仓库4.1 查看远程仓…

HTTP介绍

目录 1.什么是HTTP? 2.HTTP的特点 3.HTTP的优点和缺点 4.HTTP请求数据格式 5.HTTP响应数据格式 6.GET请求和POST请求的区别 7.状态码分类说明 8.查看发送的请求数据包方式 1.什么是HTTP? Hyper Text Transfer Protocol,超文本传输协议&#xff…

[036]基于Vue+Nodejs的网上作业批改系统(含源码、数据库、万字课设报告)

文章目录一、项目介绍二、源码获取一、项目介绍 网络作业提交与批改系统:超强的作业批改项目,技术栈是VueNodeMysql,最重要的是有超详细的万字报告,一劳永逸,可冲~ 主要功能介绍: 1.管理员功能模块 管理员…

分享几个宝藏微信小程序

1.有数鸟:了解会员在各平台的消费明细 平时我们看视频听音乐,我们用的很多vip,你还记得你注册了哪些应用吗?有了这个小程序,就可以帮你记录每个平台的付款详情,以及总支出。 当我们添加会员项目时&#xff…

基于java+springboot+mybatis+vue+mysql的乒乓球预约管理系统

项目介绍 随着信息化时代的到来,管理系统都趋向于智能化、系统化,乒乓球馆预约管理系统 也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变…

基于C+++FLTK实现(WinForm)超市收银系统【100010032】

超市收银系统 Supermarket POS system 本次大作业是利用 C语言,基于 FLTK 图形库来设计超市收银系统。首先介绍程序的设计思想: 这套程序完全是基于题目所给的要求逐条逐步设计的。我把程序实现大致分为数据层面和图形层面。 数据层面: 程…

抖音视频怎么拼接?分享一款功能强大的软件

抖音视频怎么拼接?利用软件就很方便,所以抖音视频拼接可以通过操作简单的视频软件来辅助比较简单。就比如万兴喵影,就是一款操作简单、功能齐全的视频编辑器,很适合新手小白和半专业人士。 用万兴喵影做视频拼接,只需要…

扩散模型类似的方式训练text_to_text可不可以

🍿*★,*:.☆欢迎您/$:*.★* 🍿 正文 # 使用 64*64 图 写入 16号字体 16个字 # 每组数据 的 文字 是连续的 # 三张图组成一个训练 # 至少48 个字符训练一次 # 选择好自己的文本数据集

Springboot整合Netty,自定义协议实现

Springboot整合Netty&#xff0c;自定义协议实现 Springboot整合Netty 新建springboot项目&#xff0c;并在项目以来中导入netty包&#xff0c;用fastjson包处理jsonStr。 <!-- netty --><dependency><groupId>io.netty</groupId><artifactId>…

Unity物理系统-物理材质-Collider碰撞体的弹力不够大如何处理

物理材质Physic Material&#xff1b; 当碰撞器发生碰撞的时候&#xff0c;具有该材质的游戏物体就会具有该材质的属性&#xff1b; Step1&#xff1a;在Project窗口下新建Physic Material&#xff08;命名为mat&#xff09;&#xff0c;并更改其弹力参数为1 Step2&#xff1a…

408 考研《操作系统》第二章第七节:死锁和死锁的三种处理策略(预防死锁、避免死锁、检测和解除)

文章目录1.死锁1.1 什么是死锁&#xff1f;1.2 死锁、饥饿、死循环的区别1.3 死锁产生的必要条件1.4 什么时候会发生死锁&#xff1f;1.6 总结2. 死锁的处理策略——预防死锁2.1 破坏互斥条件2.2 破坏不剥夺条件2.3 破坏请求和保持条件2.4 破坏循环等待条件2.5 总结3. 死锁的处…

chatgpt+mirai实现QQ机器人

chatGPTbot 配合mirai机器使用 安装 Java &#xff08;版本必须 > 11&#xff09; 下载Mirai 控制台 https://github.com/iTXTech/mirai-console-loader/releases 手动安装插件mirai-api-http 1.双击mcl.cmd 或./mcl 运行 Mirai Console 生成 plugins 文件夹 2.从 ht…

Android基于开源项目搭建自己的技术堆栈

一、app的整体架构 从较高的层次讲&#xff0c;一个APP的整体架构可以分为两层&#xff0c;即应用层和基础框架层。 1、应用层专注于行业领域的实现&#xff0c;如金融、支付、地图、社交等&#xff0c;它直接面向用户&#xff0c;是用户对产品的第一层感知。 2、基础框架层…

从安装过程品国产Linux操作系统的技术来源与异同之处

作者&#xff1a;IT圈黎俊杰 使用Linux操作系统的第一步无疑是安装&#xff0c;本文通过作者亲手对多个国外主流开源操作系统、多个主流国产操作系统的安装过程进行记录与对比&#xff0c;让大家可以借助安装过程的界面风格、页面布局、功能等&#xff0c;细细的品一下国产Linu…

Unity3D教程:简单的碰撞检测

需求&#xff1a;当立方体Cube碰到地面Plane的时候&#xff0c;输出碰撞物体的名称&#xff0c;则表述检测到立方体碰撞了地面。 1.搭建一个简单的场景。 在新的工程中选择File->new Scene创建新的场景。然后在该场景中添加地板&#xff1a;GameObject->Create Other-&…

Mapstruct类型转换Person ->PersonDTO以及po、vo、dto、request概念

文章目录po、vo、dto、requestPerson ->PersonDTO安装插件引入依赖Maven项目结构图Person 与 PersonDTOConverterpo、vo、dto、request Mapstruct 完成类型转换&#xff01; po&#xff1a;数据持久层对象&#xff0c;用于映射数据库中的表 dto&#xff1a;数据传输对象&a…

各类软件研发行业源代码防泄密需求分析

各类软件研发行业&#xff0c;都有自己的核心数据以及核心文档&#xff0c;用户数据等敏感信息&#xff0c;这些信息数据有以下共性&#xff1a; 属于核心机密资料&#xff0c;万一泄密会给造成恶劣影响 核心数据类型多&#xff0c;有源代码数据&#xff0c;员工计算机水平高…