回归预测 | Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测

news2024/11/17 20:45:53

回归预测 | Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测

目录

    • 回归预测 | Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测
      • 预测效果
      • 基本介绍
      • 程序设计
      • 参考资料

预测效果

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

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

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

基本介绍

Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测
1.Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测(完整源码和数据)
2.输入多个特征,输出单个变量,多输入单输出回归预测;
3.多指标评价,评价指标包括:R2、MAE、MSE、RMSE等,代码质量极高;
4.粒子群算法优化参数为:优化核函数超参数 sigma,标准差,初始噪声标准差;
5.excel数据,方便替换,运行环境2018及以上,可在下载区获取数据和程序内容。
回归预测 | Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测

程序设计

  • 完整程序和数据获取方式,(资源处下载):Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
% restoredefaultpath
%%  导入数据
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
f_ =size(P_train, 1); %输入特征维度
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';
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  超参数设置
Best_pos = [0.6, 0.7, 30];    % 优化下界

%%  仿真测试
t_sim1 = predict(net, p_train);
t_sim2 = predict(net, p_test );
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% 数据转置
T_sim1=T_sim1';
T_sim2 =T_sim2';
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  均方根误差
error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);

%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%
%决定系数
R1 = 1 - norm(T_train - T_sim1)^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test -  T_sim2)^2 / norm(T_test -  mean(T_test ))^2;
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%
%均方误差 MSE
mse1 = sum((T_sim1 - T_train).^2)./M;
mse2 = sum((T_sim2 - T_test).^2)./N;
%%
%RPD 剩余预测残差
SE1=std(T_sim1-T_train);
RPD1=std(T_train)/SE1;
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SE=std(T_sim2-T_test);
RPD2=std(T_test)/SE;
%% 平均绝对误差MAE
MAE1 = mean(abs(T_train - T_sim1));
MAE2 = mean(abs(T_test - T_sim2));
%% 平均绝对百分比误差MAPE
MAPE1 = mean(abs((T_train - T_sim1)./T_train));
MAPE2 = mean(abs((T_test - T_sim2)./T_test));
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% 测试集误差图
figure  
ERROR3=T_test-T_sim2;
plot(T_test-T_sim2,'b-*','LineWidth',1.5)
xlabel('测试集样本编号')
ylabel('预测误差')
title('测试集预测误差')
grid on;
legend('GPR预测输出误差')
%% 打印出评价指标
disp(['-----------------------误差计算--------------------------'])
disp(['评价结果如下所示:'])
disp(['平均绝对误差MAE为:',num2str(MAE2)])
disp(['均方误差MSE为:       ',num2str(mse2)])
disp(['均方根误差RMSEP为:  ',num2str(error2)])
disp(['决定系数R^2为:  ',num2str(R2)])
disp(['剩余预测残差RPD为:  ',num2str(RPD2)])
disp(['平均绝对百分比误差MAPE为:  ',num2str(MAPE2)])

参考资料

[1]https://blog.csdn.net/kjm13182345320/article/details/124443069?spm=1001.2014.3001.5501
[2]https://blog.csdn.net/kjm13182345320/article/details/124443735?spm=1001.2014.3001.5501

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

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

相关文章

【Redis】用户登录校验

