多维时序 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测

多维时序 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测

目录

    • 多维时序 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测
      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

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

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

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

基本介绍

1.Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测;
2.运行环境为Matlab2018b;
3.输入多个特征,输出单个变量,考虑历史特征的影响,多变量时间序列预测;
4.data为数据集,SA_BPNTS.m为主程序,运行即可,所有文件放在一个文件夹;
5.命令窗口输出R2、MSE、MAE、MAPE和MBE多指标评价;

程序设计

  • 完整程序和数据下载私信博主回复Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测
%% 数据反归一化
T_sim1 = mapminmax('reverse',t_sim1,ps_output);
T_sim2 = mapminmax('reverse',t_sim2,ps_output);
%%  均方根误差 RMSE
error1 = sqrt(sum((T_sim1 - T_train).^2)./M);
error2 = sqrt(sum((T_test - T_sim2).^2)./N);
%%  相关指标计算
%  R2
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;disp(['训练集数据的R2为:', num2str(R1)])
disp(['测试集数据的R2为:', num2str(R2)])%  MAE
mae1 = sum(abs(T_sim1 - T_train)) ./ M ;
mae2 = sum(abs(T_sim2 - T_test )) ./ N ;disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['测试集数据的MAE为:', num2str(mae2)])%% 平均绝对百分比误差MAPE
MAPE1 = mean(abs((T_train - T_sim1)./T_train));
MAPE2 = mean(abs((T_test - T_sim2)./T_test));disp(['训练集数据的MAPE为:', num2str(MAPE1)])
disp(['测试集数据的MAPE为:', num2str(MAPE2)])%  MBE
mbe1 = sum(T_sim1 - T_train) ./ M ;
mbe2 = sum(T_sim2 - T_test ) ./ N ;disp(['训练集数据的MBE为:', num2str(mbe1)])
disp(['测试集数据的MBE为:', num2str(mbe2)])%均方误差 MSE
mse1 = sum((T_sim1 - T_train).^2)./M;
mse2 = sum((T_sim2 - T_test).^2)./N;disp(['训练集数据的MSE为:', num2str(mse1)])
disp(['测试集数据的MSE为:', num2str(mse2)])
%% 优化曲线
figure
plot(curve, 'linewidth',1.5);
title('SA')
xlabel('The number of iterations')
ylabel('Fitness')
grid on;%%  绘图
figure
plot(1: M, T_train, '-', 1: M, T_sim1, '-', 'LineWidth', 1)
legend('真实值', '预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'训练集预测结果对比'; ['RMSE=' num2str(error1)]};
title(string)
xlim([1, M])figure
plot(1: N, T_test, '-', 1: N, T_sim2, '-', 'LineWidth', 1)
legend('真实值', '预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'测试集预测结果对比'; ['RMSE=' num2str(error2)]};
title(string)
xlim([1, N])

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128163536?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128151206?spm=1001.2014.3001.5502

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

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

相关文章

SpringSecurity6从入门到实战之Filter过滤器回顾

SpringSecurity6从入门到实战之Filter过滤器回顾 如果没有SpringSecurity这个框架,我们应该通过什么去实现客户端向服务端发送请求时,先检查用户是否登录,登录了才能访问.否则重定向到登录页面 流程图如下 官方文档:https://docs.spring.io/spring-security/referen…

【C#】类和对象的区别

1.区别概述 结构体和类的最大区别是在存储空间上,前者是值类型,后者是引用类型,它们在赋值上有很大的区别,在类中指向同一块空间的两个类的值会随一个类的改变而改变另一个,请看如下代码所示: namespace …

CV Method:经典CNN Backbone总结

文章目录 前言一、ResNet二、ResNeXt三、Res2Net四、SeNet五、ResNeSt六、DenseNet七、CSPNetPytorch Model Code总结 前言 Backbone作为一切深度学习任务的基础,不论是理论还是实际应用都有重要的意义,本文针对经典Backbone进行总结,这些Ba…

前端vue搭建

1.找一个合适的模板,可以用vue-element-admin的模板,但是个人认为这个模板太大了,做小项目修改起来比较复杂,可以找一个比较小的项目 2.我找的项目git clone https://github.com/tuture-dev/vue-admin-template.git,这…

【iOS】UI学习(一)

目录 前言前情内容:如何在xcode里创建UI项目UILabelUIButtonUIButton基础UIButton事件处理 UIviewUIView基础概念UIView的层级关系 UIWindow对象总结 前言 本篇博客主要介绍了iOS中UI学习的部分知识,即UILabel、UIButton、UiView、UIWindow的相关内容&am…

大坝安全监测自动化技术的规范化设计准则

大坝安全监测自动化技术的规范化设计准则 一、施工阶段自动化系统设计要点 在施工阶段,大坝安全监测自动化系统的设计应当涵盖以下几个核心内容: 监测仪器的布局规划及详细的施工图纸设计。 配套土建项目以及防雷设施的施工设计规划。 明确施工过程中的技…

7 步解决Android Studio模拟器切换中文输入

详细步骤传送地址:Android Studio 模拟器切换中文输入 目录 01 问题概述 02 模拟器的调试 01 问题概述 大家在使用Android Studio 软件进行项目演示时总会遇到一些输入框需要输入中文汉字的情况,由于AS自带的模拟器基本都是英文,这时就有同…

香橙派OriengePi AiPro 华为昇腾芯片开发板开箱测评

香橙派OriengePi AiPro 华为昇腾芯片开发板开箱测评 文章目录 前言OrangePi AIpro硬件相关及配置外观接口配置虚拟桌面网络配置拓展swap内存 软件相关及配置docker基础镜像搭建pytorch安装及匹配 软件测试使用yolo v8测试使用模型转换 总结 前言 博主有幸受邀CSDN测评香橙派与…

系统架构设计师【第5章】: 软件工程基础知识 (核心总结)

文章目录 5.1 软件工程5.1.1 软件工程定义5.1.2 软件过程模型5.1.3 敏捷模型5.1.4 统一过程模型(RUP)5.1.5 软件能力成熟度模型 5.2 需求工程5.2.1 需求获取5.2.2 需求变更5.2.3 需求追踪 5.3 系统分析与设计5.3.1 结构化方法5.3.2 面向对象…

Python魔法之旅-魔法方法(05)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

记录Win11安装打印机驱动过程

1. 首先下载打印机对应型号的驱动 可以从这里下载:打印机驱动,打印机驱动下载 - 打印机驱动网 2. 下载 3. 打开控制面板-->设备和打印机 找到目标打印机添加设备即可

读:《An Overview of Diffusion Models Applications……》导览

读:《An Overview of Diffusion Models: Applications,Guided Generation, Statistical Rates and Optimization》 简单说明 这篇文章也是关于 Diffusion 模型的综述,但是这一篇讲的显然不如 2022出的这篇综述 [2209.00796] Diffusion Models: A Compreh…

AI作画算法原理

1.概述 AI作画算法的原理相当复杂,涉及多个领域的知识,包括计算机视觉、机器学习和神经网络等。我们从以下几个方面来描述AI作画算法的基本原理。 2. 数据准备 在数据准备方面,AI作画算法通常需要大量的图像数据作为训练样本。可以是各种各…

500元以内的蓝牙耳机哪个牌子好?首推四大热门品牌盘点

在500元以内的预算范围内,蓝牙耳机试市场上还是有很多可以选择的,它们以出色的音质、舒适的佩戴体验和稳定的连接性能赢得了消费者的青睐,作为一个蓝牙耳机的重度使用者,下也用过不少的500元以内的蓝牙耳机,下面就给大…

Keras深度学习框架实战(1):图像分类识别

1、绪论 1.1 图像分类的定义 图像分类是计算机视觉领域中的一项基本任务,其定义是将输入图像分配给预定义类别中的一个或多个。具体来说,图像分类系统接受一个图像作为输入,并输出一个或多个类别标签,这些标签描述了图像中的内容…

基于Pytorch框架的深度学习EfficientNetV2神经网络中草药识别分类系统源码

第一步:准备数据 5种中草药数据:self.class_indict ["百合", "党参", "山魈", "枸杞", "槐花", "金银花"] ,总共有900张图片,每个文件夹单独放一种数据 第二步&a…

String类详解

前言:String类是表示字符串的类,String类的内部也提供了非常多的方法来供程序员使用。 String类还有一大特性,就是不可变性。只要使用string创建了字符串,就不可以修改。为string类提供了一层安全性。(对于" &qu…

macOS上编译android的ffmpeg及ffmpeg.c

1 前言 前段时间介绍过使用xcode和qt creator编译调试ffmepg.c,运行平台是在macOS上,本文拟介绍下android平台如何用NDK编译链编译ffmepg库并使用。 macOS上使用qt creator编译调试ffmpeg.c macOS上将ffmpeg.c编译成Framework 大体思路: 其…

Android Context 详解

一、什么是Context? Context是一个抽象基类。在翻译为上下文,是提供一些程序的运行环境基础信息。 Context下有两个子类,ContextWrapper是上下文功能的封装类(起到方法传递的作用,主要实现还是ContextImpl&#xff0…

万字长文详解QUIC协议,为什么有了TCP我们还需要QUIC?

本文目录 1.前言2. HTTP缺点缺点一:建立连接的握手延迟大缺点二:多路复用的队首阻塞缺点三:TCP协议的更新滞后 3.TCP缺点3.QUIC优点一:避免队首阻塞的多路复用优点二:支持连接迁移优点三:可插拔的拥塞控制优…