多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出

2023-09-18 08:29:19

多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出

预测效果

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

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

基本介绍

MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出
1.data为数据集,10个输入特征,3个输出变量。
2.main.m为主程序文件。
3.命令窗口输出MBE、MAE和R2,可在下载区获取数据和程序内容。

程序设计

  • 完整程序和数据下载方式:私信博主回复MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  参数初始化
c1      = 4.494;       % 学习因子
c2      = 4.494;       % 学习因子
maxgen  =   50;        % 种群更新次数  
sizepop =    5;        % 种群规模
Vmax    =  1.0;        % 最大速度
Vmin    = -1.0;        % 最小速度
popmax  =  1.0;        % 最大边界
popmin  = -1.0;        % 最小边界
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
for i = 1 : sizepop
    pop(i, :) = rands(1, numsum);  % 初始化种群
    V(i, :) = rands(1, numsum);    % 初始化速度
    fitness(i) = fun(pop(i, :), hiddennum, net, p_train, t_train);
end
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  个体极值和群体极值
[fitnesszbest, bestindex] = min(fitness);
zbest = pop(bestindex, :);     % 全局最佳
gbest = pop;                   % 个体最佳
fitnessgbest = fitness;        % 个体最佳适应度值
BestFit = fitnesszbest;        % 全局最佳适应度值
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  迭代寻优
for i = 1 : maxgen
    for j = 1 : sizepop
        
        % 速度更新
        V(j, :) = V(j, :) + c1 * rand * (gbest(j, :) - pop(j, :)) + c2 * rand * (zbest - pop(j, :));
        V(j, (V(j, :) > Vmax)) = Vmax;
        V(j, (V(j, :) < Vmin)) = Vmin;
        
        % 种群更新
        pop(j, :) = pop(j, :) + 0.2 * V(j, :);
        pop(j, (pop(j, :) > popmax)) = popmax;
        pop(j, (pop(j, :) < popmin)) = popmin;
      
        
        % 适应度值
        fitness(j) = fun(pop(j, :), hiddennum, net, p_train, t_train);

    end
    
    for j = 1 : sizepop

        % 个体最优更新
        if fitness(j) < fitnessgbest(j)
            gbest(j, :) = pop(j, :);
            fitnessgbest(j) = fitness(j);
        end

 

    end

    BestFit = [BestFit, fitnesszbest];    
end

往期精彩

MATLAB实现RBF径向基神经网络多输入多输出预测
MATLAB实现BP神经网络多输入多输出预测
MATLAB实现DNN神经网络多输入多输出预测

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/116377961
[2] https://blog.csdn.net/kjm13182345320/article/details/127931217
[3] https://blog.csdn.net/kjm13182345320/article/details/127894261

更多推荐

Zynq UltraScale+ XCZU3EG 纯VHDL解码 IMX214 MIPI 视频,2路视频拼接输出,提供vivado工程源码和技术支持

目录1、前言免责声明2、我这里已有的MIPI编解码方案3、本MIPICSI2模块性能及其优越性4、详细设计方案设计原理框图IMX214摄像头及其配置D-PHY模块CSI-2-RX模块Bayer转RGB模块伽马矫正模块VDMA图像缓存VideoScaler图像缓存DP输出5、vivado工程详解PL端FPGA硬件设计PS

云原生服务无状态(Stateless)特性的实现

文章目录为何要使用无状态服务?无状态服务的实现方法1.会话状态外部化2.负载均衡3.自动伸缩4.容器编排5.数据存储6.安全性示例:使用SpringBoot实现无状态服务结论🎉欢迎来到云计算技术应用专栏~云原生服务无状态(Stateless)特性的实现☆*o(≧▽≦)o*☆嗨~我是IT·陈寒🍹✨博客主页:IT·陈寒

一文讲解ARMv8内存属性与类型(Memory types and attributes)简介

ARMv8中将内存分为两种类型:Normalmemory和Devicememory,Normalmemory适用于系统中的大部分内存,而Devicememory则适用于外设所使用的内存。1.NormalMemoryNormalmemory类型属性适用于系统中的大多数内存。它表示架构允许硬件对这些位置执行推测数据读取访问

NetSuite知识会汇编-管理员篇&顾问篇2023

本月初,开学之际,我们发布了《NetSuite知识会汇编-用户篇2023》,这次发布《NetSuite知识会汇编-管理员篇&顾问篇2023》。本篇挑选了近两年NetSuite知识会中的一些文章,涉及开发、权限、系统管理等较深的内容,共19篇。阅读对象是NetSuite的系统管理员与实施顾问。中国的NetSuite系统管

Android10 Settings系列(四)设置应用信息界面,动态控制应用是否可以在设置中卸载强制停止

一、前言笔者最近又遇到了个新的需求,在settings中针对特定应用,禁用应用管理的强行停止和卸载按钮。于是在这里记录分享一下,加深一下印象,方便下次遇到能够快速解决问题二、准备工作我们知道应用管理在Settings应用中,于是准备好定位。那么如何定位呢,这里有两个工具可以使用layoutinspector和uiaut

Jtti:Ubuntu下如何迁移Thunderbird邮件

要迁移Thunderbird邮件,您需要复制和转移Thunderbird的邮件文件和配置文件。以下是一般的迁移步骤:注意:在进行迁移之前,请确保Thunderbird已经安装在目标Ubuntu系统上。备份旧系统的Thunderbird数据:在源系统上打开Thunderbird,点击“帮助”->“故障排除信息”->“打开

Ubuntu 20.04中docker-compose部署Nightingale

lsb_release-r可以看到操作系统版本是20.04,uname-r可以看到内核版本是5.5.19。sudoaptinstall-ydocker-compose安装docker-compose。完成之后如下图:cd/opt/n9e/docker/进入到/opt/n9e/docker/里边。docker-compo

R语言实现样本量的估算(2)

本文默认α=0.05(sig.level),β=0.2(power),根据研究需要可调整。导入包library(pwr)(1)已知标准差和预期差异1、单样本t检验:某治疗措施预期提高某物质水平8mg/L,标准差为10mg/L。#单样本t检验pwr.t.test(d=8/10,#期望的平均差异/总体标准差sig.leve

HTML5编写旅游网页

网页样例::代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title></hea

关于wParam和lParam

在VC的函数参数中常出现WPARAM和LPARAM,这两个有什么特殊意义么?它们的含义是不是要事先定义?WPARAM和LPARAM一般在消息里面用的很多,其实没有特殊的含义的。是两普通的变量。是怎样通过wParam,lParam传参数的呢?有时候表示点的坐标,有时表示控件的ID,是不是事先定义好的?WPARAM是32位

云原生之使用Docker部署Teedy轻量级文档管理系统

云原生之使用Docker部署Teedy轻量级文档管理系统一、Teedy介绍1.1Teedy简介1.2Teedy特点二、本地环境介绍2.1本地环境规划2.2本次实践介绍三、本地环境检查3.1检查Docker服务状态3.2检查Docker版本3.3检查dockercompose版本四、下载Teedy镜像五、部署Teedy轻

热文推荐