对于用 redis 对用户进行登录校验,大致可分为以下六步: 首先通过查询数据库来查找具有提供的用户名、密码和delFlag值为0的用户。如果未找到用户,则抛出一个带有消息"用户不存在"的ClientException(用户不存在&#xf…

能远程一起观看电影和直播的SyncTV

什么是 SyncTV ? SyncTV 是一个允许您远程一起观看电影和直播的程序。它提供了同步观看、剧院和代理功能。使用 SyncTV,您可以与朋友和家人一起观看视频和直播,无论他们在哪里。SyncTV 的同步观看功能确保所有观看视频的人都在同一点上。这意…

Java刷题-基础篇

目录 题目1:打印1~100内奇数和、偶数和 题目2:计算5的阶乘 题目3:计算 1!2!3!4!5! 的和 题目4:找1~100之间即能被3整除,又能被5整除的数字,要求必须使用break/continue 题目5:实现猜数字小…

陪玩系统APP小程序H5音视频社交系统陪玩系统源码,陪玩app源码,陪玩源码搭建陪玩社交系统开发(现成,可定制)线下陪玩系统项目开发搭建

线下陪玩系统项目的设计 在需求分析完成后,接下来进行系统设计。系统设计主要包括以下几个部分: 1. 数据库设计:根据需求分析的结果,设计数据库结构,包括用户信息表、服务信息表、订单信息表等。 2. 界面设计&#…

Java设计模式 _行为型模式_命令模式

一、命令模式 1、命令模式 命令模式(Command Pattern)是一种行为型模式,一种数据驱动的设计模式。命令模式中请求以命令的形式包裹在对象中,即将命令封装为类,从而可以使用不同的请求,队列等操作具体的对象…

汇昌联信科技:拼多多可以做无货源吗?

在探讨电商平台的经营模式时,"无货源"这一概念经常被提及。它指的是卖家在不需要事先囤积大量商品的情况下,通过与供应商的合作,直接将订单信息传递给他们,由供应商完成发货的过程。针对“拼多多可以做无货源吗?”这一…

力扣HOT100 - 84. 柱状图中最大的矩形

解题思路&#xff1a; 单调栈 对于一个高度height[ i ]&#xff0c;找左右两边均严格小于它的值。 class Solution {public int largestRectangleArea(int[] heights) {int n heights.length;int[] left new int[n];int[] right new int[n];Deque<Integer> mono_st…

部署达梦数据库主从配置详细操作DM8

服务器配置 主库 192.168.81.128 实例名 dm-1 从库 192.168.81.129 实例名 dm-2 以下安装部署主从服务器都操作 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld 注意安装前必须创建 dmdba 用户&#xff0c;禁止使用 root 用户安装数据库。…

[笔试训练](十八)

目录 052:字符串压缩 053:chika和蜜柑 054:01背包 052:字符串压缩 压缩字符串(一)_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 双指针模拟 class Solution { public:string compressString(string param) {int nparam.size();string ret;int num…

【AI+换脸换装】从OpenAI 探索色情露骨内容领域浅聊AI换脸换装

5月9日消息&#xff0c;据外电报道&#xff0c;OpenAI 周三发布了文档草案&#xff0c;阐述了它希望 ChatGPT 及其其他人工智能技术如何运作。冗长的Model Spec 文件的一部分透露&#xff0c;该公司正在探索进军色情和其他露骨内容领域。 看完这个&#xff0c;心里有点惊讶&am…

java发送请求-二次开发-get请求json

这里有2个判断 如果param为空则对url发送请求 再继续判断有值时&#xff0c;接口参数时json还是namevalue格式 因为json是带{,所以可以先写为param包含{}, 反之就是请求格式是url&#xff1f;param 请求json要带参数&#xff0c;所以需要使用setEntity方法&#xff0c; 最…

C++学习第二十八课:C++ 中的智能指针详解

在 C 中&#xff0c;内存管理是每个程序员都需要面对的问题。在处理动态分配的内存时&#xff0c;如果忘记释放内存&#xff0c;可能会导致内存泄漏。为了解决这个问题&#xff0c;C11 引入了智能指针的概念。本文将详细介绍 C 中使用智能指针的方法&#xff0c;并结合实际案例…

关于服务端接口知识的汇总

大家好&#xff0c;今天给大家分享一下之前整理的关于接口知识的汇总&#xff0c;对于测试人员来说&#xff0c;深入了解接口知识能带来诸多显著的好处。 一、为什么要了解接口知识&#xff1f; 接口是系统不同模块之间交互的关键通道。只有充分掌握接口知识&#xff0c;才能…

【赠书活动第4期】《Rust编程与项目实战》

赠书活动 《Rust编程与项目实战》免费赠书 3 本&#xff0c; 收到赠书之后&#xff0c;写一篇 本书某一节内容 的学习博客文章。 可在本帖评论中表示参加&#xff0c;即可获得赠书&#xff0c;先到先得。学习心得博客链接&#xff0c;后面有空发上来。 赠书截止日期为送出3…

如何完美解决Outlook大文件传送问题,提升办公协作效率?

在日常工作中&#xff0c;邮件是一种常用的通信方式&#xff0c;经常用来发送各类文件&#xff0c;比如报告和文档、合同和协议、财务报表、营销资料、设计文件等。但有时文件会比较大&#xff0c;因此Outlook大文件传送时&#xff0c;会遇到附件大小受限的情况。常用的解决发送…

c++11 标准模板(STL)本地化库 - 平面类别(std::money_put) - 格式化货币值为字符序列以输出

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 格式化货币值为字符序列以输出 std::money_put template< …

Spring Framework-IoC详解

IoC的概念和作用 在介绍Ioc之前&#xff0c;我们首先先了解一下以下内容 什么是程序的耦合 耦合性(Coupling)&#xff0c;也叫耦合度&#xff0c;是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度…

Git 如何管理标签命令(tag)

1.查看本地仓库tag --1.查看本地仓库tag UserDESKTOP-2NRT2ST MINGW64 /e/GITROOT/STARiBOSS/STARiBOSS-5GCA (gw_frontend_master) $ git tag 1stBossUpgrade V10.0.1_20220224_test V10.0.1_20220301_test tag-gwfrontend-V1.0.12-230625 tag-gw_frontend-23.08.29 tag-gw_f…

基于springboot实现毕业设计系统项目【项目源码+论文说明】

基于springboot实现毕业设计系统演示 摘要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff…

C++:虚函数表Hook

Hook 在计算机编程中&#xff0c;"Hook"&#xff08;钩子&#xff09;是一种技术&#xff0c;用于拦截并修改特定事件或函数的执行流程。它允许程序员在特定的代码点插入自定义的代码&#xff0c;以实现对程序行为的修改、监视或增强。 虚函数表Hook 虚函数表&#…