回归预测 | MATLAB实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多输入单输出

news/2024/11/20 2:30:17/

回归预测 | MATLAB实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多输入单输出

目录

      • 回归预测 | MATLAB实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多输入单输出
      • 预测效果
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

预测效果

1
2
3
4
5

6

基本介绍

MATLAB实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多输入单输出。
Matlab实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多变量回归预测
1.data为数据集,输入6个特征,输出一个变量。
2.MainSSA_LSSVMNN.m为程序主文件,其余为函数文件无需运行。
3.命令窗口输出MAE、MBE和R2,可在下载区获取数据和程序内容。
4.麻雀算法优化最小二乘支持向量机,优化RBF 核函数gam和sig。
注意程序和数据放在一个文件夹,运行环境为Matlab2018及以上.

模型描述

麻雀搜索算法(sparrow search algorithm,SSA)是目前比较新型的优化算法,它能够解决一些特定的优化算法问题。该算法的提出是基于麻雀捕食和反捕食的行为。

7

整体的种群数量会随着适应度值的变化而进行调整,会越来越适应环境变化。而在这个群体中的部分个体有比较高的适应度值,会在搜寻的过程中优先获取猎物。

8

程序设计

  • 完整程序和数据下载方式1(资源处直接下载):MATLAB实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多输入单输出
  • 完整程序和数据下载方式2(订阅《智能学习》专栏,同时获取《智能学习》专栏收录程序6份,数据订阅后私信我获取):MATLAB实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多输入单输出
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%%  划分训练集和测试集
M = size(P_train, 2);
N = size(P_test, 2);%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);%%  转置以适应模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';%%  参数设置
pop = 5;              % 种群数目
Max_iter = 50;         % 迭代次数
dim = 2;               % 优化参数个数
lb = [10,   10];       % 下限
ub = [1000, 1000];       % 上限%% 优化函数
fobj = @(x)fitnessfunclssvm(x, p_train, t_train);%% 优化
[Best_pos, Best_score, curve] = SSA(pop, Max_iter, lb, ub, dim, fobj);%% LSSVM参数设置
type       = 'f';                % 模型类型 回归
kernel     = 'RBF_kernel';       % RBF 核函数
proprecess = 'preprocess';       % 是否归一化%% 建立模型
gam = Best_score(1);  
sig = Best_score(2);
model = initlssvm(p_train, t_train, type, gam, sig, kernel, proprecess);%% 训练模型
model = trainlssvm(model);%% 模型预测
t_sim1 = simlssvm(model, p_train);
t_sim2 = simlssvm(model, p_test);%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);%%  均方根误差
error1 = sqrt(sum((T_sim1' - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2' - T_test ).^2) ./ N);%% 优化曲线
figure
plot(curve, 'linewidth', 1.5);
title('SSA-LSSVM ')
xlabel('The number of iterations')
ylabel('Fitness')
grid on;

参考资料

[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502
[3] https://blog.csdn.net/article/details/126043107?spm=1001.2014.3001.5502


http://www.ppmy.cn/news/12572.html

相关文章

spring系列 SpringAOP

概念 原来的方法写法 public void save(){ Long startTime System.currentTimeMillis(); System.out.println(“book dao save ...”); Long endTime System.currentTimeMillis(); Long totalTime endTime-startTime; System.out.prin…

解决Vue3中使用setup如何定义组件的name属性

vue2的书写name: <template><div></div> </template><script> export default {name: "nameoption", }; </script><style lang"scss" scoped></style>解决&#xff1a;Vue3中使用setup如何定义组件的nam…

基于贝叶斯算法的邮件过滤管理系统的设计和实现(Vue+SpringBoot)

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

2个大厂 100亿级 超大流量 红包 架构方案

2个大厂 100亿级 超大流量 红包 架构方案 文章目录2个大厂 100亿级 超大流量 红包 架构方案100亿级 红包 应用 场景概述百亿级 微信红包技术架构架构**南北分布****拆红包入账异步化****发拆落地&#xff0c;其他操作双层cache**高并发**红包算法****柔性降级方案**360w QPS 10…

Java9的新特性模块化(Module)

一、 模块化是什么&#xff1f; Java 9引入了模块化系统&#xff0c;称为"Java Platform Module System"&#xff08;JPMS&#xff09; 这个系统允许将Java程序分成模块&#xff0c;每个模块都有自己的规范&#xff0c;可以明确地声明它依赖于哪些其他模块&#xff…

Python NumPy 数组索引

前言NumPy&#xff08;Numerical Python的缩写&#xff09;是一个开源的Python科学计算库。使用NumPy&#xff0c;就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数&#xff0c;涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 数组索引…

介绍Java中的常/变量.各种数据类型以及类型转换和提升的用法

本文简单描述了什么是常量和变量,介绍了Java各种数据类型:基本数据类型(四类八种,大小和范围)和引用数据类型(种类),简单介绍了包装类字符串类型,以及不同数据类型之间的常量和变量,数据类型之间的转换和提升… Java常/变量和数据类型一.什么是常量?二.什么是变量?三.数据类型…

TryHackMe-Minotaur‘s_Labyrinth

Minotaur’s Labyrinth 嗨&#xff0c;是我&#xff0c;代达罗斯&#xff0c;迷宫的创造者。我能够 实现一些后门&#xff0c;但牛头怪能够&#xff08;部分&#xff09;修复它们 &#xff08;这是一个秘密&#xff0c;所以不要告诉任何人&#xff09;。但是让我们回到你的任务…